Click here to Skip to main content
15,879,326 members
Articles / DevOps / Agile

Agile, Scrum, and Customer Oriented Development

Rate me:
Please Sign up or sign in to vote.
4.90/5 (14 votes)
8 Apr 2013CPOL4 min read 50.3K   43   17
A reflection on the fundamental principles of Agile, the Scrum methdology, and customer oriented software development.

A Classic Software Development Problem

Have you ever been involved in a large software development effort that spanned several months only to have customers not use it? Most developers have and probably more than once.

Assuring that software you develop actually addresses the needs of client has always been one of the biggest challenges in software development. Addressing this problem was one of the motivations behind the Agile manifesto. The first guiding principle of the Agile manifesto states:

Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

What is the Agile Manifesto

The Agile manifesto was developed by a group of seventeen software developers who met in Utah for two days in February 1991. It reads as follows:  

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

While the Agile manifesto and the underlying principles are non-specific about software development practices, most people will agree that there are two hallmarks of an agile software development team or process:

  • Early, frequent, and continuous delivery of software
  • Customer collaboration 

If you actually follow these two principles you are very likely going to deliver software that customers actually want to use.  

When an organization starts being “agile” it’s relatively easy for them to get into the habit of delivering software to their customers frequently. Customer collaboration unfortunately is a lot harder to get right and is the subject of the rest of the article

The Scrum Methodology does not guarantee Agility

If you are a software developer then chances are that you have heard of the Scrum Methodology. You can find a brief description on Wikipedia and more extensive documentation at JeffSutherland.com/ScrumPapers.pdf.

In a nutshell Scrum involves teams delivering software in incremental periods called sprints or iterations. The scrum team consists of a product owner, a scrum master, and team members. The product owner is called the voice of the customer, and acts as a proxy for the customer at the planning meetings.  

Many people equate Scrum with Agile, and its creators have promoted it heavily as an Agile software development process. It may come as a surprise that you can follow the Scrum methodology to the letter and completely ignore actual customers!

In the Scrum methodology the only point at which customers might get involved is during the sprint review, but this isn’t obligatory. The theory is that having a product owner (who is usually a product designer, product manager, or software developer) act as a proxy for a customer is good enough. The problem is that they aren’t actually customers. They have their own biases and agendas that aren’t necessarily in line with customer desires or needs.  

I’m not suggesting that Scrum is a bad software development methodology, or that product owners are pointless. I’m saying that to avoid creating a feature that is a YAGNI (You Aren't Going to Need It) you have to actually collaborate directly with your customers during your iterations.  

Summary: Customer Oriented Development

Agile is more than just a buzzword; it represents a number of desirable goals and principles for commercial software development.

While Scrum and other Agile software development processes have proven value, I propose organizations adopting these methodologies still need to assure that their software development process is driven by customers.  

I assert that the following principles can help any software development team, regardless of the methodology they may use, to assure a customer oriented development process:

  1. Deliver software to customers early and frequently 
  2. Gather feedback from customers after each delivery and share with the entire development team 
  3. Involve customers in reviewing and prioritizing user stories 
  4. Don’t implement things customers haven’t agreed to
  5. No one can substitute for an actual customer

References

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer Ara 3D
Canada Canada
I am the designer of the Plato programming language and I am the founder of Ara 3D. I can be reached via email at cdiggins@gmail.com

Comments and Discussions

 
QuestionAgile Development Cycle Pin
Dez2218-Feb-15 1:59
Dez2218-Feb-15 1:59 
QuestionAgile Pin
Member 1059377614-Feb-14 1:57
Member 1059377614-Feb-14 1:57 
QuestionUsers may not agree on what they need Pin
Member 1059250412-Feb-14 16:02
Member 1059250412-Feb-14 16:02 
AnswerRe: Users may not agree on what they need Pin
Christopher Diggins12-Feb-14 16:13
professionalChristopher Diggins12-Feb-14 16:13 
QuestionGreat Article!! Pin
DevAffair14-Jun-13 3:10
DevAffair14-Jun-13 3:10 
AnswerRe: Great Article!! Pin
Christopher Diggins12-Feb-14 16:16
professionalChristopher Diggins12-Feb-14 16:16 
GeneralMy vote of 5 Pin
Rai Pawan11-Apr-13 18:26
Rai Pawan11-Apr-13 18:26 
GeneralRe: My vote of 5 Pin
Christopher Diggins12-Feb-14 16:14
professionalChristopher Diggins12-Feb-14 16:14 
GeneralMy vote of 5 Pin
Sk. Tajbir9-Apr-13 0:23
Sk. Tajbir9-Apr-13 0:23 
GeneralRe: My vote of 5 Pin
Christopher Diggins9-Apr-13 6:19
professionalChristopher Diggins9-Apr-13 6:19 
Questionin-house software developers Pin
BeeWayDev8-Apr-13 3:17
BeeWayDev8-Apr-13 3:17 
AnswerRe: in-house software developers Pin
Christopher Diggins8-Apr-13 3:51
professionalChristopher Diggins8-Apr-13 3:51 
GeneralRe: in-house software developers Pin
jgakenhe6-Jan-15 19:01
professionaljgakenhe6-Jan-15 19:01 
GeneralMy vote of 5 Pin
_Vitor Garcia_7-Apr-13 22:27
_Vitor Garcia_7-Apr-13 22:27 
GeneralRe: My vote of 5 Pin
Christopher Diggins8-Apr-13 3:52
professionalChristopher Diggins8-Apr-13 3:52 
QuestionFeedback Pin
raselahmmed7-Apr-13 18:43
raselahmmed7-Apr-13 18:43 
AnswerRe: Feedback Pin
Christopher Diggins8-Apr-13 3:43
professionalChristopher Diggins8-Apr-13 3:43 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.