vege - Fotolia

Evaluate Weigh the pros and cons of technologies, products and projects you are considering.

Software development: Pick the method that fits best

Making sense of software development methodologies is challenging. The key is to understand the challenges and what you're trying to achieve.

Agile. Scrum. Continuous integration. Continuous delivery. Making sense of various software development techniques and methodologies can be challenging, especially for well-established development organizations rooted in Waterfall. But that's not to say it can't be done. The key is to understand where the challenges lie and, ultimately, what you're trying to achieve.

"…[M]any who say they are doing Agile or continuous delivery, when quizzed on the specific technical practices, aren't actually doing it. So when they don't get the outcomes that were promised (e.g., fast cycle times, high deployment frequency, high change success rate, fast MTTR), they don’t get it," said Gene Kim, multiple award-winning CTO, researcher and author, via email.

Bob Galen, president and principle Agile coach at Raleigh, N.C.-based RGalen Consulting Group, LLC, explained: "Continuous integration and continuous delivery and test-driven development are things that came out of the Agile space. People struggle with [Agile] because it's not just a methodology. It's part methodology and part mindset.'"

He continued: "Agile is a generic wrapper that has some general principles like transparency and iterations, and it's wishy-washy to some degree. It's very simple, but hard to get right, and I think a lot of organizations are going Agile and they don't know what it is. They might pick Scrum, and then they get challenged with what is achieved with Scrum and what's the value proposition."

But there isn't necessarily an endpoint. "Truly at the heart of Agile is a continuous learning cycle," said Ellen Gottesdiener, founder and principal with EBG Consulting.

Continuous improvement never ends

Galen likened it to lean manufacturing and continuous improvement. "When are you done with continuous improvement? You're never done. You're constantly trying to get better, and the world is changing around you and you're never done. The larger companies really struggle with that," he said.

"The thing that I think is problematic, and unfortunately it's a pattern we see with clients we're working with, is that they're more concerned with going through the motions. They say, 'If I'm not doing standups and continuous integration and pairing, and on and on, then something's wrong with me.' The practices are just the outward facing manifestation of being Agile. The real point is about delivering value or hunting down value first so you can deliver it," Gottesdiener said.

Johanna Rothman, owner of Rothman Consulting Group, said some teams are simply not suited for Agile. "People want to transition to Agile and they want the benefits of Agile, but they have siloed teams and for a variety of reasons they don't want to change how the teams are composed. These teams won't get the benefits of Agile, and I don’t see how they'll do continuous integration."

Rothman acknowledged that change is difficult. "If you have been working in a Waterfall organization for a long time any kind of change is going to be quite difficult. And if you do not have enlightened management, which many organizations do not, it's very, very hard to be able to make the changes that you want to make. So this is not a slam dunk," she said.

As for those organizations with siloed teams, Rothman doesn't recommend that they transition to Agile. "I’m recommending that they do something else," she said. "They won't be able to call themselves Agile, but I don't see why that's a problem. Why is the name so important? Being effective is much more important than the name."

Agile: Not a silver bullet

According to Galen, leaders are quick to jump on the Agile bandwagon because they think it will solve all their problems. "I encounter leaders all the time who think [Agile's] a silver bullet. They think if they go Agile, they'll develop faster. I think that's true, but it's silver bullet thinking on the part of leadership to think that Agile will fix everything," Galen said. "Agile is a quality play that can go fast, but [Agile's] not fast. You have to work hard to get the speed. I don't think a lot of executives get that."

Gottesdiener advises organizations to understand why they want to transition to Agile in the first place. "What’s the purpose? Are we going to be Agile so we can say we're Agile? What is the vision and rationale for changing what we do now? And why is it important? At its heart, transitioning to Agile is about change," she said. "It's an organizational change issue, and you can't make people change. People have to want to change, believe in the change, have a stake in the change, and an interest in the change to make it happen."

Galen recommends that leaders empower their teams to experiment on their own rather than attempt to force a change that doesn't make sense. "Foster an environment of experimentation. Instead of saying 'We're going to do global nuclear continuous delivery,' try it. Bring in some tools, do a bake off, try it across a spectrum of different projects and empower the teams to run experiments to see what works and what doesn't. But don't force fit it into the organization."

Next Steps

Why you need to institute 'maker time' at your company

Dig Deeper on Topics Archive

Join the conversation


Send me notifications when other members comment.

Please create a username to comment.

I definitely agree with what Bob Galen was saying, that to be agile, requires not just adopting of a few picks from the menu of 'agile' ideas, but an entire cultural shift.  Even if you choose to push towards CI and CD with rapid delivery possible, teams will only be as successful as the culture they are able to establish.

For some teams, you may look like you are doing SCRUM, but if a lot of your work is still largely big design up front, then all you've done is insert SCRUM in the middle of a largely more formal waterfall process. (I'd argue that isn't really agile at all.)a
Success highly depends on how you approach your software development project. I understand that Agile scrum methodology is one the best methods to manage a complex project but it is not quite necessary to stick to a single methodology.

What matters is to understand pros and cons of each methodology and then use the most suitable one for your upcoming project.