You are here

With so many independent variables at play, it's not difficult to understand why trite project management bromides such as

DevOps: 4 benefits of using agile methods

public://pictures/Phil-Simon-Speaker-Author.png
Phil Simon, Speaker/Author, PhilSimon.com

In the first article of this Back to the basics DevOps series, I explored six fundamental DevOps characteristics. In the second article, I discussed tips for communicating clearly in a DevOps environment. Now, let's explore the benefits of using agile methods.

What's the best software development model or method? Simple and ostensibly well-meaning queries like that invite the stock consultant answer: "It depends."

The truth is that different methods offer different benefits, especially for DevOps professionals. The best one likely hinges upon a number of project-related factors, including:

  • Security
  • Complexity/number of moving parts
  • Budget
  • Time frame
  • Type of application/development project

And let's not forget critical organizational factors such as:

  • Other organizational priorities
  • Culture/internal politics
  • Employee skills
  • Regulatory environment
  • Industry

[ Is it time to rethink your release management strategy? Learn why Adaptive Release Governance is essential to DevOps success (Gartner). ]

Project management #fails

With so many independent variables at play, it's not difficult to understand why trite project management expressions such as "It's all about execution" almost always fail to hold water. Even well-crafted methodologies can easily fail and plans often go awry. New technologies don't implement themselves.

Still, it's fair to say that agile methods such as scrum have caught on in the DevOps world for a simple reason: they often work. Don't believe me, though. There's plenty of data to back up this assertion. In their 2009 book The Business Value of Agile Software Methods, Dr. David Rico and coauthors examined a wide body of research surrounding agile development techniques. Of the nearly 80 studies referenced in the book that provided quantitative data, the results were impressive:

The study revealed an average of 26 percent improvements in cost, 71 percent improvements in schedule, and 122 percent improvements in productivity performance. Quality improvements averaged 75 percent, and customer satisfaction improvements averaged 70 percent. More than 29 of these studies had the data necessary to estimate an average return on investment (ROI) of 2,633 percent.

In 26 of these studies, more than 726 programmers yielded an average productivity of more than 21 lines of code per hour. (This is roughly 10 to 20 times the productivity rate associated with traditional methods) In 21 of these studies, more than 323 programmers yielded an average defect density of about two defects per thousand lines of code.

The authors conclude:

All of these factors combine to make agile methods more productive than traditional methods. Agile methods result in lower maintenance and total life cycle costs due to greater productivity and efficient defect removal.

On average, agile methods are about 25 times more efficient than traditional methods. In a word, wow. But how? More precisely, what types of benefits can agile methods potentially offer?

[ Get Report: The Top 20 Continuous Application Performance Management Companies ]

Two companies, two different results

Two companies may see dramatically different results even if using essentially the same technology For example, consider XYZ, a stodgy organization rife with provincial employees new to agile methodologies. XYZ won't realize the same advantages as a progressive, more experienced organization such as Google, which began using scrum on distributed projects no later than 2008. Other tech heavyweights, including Amazon, Facebook, Spotify, and scores more don't rely exclusively on the waterfall method.

Beyond the waterfall: Four benefits of agile

Okay. Enough wavering. What are the potential benefits of agile methods for DevOps folks?

  1. Deliver early and often. The payoff for waterfall-based projects by definition takes place at the end, if all. They call them Big Bang projects for a reason. Conversely, agile projects are akin to financial options that can be exercised via early deployment when conditions warrant. Put differently, organizations can realize benefits far earlier than with waterfall methods.
  2. Detect errors earlier. When buying a house, it's better to find a crack in the foundation as early as possible, not after you sign the mortgage. The same principle applies with software development.
  3. Facilitate collaboration among DevOps and different lines of business. By working together early and often, agile methods can foster better working relationships among everyone involved, bridging the IT business divide that plagues so many traditional "IT projects."
  4. Achieve greater visibility and transparency. Agile deployments produce actual working software every few weeks. What's more, they enable the demonstration of that software to stakeholders. Against this backdrop, managers see a much more accurate view of many things, including progress (percent of functionality completed) and whether the product will meet expectations and quality.

Whether your organization is using agile, waterfall, or a hybrid, the fact is that different methods offer different benefits. At the end of the day, DevOps isn't a magic solution, and it isn't about using waterfall or agile. It's about accelerating software delivery and business innovation, and that requires a transformation of both culture and approach for development and operations groups.

[ Get Report: Buyer’s Guide to Software Test Automation Tools ]