Projects with big teams introduce a slew of interesting problems–problems like keeping developers fed with multiple tracks of work, understanding areas with large technical risks, and sharing knowledge. On a recent project, we developed a role to help solve these problems. I call it the utility player. In this post, I’ll define the role, the […]
When you’ve created a successful application, it is tempting to relentlessly add new functionality. You think that if you stop building, you’ll fall behind. New features bring in new business. They show your existing users that you are still active and adding value. However, it’s important to step back and consider how new features will […]
Batch data imports are tricky to build. You need to make sure the data is valid, and, most importantly, you need to correctly map that data to your domain. In my experience, that last part is difficult.
During active projects, we rarely go more than a day or two without talking to our client via Basecamp, a phone call, or in person. Clients appreciate that amount of engagement, and at the end of the project, the relationship is very strong. Then the project enters a support phase, and communication goes dark. The […]
I was recently working with a client that was considering many different software projects and struggling to decide which should come first. Each project was valuable in its own way, but when we began comparing them, we weren’t getting far. Then, I remembered an exercise that I did during my Scrum Product Owner training called […]
There’s a saying that what’s done is done. Done is straightforward, clear-cut. It’s absolute. So when we talk about user stories being done, why is it so difficult to agree what that means?
The demo is one of the most important aspects of the sprint ceremony. At this point, your client has already seen the visual design of new features, but this is their first chance to see features in action. I’ve been a part of some very successful feature demos, and some that haven’t gone so well. […]
Effective client communication is the cornerstone of our success as a company. When handled correctly, communication builds client trust. More trust means more decision making power and a better overall relationship. When handled poorly, FUDA can happen, and the relationship can suffer.
At Atomic, we work in small, self-managing teams. This means that everyone on the team has the chance to communicate with the client. Unfortunately, it can be easy for senior developers to become the entire voice of their team and make their teammates feel like their opinions and contributions aren’t appreciated. This may lead to […]
When I ramp onto a new project, one of the first things I do is to look at the system test suite. Because system tests exercise the entire system, they are a great place to document the intent and assumptions built into your application. When they are written well, they can be a source of […]