Over a million developers have joined DZone.

Landscape of Sustainable Engineering Practices

· Agile Zone

Reduce testing time & get feedback faster through automation. Read the Benefits of Parallel Testing, brought to you in partnership with Sauce Labs.

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)

Comments

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.

Acknowledgements

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

The Agile Zone is brought to you in partnership with Sauce Labs. Discover how to optimize your DevOps workflows with our cloud-based automated testing infrastructure.

Topics:

Published at DZone with permission of Michael Sahota, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}