Learn all about scrum & agile programming

Agile & Scrum Programming

What Is Agile Programming?

Agile programming is an approach to project management, typically used in software development. It helps teams react to the instability of building software through incremental, iterative work cycles, known as sprints. But before turning our discussion to the details of agile programming, it’s best to start at the beginning with the project management paradigm that preceded it: waterfall, or traditional sequential development.

What are the Origins of Agile Programming?

The roots of agile programming can be traced back to 1970, when Dr. Winston Royce delivered a presentation called “Managing the Development of Large Software Systems.” This paper introduced his thoughts on waterfall. Basically, Royce asserted that building software was akin to assembling an automobile. Put another way, each piece can be added in isolated, sequential phases. This process demands that every phase of the project must be completed before the next phase can begin. Thus, developers collect requirements first, work on architecture and design second, and so on. Very little communication occurs during the hand-offs between the specialized groups responsible for each phase of development.

You can probably begin to think of ways in which this approach to software development is flawed. For example, it assumes the customer can identify every single requirement of the project prior to any coding taking place. In other words, waterfall imagines that a customer knows exactly what he or she wants at the outset and that he or she can deliver an airtight and inclusive plan for achieving that vision. If you’re a developer, then you know that it’s infinitely easier for a customer to describe his or her vision when there is functional software to interact with and respond to. It’s a lesson that many software developers have discovered through failing. Moreover, many times, when a waterfall project wraps, a team that built software based on customer specifications finds out that it’s not actually what the customer wanted or another project has rendered all that heads-down programming irrelevant. In the latter scenario, an organization has spent time and money to create a product that no one wants.

Why Agile Programming?

Agile programming gives teams repeated opportunities to assess the direction of a project throughout the entire development lifecycle. These chances for evaluation are built into the natural workflow of agile programming through regular cadences of work, known as sprints or iterations. At the end of every sprint, the team presents a functioning piece of software to the Product Owner for review. This emphasis on a shippable product ensures that the team doesn’t get bogged down with gathering requirements. Because sprints repeat and the product continually adds increments of functionality, agile programming is described as “iterative” and “incremental.” In waterfall, development teams have a single shot at getting each part of a project right. Not so in agile programming, in which every aspect of development is revisited throughout the lifecycle. There’s virtually no chance that a project will follow the wrong direction for very long. Because the team reassesses the direction of a project regularly, there’s always time to change course.

Perhaps the effects of this “inspect-and-adapt” strategy are obvious: Namely, they significantly reduce both development costs and time to market. Because teams can gather requirements while coding, exhaustive requirements gathering can’t prevent a team from making progress. And because agile teams develop within the short, repeatable work cycles, stakeholders have ongoing opportunities to ensure that the product being created matches the customers’ vision. In essence, it could be said that agile programming helps companies build products their customers want. Instead of committing to market a piece of unwritten, sub-optimized software, agile programming empowers teams to build the best software possible. In the end, agile programming protects a product’s market relevance and prevents a team’s work from winding up on a shelf, unreleased, which is an option that makes both stakeholders and developers happy.

Be Sociable, Share!

Comments

Comment from Cornelius
Time: August 3, 2009, 3:44 pm

I read a few topics. I respect your work and added blog to favorites.

Comment from Custom Software
Time: October 11, 2009, 7:21 am

I have be developing with agile for the last few years. I found you post very interesting and i would concur with it…

Comment from Michael Stelly
Time: March 7, 2010, 10:02 am

The biggest issue I find, of which I am currently enmeshed, is when I want to be “agile” while on a team of one. My work suffers when I cannot focus multiple diverse skills and experience on a iterative development process. So, I continue to remind the stakeholder that I am one person and I will deliver results in a sprint that equates to “1 work hour = 1 hour of work”. It makes for lengthy development cycles, but it is what it is.

Comment from MC
Time: July 13, 2010, 6:08 pm

As a scrummaster, My biggest issue is to keep the team update the time tracking tool daily. Any idea how to motivate the team to update daily.

Comment from chetan
Time: August 10, 2010, 11:36 pm

this post gives the clear understanding about Agile Methodology

Comment from atejip
Time: January 14, 2011, 1:10 am

Really Impressive! Thanks for this info……..

Comment from Cplex
Time: June 1, 2011, 5:56 am

Thanks for such a huge programming concept. I appreciate it………

ateji.com

Comment from Dont Care
Time: July 12, 2011, 3:01 pm

“Agile” would seem to require a total sign-off by all parties involved? Can’t see my customers coming back again and again for “project reviews” after every “sprint”. Can’t see effective purchasing of hardware when requirements are constantly allowed to change mid-stream? Can’t see ever being able to designate a go live date, when the customer is allowed to add new requirements that can totally shift the course of the project. In short, agile does NOT “reduce both development costs and time to market”. The waterfall method may well end up yielding a product that isn’t what the customer wants, but at least the project ends, and the costs/dates are known, and more importantly from the IT perspective “we gave the customer what they asked for” (which is not what they needed), which is particularly (defensible) important if your customer isn’t in-house. The agile method with its never ending requirements trickle, can yield to hardware/license purchases that are inadequate (and need to be replaced), and a software development team that is always working on those “last few changes”.

Comment from Jorge Merino
Time: July 31, 2011, 10:10 am

Agile development is nice when everybody is applying it as they should, and when every once embraces the full filosophy behind.

The problem is when people want to set a deadline but they continue adding changes to the stuff already done.

It is nice to gather changes to have a product that works, what is not nice, is to have people that think that the can add features, request for endless changes or have other projects to work on but still keep the original deadline.

Comment from Rohit Kumar Bhardwaj
Time: October 20, 2011, 8:22 am

Thanks for sharing such informative article.

Comment from ScrumDaddy
Time: October 24, 2011, 5:53 pm

Customers have been asking me a lot lately about the overall benefits they can expect from Agile, in terms of hard, numbers that can be vetted and agreed upon by their finance teams. I always struggle with that though. The benefit of agile is more robust software with just the right “high value” features delivered in a more rapid timeframe. Agile has broken down some internal barriers – not only the barriers between the customer and the development team, but also internally between the development team and the business users. The focus on business value means the developers are working more closely with the business community, and vice versa. By bringing developers and business stakeholders together, it creates a more cohesive working environment, increased customer satisfaction and better software in a faster timeframe.

One view I kind of like are looking at earned value metrics. Check out the white paper entitled Monitoring Scrum Project with AgileEVM and Earned Business Value (EBV) Metrics here: http://www.open.collab.net/news/library/agile-whitepapers.html

Comment from admin
Time: October 25, 2011, 9:52 am

You may be interested in reading this whitepaper “Intro to Agile”. It describes what Agile is in more detail and how it can improve your organization.
http://www.open.collab.net/news/library/agile-whitepapers.html

This paper is written for IT managers and CXOs with an interest in improving development productivity. First comes an introduction to the two broad schools of thought common to software development: traditional sequential, a.k.a. “the waterfall method,” and iterative methods, of which Agile is one subset. The objective is to demonstrate the shortcomings of the waterfall approach, while providing a solution in iterative and, more specifically, Agile methods.

Comment from admin
Time: October 25, 2011, 9:56 am

Here is a good whitepaper for you to read, “The ScrumMaster Checklist”.
http://www.open.collab.net/news/library/agile-whitepapers.html

Comment from http://Massiveincomemachinesreview.net
Time: July 29, 2013, 9:01 am

Excellent post however , I was wanting to know if you could write a litte more on this topic?
I’d be very thankful if you could elaborate a little bit further. Kudos!

Comment from Знакомства Челябинск
Time: August 7, 2013, 10:24 pm

I’m amazed, I must say. Rarely do I encounter a blog that’s both educative
and engaging, and let me tell you, you’ve hit the nail on the head. The issue is an issue that too few people are speaking intelligently about. I am very happy I came across this in my search for something relating to this.

Comment from find out more
Time: September 15, 2013, 11:32 pm

Some businesses think the same way about project management software.
There are significant advantages in a project management system integrated with your CRM.
When there are multiple departments involved in manufacturing and selling products in a
company, it is to the best advantage of the company to find a
good supplier of software dedicated to an erp system, Arizona, New Mexico and California are just some of the western states taking advantage of this kind of system.

Comment from home
Time: November 13, 2013, 2:27 am

This design is incredible! You obviously know how to keep
a reader entertained. Between your wit and your videos, I was almost moved to start my own blog
(well, almost…HaHa!) Excellent job. I really loved what you had
to say, and more than that, how you presented it.

Too cool!

Write a comment