One aspect of our process that is more on the Plan Driven end of our Agile / Plan Driven scale (see Agile AND Plan Driven) is our documentation and review process for requirements, design, threat modeling, and other non-code artifacts. Being a large team, we need ways to communicate and get feedback from individuals and teams that are not co-located. This leads us to a heavier review process than what a small, Agile team could utilize. We try to document ‘just enough’, but we have to do a fair amount to be successful.
But we also can get carried away with what I call ‘on paper’ collaboration. For example, a developer has the task of doing some design work for a subsystem that is to be used by another team within MBF. His input is a scenario and a short list of requirements. Here’s an approach that he might take:
How much time has passed to do this ‘on paper’ collaboration? In my scenario, it took roughly 10 working days to get an agreed upon API and design for this work. We are currently working on a 7 week development cycle for our milestone. Taking 2 of 7 weeks to sort this out is pretty expensive.
A better approach is to collaborate in person and then follow up with a document summarizing the collaboration. Taking this approach for the design task, it might look like the following:
By using ‘in person’ collaboration, the developer should be able to deliver the documented design in less than half the time of ‘on paper’ collaboration. While in person collaboration may require more meeting time, the feedback loop is much tighter and corrections are made earlier in the cycle.
In summary, we need to evaluate how to make all of our processes as lean as we possibly can. Using the highest bandwidth communication approach available is one way to put a process on a diet.