The S-Curve in Software Projects

I think I have discovered something very significant today…

While reading some articles dealing with measuring progress in a software project, I saw the S-curve being explained by David J. Anderson. The S-curve is the curve many project managers get when they plot the number of completed features against time. This curve seems to show us that a project team has trouble being productive both at the start and at the end of a project, while in the middle of the project they are completing the highest number of features per time frame. When I saw this I immediately recognized the curve from a number of books and articles on the subject of complex systems. For example: this is what Kevin Kelly explained in his book Out of Control:

Growth Curve. Growing things share several universal characteristics. Among them are a lifespan that can be plotted as an S-shaped curve: slow birth, steep growth, slow decline…"What is hidden under the graceful shape of the S-curve is the fact that natural growth obeys a strict law." This law says that the shape of the ending is symmetrical to the shape of the beginning…

If you delve somewhat deeper into this subject you will find that a software project is a complex system with many different types of nodes (artifacts, people, tools, features, qualities, assets…) Complexity theory shows us that a system is not complex because of the number of nodes, but because of the number of connections between the nodes. If you add connections to a system in a linear way the behavior of the system will show growth characteristics in the form of an S-curve. Therefore, even if the amount of effort in a project remains constant, you will always see an S-curve when you plot some derived characteristic like the number of features completed.

This would mean that, for an easier (linear) evaluation of the progress in building such a system, we should not be counting the number of completed nodes. We should be counting the number of connections!

Does the Nobel Prize committee have a category for software engineering?

  • How Do Ants Know What to Do?
  • The Quality Improvement Gardener
Related Posts
free book
GET MY FREE BOOK!
“How to Change the World”