Your Project Needs a Theme
Every day, you chug away on your project (software, widgets, budgets, whatever) making incremental progress towards your final goal. One day something happens that you don’t expect, in the biz we call this a production defect. Because of that, you have to pull valuable resources away from getting real work done in order to triage this particular fire. This causes deadlines to slip, budgets to overrun, and breeds frustration for your team. Finally, you find the defect, patch it up, and move on with your life. Problem solved. Right? Wrong.
Most of the time the specific issues we encounter end up being a symptom of a larger underlying problem. Taking the time to analyze the root cause of this problem, and giving the solution adequate focus will help improve quality over the life of your project.
Personally, I like to assign a specific theme to each project milestone. For instance, one month my team seemed to experience some pain around distributed file processing. After fixing a few defects we realized that our core processing code was not as robust as it could be. We really needed to improve our edge-case support around various transient conditions in order to be able to fully trust our functionality. Because of this, we decided to make robustness the theme for the next milestone.
During the next several weeks we built time into the schedule for specifically addressing our robustness issue. We created new user stories, modified acceptance criteria, and updated our QA test plans to accommodate a higher standard for distributed file processing robustness.
After our next project milestone was complete, our system was much better equipped to handle the byzantine nature of a real-time distributed processing system. This allowed us to focus on a new piece of the system moving forward.
Deciding on a theme can help measurably improve your system on a given axis. Themes help hone the clarity of the team by letting them know what is important to work on and gives them permission to make things better. Next time your project team starts experiencing pain points in an area of your system, try a longer-term approach to addressing the issues by implementing a theme.