By using our site, you agree to our Cookie Policy
AcceptTackling tasks intelligently
Back in the old days, techies tended to build software using a “waterfall” approach. That means designing the whole thing, going into hiding for months or years to build it, then finally emerging, hoping the market and your business requirements haven’t changed in the meantime.
An agile approach, involving shorter iterations, allows for more flexibility and rapid response to change. Every week, all team members review progress to ensure that only the highest-value features are prioritized in each successive sprint.
Sprint-based iterations
Our first step before jumping into a sprint: take all of the work involved in a project and break it down into a list of tasks. Each task is then assigned an estimated number of effort hours, and the total is then divided into a reasonable amount that we can accomplish within a week. This is where our weekly sprint begins.
In order to gauge how efficient a given team member has been, we look at the number of tasks they’ve been able to clear from the backlog in a day. Essential to this process is fostering an environment where team members don’t hide the ball—presenting an unrealistically optimistic view of where they stand. Transparency is everything. We create an environment where our team can be honest with themselves and with each other. With everything out in the open, we can take stock of the tasks at hand and make informed choices as we launch into the next sprint ahead.
Task estimation
Our estimation process includes a fairly elegant mathematical approach that reduces delivery risk and management overhead. At the beginning of each project, we spend a full day creating a comprehensive list of tasks based on all known business requirements. We then estimate the hours of effort needed for each task individually using Fibonacci numbers (1, 2, 3, 5, 8…). Tasks are limited to a maximum of eight hours, and those that require more time are simply broken into smaller ones.
This approach accounts for the predictable increase in uncertainty as tasks become more complex. This means a task can never have a highly specific initial estimate of, say, 4½ hours. It also entrusts ownership of tasks to our team members, allowing them to take pride in delivering on time.
Because the estimation process requires at least two people, it also fosters team communication and leverages diverse skill sets and experiences. We further strengthen estimates by forcing a discussion when two estimates differ substantially—that is, by more than one interval in the sequence.
Once we have a project estimated completely, we begin tracking progress by calculating an efficiency metric called velocity. Read more about how we use velocity data to achieve 95%+ project completion accuracy.
Quality assurance & launch support
Quality assurance (QA) and user acceptance testing (UAT) are important phases that we account for in our project plan. Before we turn over a project for UAT, we perform an exhaustive and comprehensive round of QA testing. This testing phase may include advanced procedures such as load testing, accessibility compliance testing, and more.
Once we’ve resolved any defects uncovered by QA, we freeze the code base and allow clients to conduct internal or independent tests before deciding to go live. Once we’re clear to launch, we guide you through the process and support you after launch.
What makes it all work? Our multidisciplinary, cross-functional teams. Our daily “stand-up” meetings, where we come together to discuss what each team member accomplished the previous day and what they plan to accomplish in the day ahead. By our powers combined, we foresee challenges and changes in scope—and we adapt as needed.
Getting everyone on the same page is crucial to getting clients on your site.