Agile Zone is brought to you in partnership with:

Michael became a Certified Scrum Master (CSM) in 2004 and is huge advocate of better (XP) engineering practices since discovering unit testing in 2001. Michael has a B.A.Sc. from University of Toronto in Engineering Science and a M.Sc. from U.B.C. in Computer Science. He has presented at Agile Tour Toronto and the XPToronto/Agile User group on Scrum and XP. His is also an active member of the Agile community and co-organizer of Agile Tour Toronto. Michael lives and works in Toronto, Canada, as an independent Agile and Lean coach, consultant and trainer. Michael is a DZone MVB and is not an employee of DZone and has posted 90 posts at DZone. You can read more from them at their website. View Full User Profile

Landscape of Sustainable Engineering Practices

  • submit to reddit

I want to share an infographic and related narrative that has really helped people emotionally connect with the importance and challenges of sustainable software development practices. I usually show the landscape in a quick introduction to Agile; in two day trainings, I go through an in-depth narrative and discussion.

Sustainable Engineering Practices

The diagram shows technical excellence at the peak of the mountain. The elevation indicates the level of challenge associated with the practices and a reasonable sequence of adoption.

Narrative to Connect at Emotional Level

Here’s an excerpt of the conversation I have when discussing this topic during training:

Michael: Let’s talk about technical practices. How important is version control?

Participants: It’s really important. We use <something>.

Michael: What do you think of someone not using version control?

Participants: High risk, wasteful, unprofessional

Michael: OK, so version control is part of the minimum standard for professional software development. Get a sense of how important it is for you to help someone not using version control.

Michael: Extreme Programming is a part of Agile that is about sustainable software development. This diagram (show diagram) shows the key practices. I am sad to inform you that the bar for what is considered the minimum for professional software development has moved. And this happened over ten years ago. (Dramatic Pause). Where does version control fit on this diagram?

Participants: Before coding standards.

Michael: (explain diagram/practices)


I almost always get questions about Pair-programming: “Why do we need it?” or “It seems like it would help earlier. Why is it later?”. My answer is as follows. Yes, it really helps to do pair-programming from the start. It is a great practice but it is tricky to get people to buy-in. Pair-programming is located before the sharp ascent required to scale the mountain. The practices here require intensive learning and are difficult to achieve without pairing.

This is a critical topic for anyone building software. See Inventor’s Dilemma and the Design-dead core for another perspective and motivation. For an in-depth simulation to help people experience this, Alistair McKinnell and I created the Sustaining Agility Game.


I am deeply appreciative of Alistair McKinnell for developing this infographic with me when building our TDD course.

Published at DZone with permission of Michael Sahota, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)