Over a million developers have joined DZone.

The Iron Triangle Does Not Apply to Software Development

The three main constraints in manufacturing are scope, time, and resources. It's often joked you can only pick two. With software development, we don't need to limit ourselves.

· Agile Zone

Learn more about how DevOps teams must adopt a more agile development process, working in parallel instead of waiting on other teams to finish their components or for resources to become available, brought to you in partnership with CA Technologies.

There are three main constraints in manufacturing that are sometimes referred to as the “iron triangle.” These are scope, time, and resources. In manufacturing they say, “Pick two of these three things to flex, but one must remain fixed.”

But this model does not apply to software development.

Scope refers to the size of the project or the amount of work to be done.

Time refers to when the project will be finished or how long it will take.

The “resources” for developing software are people. And because developing software requires a great deal of communication and coordination among people, when we add more people to a project it almost always has the short-term effect of slowing the project down. Assembling software is not like assembling a car. In software development, resources are generally fixed because adding more people to a project doesn’t make it go faster.

On a Waterfall project, scope and time are also fixed, which often creates a nearly impossible situation.

If scope, time, and resources are all fixed then what’s left to flex? Developers know the answer to this question because they often find themselves in this situation. When all three sides of the iron triangle are fixed the only thing that can flex is the quality of their own work — and this is the one thing that developers must not compromise on.

As we start cutting corners and rushing we start making little mistakes that cluster into big mistakes that cost considerable time (and therefore money) to find and fix. Teams very quickly get on a downward spiral that puts them in a reactive rather than proactive development environment.

A real and sincere effort toward quality software has been the hallmark of every highly productive team I’ve ever seen.

Discover the warning signs of DevOps Dysfunction and learn how to get back on the right track, brought to you in partnership with CA Technologies.

development,environment,software development,software,scope,project,team,time

Published at DZone with permission of David Bernstein, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

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.

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

{{ parent.tldr }}

{{ parent.urlSource.name }}