Our New Development Process
In Agile Development for Tiny Teams, I presented an overview of our original development and project management process. I highlighted a number of challenges we encountered by using it. Thanks to Jon Stahl, Josh and I were exposed to the application of Kanban to the software development process. I was convinced that Kanban was the right tool for us. However, the question of exactly how to implement it as part of a new overall development process remained.
We determined that our new process needed to be:
- Simple – Being a tiny team, the impact of time used managing the process rather than used generating billable work product is magnified.
- Able to handle concurrent projects – We needed to be able to support ongoing development needs of current clients while continuing to develop new clients and projects.
- Scalable – We will add subcontractors to our team as needs arise. Our new process must work regardless of the team size. It also needed to be easy to teach to new team members.
- Flexible – In addition to client work, Josh and I are partners in Prfessor.com which includes a significant amount of development efforts. The process needed to be flexible enough to manage these obligations too.
- Waste Reducing – We needed to address the four top areas of waste that I identified in our original process (see Eliminating Waste from Your Agile Process)
- Work In Process (more than the bare minimum necessary)
- Rework
- Over-engineering the code
- Repetitive tasks
From Jon’s presentation I realized that we really had two separate workflows, one nested inside the other. We never formalized that distinction, but when we began to view things in terms of MMFs (Minimally Marketable Features) the nested process jumped right out. Understanding this nesting was critical to the success of our new process.
MMF Workflow
Our MMF workflow is a customer facing part of our process. It relies upon regular input from the client and is the primary interface for our clients into our development process. Clients are welcome to look further into our process and see the details of their project. We have found that some clients prefer to let us completely handle the details. Our new process provides the ability for them to be involved in the process without being overwhelmed by the technology and implementation details.
MMFs flow through a 4 queue process:
The MMF workflow is the part of our business process that needs to interface with our client’s business processes. We found that providing the flexibility for our process to adapt to some level to fit the client has been very valuable. For example, for one of our best clients we maintain multiple Backlog queues – one for each aspect of their application. This organization of MMFs has proven valuable to them in support of accurately setting priorities. Another client was more comfortable with a larger Pending queue as it provides an increased interval between triggered planning meetings. We try, however, to keep this queue limit as small as possible in order to avoid thrash in the queue due to changing priorities.
Story Card Workflow
Nested inside our MMF workflow is our Story Card workflow. This is where the actual coding efforts are managed. The MMF workflow addresses behavior while the Story Card workflow addresses implementation. The MMF workflow is the customer facing portion of our process. The Story Card workflow is primarily for internal consumption. The first thing that happens when an MMF is pulled into the WIP queue is for story cards to be written defining implementation details. .
With our unique but complimentary skill sets, our original workflow was implemented through Kanban queues through which story cards would flow:
Estimation
Clients have consistently presented us with two common questions – “How long until I have this?” and “How much will it cost?”. Obviously the answer to both questions involve some level of estimation. We have formalized the process of estimation towards the primary goal of answering those two client questions in a consistent manner. MMFs and Story Cards are estimated using different methods.
MMFs are given a “shirt size” of small, medium, large or extra large. There is no scientific method for determining the shirt size of a given MMF. It’s a simple process of assigning a “gut feel” based on the description of the MMF. As further understanding of the scope and meaning of an MMF is gained, it is acceptable to change the assigned estimate. Continuous improvement applies to the estimates assigned too. These shirt sized estimates are used along with team performance data collected through the process to answer the question of “How Long?”
Story Cards are assigned a point value. We use the binary sequence of 0,1, 2, 4, 8, 16 as valid point assignments. We’ve determined that if a card should be assigned more than 16 points, it should be further broken down into smaller cards. To date, we have found that 8 points tends to be the largest value commonly used. Point assignment happens as the story cards are written, prioritized and added to the Backlog. We have transitioned from billing our clients by the hour to billing them by the point. These point estimates therefore easily compute to provide the answer to “How expensive?”.
Concurrent Projects
One of the most simple parts of our new process is the management of multiple concurrent projects. We have set agreements with our clients, committing to a specified number of average points per week of development velocity. With the rhythm of the development process, the actual weekly velocity for a given project varies. We track our performance on each project to ensure that on average we are meeting our commitments. Our clients have embraced this process as it provides them with both steady progress on their projects as well as a predictable monthly invoice from us.
For example, we have calculated that Josh and I can produce an average development velocity of 35 points per week. Currently we have committed 10 points per week to one client and 15 points a week to another client, leaving us with 10 points per week we can employ on either project as necessary or on internal projects such as Prfessor.
Kaizen
Even though this process is serving us well today, we continue to improve the process. Planning and writing this series of posts has triggered a number of ideas for ways we could further refine our process. I know that external review of a process can many times uncover issues that those involved in the day to day operations miss. I’d really enjoy hearing your feedback on our process, or about a process you’ve implemented to solve similar challenges.
5 Comments »
Search
Popular Posts
- 50 Tips To A User Friendly Website
- My Favorite Pomodoro Timers
- How to build a Gantt Chart with the Google Charts API
- Why Flash is Mostly Bad
- Sharing the Grid
- 10 Tips to Better Google Wave Conversations
- The difference between User Research and Usability Testing?
- How to Label Submit Buttons
- Paper Prototyping vs. Balsamiq Mockups
- Review: Easy PHP Websites with the Zend Framework





Olga Kouzina
Thanks for sharing! This is how we’ve set up our development process with kanban:
http://www.targetprocess.com/blog/2009/10/how-do-we-use-kanban-board-the-real-example.html
December 23, 2009
Synesthesia
[...] Our New Development ProcessLatest of several posts by Dave Goerlich on applying agile to small teamsagile kanban via:kjscotland [...]
December 24, 2009
Joe Fiorini
Thanks for sharing that Dave! It’s great to see how businesses are using Kanban to solve everyday problems.
Considering we come from the “Jon Stahl” school of Kanban, I’m curious why you chose to continue using velocity as your measure of scope. With velocity being a trailing indicator, it’s difficult to get a real time estimate for when something will be done (the “Disney line” system that Jon mentions in his talk). Have you found the velocity is better for a particular reason?
December 29, 2009
Dave Goerlich
Joe – you are completely correct that velocity is a trailing indicator. We continue to use it but not for estimation of “when” an MMF will be complete. We use the “shirt size” of the MMFs to calculate that estimation.
Velocity gives us an easily measurable limit to manage concurrent development of multiple client projects. Knowing our average weekly velocity, we can commit specific amounts of development efforts to each project, and know that we are not over extending ourselves.
I have a couple more posts in the works that get deeper into the details of our MMF and Story Card Workflows, and they will include more details on how we manage this.
December 30, 2009
Workflow – Minimally Marketable Features
[...] I described in the overview of Our New Development Process, the MMF (Minimally Marketable Feature) workflow is the customer facing portion of our development [...]
January 5, 2010