My good friends Alex Pukinskis, Jason Lewis, and I were discussing Agile software processes and where they placed on a graph relative to other methodologies and chaos. Alex drew the graph which I’ve shown below. I’ve seen this diagram reproduced by other people since, but because Alex was the first to introduce me to it, I’ve called it the Pukinskis Graph.
“Simplicity and repose are the qualities that measure the true value of any work of art.” – Frank Lloyd Wright
What does this graph show
This graph is simply a representation of software development process complexity. The more complex the software development process the further it is to the right, and the simpler the process the further it is place to the left. There is a point at which a lack of process simply breaks down into software development chaos, labeled P0 on the graph. Past this point software is being developed without any discipline or control. Agile software development processes attempt to add sufficient process to help develop software without decending into chaos. In terms of the graph, they try to get as close to the right hand side of P0 without crossing over.
The delta between where Scrum and XP are on the graph to the point P0 is small, but unknown. XP is shown to the right of Scrum because of the engineering practices that it describes. Methodologies that are more prescriptive, such as Ration Unified Process (RUP) and any variant of the Waterfall methodology are much more complex and hence they’re shown further to the right.
This graph provides an interesting insight into the behaviour of new Agile teams, particularly new Agile teams that do not have the guidance of an experienced Agile coach. After the first few successful iterations, new project teams can become complacent and undisciplined. With such a small delta between P0 and Scrum (or XP), this can quickly lead to chaos where there is no firmly agreed upon process and where new code is added without control or testing.
I find the Pukinskis graph to be an interesting diagram because it helps me better understand the behaviour of some new Agile teams. I’d like to thank both Alex and Jason for their friendship and insights into Agile software development.
As always you can find my blogs archived here and at http://kanemar.wordpress.com/