We're hiring!

We're actively seeking developers for our new Detroit location. Learn more

Process & Practices

The how of building high quality software.

How to Automate Your Human – Forming Good Development Habits

As developers, we prefer to automate wherever possible. Usually we automate computers, but it’s also possible to automate humans. Humans, after all, come with their own built-in automation system called “habit formation,” and we can cultivate helpful habits if we understand how habits form. Here’s an example from personal experience. At Atomic Object, we’re very…

Read More »

Also posted in Project Stories, Tools | Leave a comment

Time-Based Estimates Are for Suckers! (Size-based Is the Way to Go)

I gave a talk entitled “Time-Based Estimates Are For Suckers! Size-based is The Way to Go” at this year’s GLSEC on April 29. It’s meant as a call to action for those who haven’t made the leap to size-based estimation, or who have been beaten back by some of the challenges you’ll encounter when trying,…

Read More »

Also posted in Estimating, Project Management | Tagged , , , | Leave a comment

Not Tending to “The Build” – A Common Anti-Pattern

The Build is an essential cog of any software project, but it is most often maintained by identified “experts.” This needs to stop. Agile depends on shared code ownership and understanding of the system — all parts of the system. Consequences of Ignoring the Build Most sufficiently-sized projects use a continuous integration system and some…

Read More »

Also posted in Embedded Software, Project Planning, Risk, Testing | Tagged , | Leave a comment

Budget Extensions Are a “Smell”

I recently came off a project where it is clear, in retrospect, that we operated in a rush throughout much of the last half of the project. The budget got extended more than once so that we could “just get it out the door.” It was a small project: a month or two initially, then…

Read More »

Also posted in Project Management, Project Planning | Leave a comment

What Does It Take To Work In…?

For a recent career fair, our marketing coordinator Lisa Tjapkes produced a hand-out detailing what a marketing career involved. Part of this handout listed 6 skills that a good marketer should have: Empathy: Understand your customers; see things from their perspective. Strong Writing Skills: Be clear, be concise, be interesting. An Analytical Mind: Carefully review results….

Read More »

Also posted in Testing | Leave a comment

Working with Custom Return Values in GoogleMock

When working with the GoogleMock C++ mocking library, you can get pretty far using only default expectation return values or explicitly specifying expectation return values. There are some additional options that can save you a lot of effort in some circumstances though. Let’s take a look at a few of them. Standard Values Consider an…

Read More »

Also posted in Embedded Software, Testing, Tools | Tagged , | Leave a comment

Pair Programming Is Built on Crucial Conversations

Atomic has added Crucial Conversations to our short list of required reading, meaning new hires will be expected to digest this book within their first weeks on the job. We think it’s important enough to rank right up there with Extreme Programming Explained (1st edition!) as a book that explains how we work and what…

Read More »

Also posted in Culture, Pairing | Tagged , , | Leave a comment

Tear Down the Walls! (part deux): Reorganizing Teams Around Epics

In a previous post, Tear Down the Walls! — Shattering Team Boundaries, I discussed the boundaries (or silos) that traditional teams often end up segregating into, especially when deadlines are looming. The project I am on has many teams scattered across multiple physical locations (even continents), and teams are frequently under separate silos of management. Epic-level…

Read More »

Also posted in Project Management, Project Planning | Tagged , , , , , | Leave a comment

Test(ing) Kitchen: Assembling the Ingredients for Your Next Usability Test

“…no one is born a great cook, one learns by doing.” – Julia Child, My Life in France Or, to paraphrase the late great Julia — no one is born a great designer, one learns by doing (and testing). Cooks test out their recipes with an audience, and the same principle applies to new products…

Read More »

Also posted in Testing, Usability | Leave a comment

Stacks, Crumbs, and Keynote: iOS Interface Ideas

There are a lot of great mobile app user experiences out there these days. This is great — we’ve won! Unfortunately there are so many that some really great examples can get lost in the noise. As a follow-up to my previous post of iPad gems, here are some more amazing implementations of great user…

Read More »

Also posted in Mobile, Usability, User Experience | Tagged , , | Leave a comment