Using Game Titles to Estimate Testing Scope

At Atomic, we have multiple projects happening at once, with team sizes ranging from a solo maker to teams of six and up. The teams are also working on different technologies (web, mobile, IOT devices) with different project risks—it might be a quick and dirty MVP, an app for a high-profile event used by tens of thousands, or a complete rewrite of a legacy system.

When projects differ so much in size and scope, how can I estimate the way I help out with my testing expertise and experience? I sat down with one of the managing partners at Atomic to analyze past projects. Our goal was to detect any patterns and figure out how we could use the data to help teams estimate how much time to schedule for me.
Read more on Using Game Titles to Estimate Testing Scope…

Building Concurrent Primatives in Ruby without a Queue

The number-one, easiest way to make Ruby threads communicate and synchronize is to use the built-in Queue class. You can even see this in the Ruby docs: This class provides a way to synchronize communication between threads.

Unfortunately, a Queue isn’t always what we want. So, how can we build our own primitives that are still nice and thread-safe? Read more on Building Concurrent Primatives in Ruby without a Queue…

A Tale of Two Approaches to Innovation – IxD vs. Proto/Test

“So you can’t go out and ask people, you know, ‘What’s the next big thing?’ There’s a great quote by Henry Ford, right? He said, ‘If I’d have asked my customers what they wanted, they would have told me ‘A faster horse.’” – Steve Jobs, 2008

This quote from Steve Jobs was very much on my mind this summer when Alan Cooper sent out a series of tweets about differences between interaction design (IxD) and the prototype/test/learn (proto/test) approach to product development.
Read more on A Tale of Two Approaches to Innovation – IxD vs. Proto/Test…

Hexagonal Architecture in Action

I’ve been an advocate of the single-responsibility principle for a long time. I’ve used it effectively on several projects to make sure that each individual class or function has a singular purpose. It’s definitely kept me from making an unholy mess out of some of the more complicated projects I’ve worked on.

However, particularly with large projects, I kept feeling like I needed another layer of abstraction. Something that would help organize all these simple, tiny functions into a cohesive whole. Something that would help guide the structure of the app as new features were added. That’s roughly where my head was at when I began to read about hexagonal architecture.
Read more on Hexagonal Architecture in Action…

A Simple Way to Implement Timers and Timeouts in Redux

Managing timers in React Redux is often tricky. While trying to implement some features that required a lot of timeouts and time measurement of user interactions, we ended up using a simple approach for timers that I hadn’t seen before, so I thought I’d document it here.
Read more on A Simple Way to Implement Timers and Timeouts in Redux…

How Not To Lose Your Mind on a Conference Call

It seems as though the conference call is unavoidable in the modern office. Whether you’re presenting new ideas or troubleshooting an issue, there will likely be someone calling in. You may also find yourself calling in to meetings.

I spoke with my teammates, and we came up with a few things to consider in order to maximize the value you add to the call and not lose your mind! Read more on How Not To Lose Your Mind on a Conference Call…

Getting Started with NSTouchBar for macOS using Storyboards

With the addition of the Touch Bar comes the ability to customize it for your own applications. From simply adding buttons to incorporating sliders or color pickers, programming the Touch Bar is a new, creative way to add shortcuts and other functionality into your Mac app.
Read more on Getting Started with NSTouchBar for macOS using Storyboards…

Five Chrome DevTools Tips for Troubleshooting Web Apps

I recently needed to find and fix a bug in a web app I’ve been working on. The bug had something to do with code that was updating the dimensions of a third-party generated UI component whenever the window was resized. While troubleshooting the issue, I repeatedly used a handful of the tools provided by Chrome DevTools. Some of these I’ve used many times in the past, but a couple of them were new to me, so I thought I’d discuss them here. Read more on Five Chrome DevTools Tips for Troubleshooting Web Apps…

loading…