What is Agile Development?

October 31, 2013

Here are some of the responses that I’ve heard over the years:
  • It’s a mindset or a philosophy.
  • It is the values and principles of the Agile Manifesto.
  • It is a framework rather than a methodology.
  • It is a way to get more features out the door quicker than ever before.
  • It is something that the development teams do.
  • Agile development is anarchy! (I haven’t heard this one lately).
Perhaps you have a variation of one of these in mind, or even another, very different definition. Perhaps you’ve heard of technical practices like Test-Driven Development (TDD). What does all of this mean?

One of the challenges with agile development is that it defies being meaningful y described in a sentence or two. I’ve tried, but I never liked the results. I’ve also heard people criticize agile development because it can’t be defined succinctly.

These days, my response to this is that if we didn’t already understand non-agile approaches to managing and working, we couldn’t succinctly describe those in a meaningful way, either. Not well enough to understand how to apply what we believe and value as a set of practices that addresses the full spectrum of software development from inception to delivery.

I do have a definition, but I’ll get to that a little later. Let’s tackle the confusion factor first.

How We Get Confused
We can get confused about agile because most organizations begin small, implementing something like Scrum – the most popular agile framework in use today. This is a great step, but without some additional information casual observers run the risk of evaluating agile on the basis of what they are seeing and relating those observations to what they know. For example, it is possible to equate the following:

Product Backlog = Requirements

ScrumMaster = Project Manager

Sprints = Mini-Projects

These are close, but there are some important differences that differentiate the items on the left from those on the right.

Another point of confusion is around the issue of whether agile is a mindset or philosophy or something more specific like practices or a framework or methodology. It may sound backwards, but agile frameworks were like Scrum and XP were developed before the term agile was coined.

The term agile development came about as a result of seventeen thought leaders gathering in February of 2001 to talk about their particular approaches to software development. They sought to find common ground that brought balance to software development, finding an alternative to “documentation-driven, heavyweight software development processes.”

What we now call “heavyweight” software development processes grew out of the need to address the problems with ad-hoc software development, with the goal being of formalizing software development in ways to that led to producing quality software. However, these thought leaders determined that formal approaches had not only became increasingly bloated over time, they did little to actually solve the problem of reliably delivering quality software. But they did do plenty to increase costs.

As you may surmise, agile development is an umbrella term that captures the essence of what these thought leaders had already implemented in the creation of other methodologies introduced by these thought leaders, which at the time included Scrum, XP, Crystal, FDD, and DSDM. Scrum, for example, was first used in 1993.

The Depth of Agile
Agile goes even deeper than The Agile Manifesto. Let’s take a look at the depth of agile courtesy of a perspective put forth by Allen Kelly in his book, Changing Software Development: Learning to Become Agile (Kelly, 2008), as depicted in Figure 2-1:


Figure 2-1

Scrum and other agile frameworks and practices sit on top of a larger foundation that includes the values and principles of The Agile Manifesto. That means that if you are implementing agile development using Scrum, then you should be implementing Scrum with its roles, events, and artifacts along with honoring what is found in The Agile Manifesto (The Manifesto for Agile Development, 2001).

The four values of The Agile Manifesto:
  • Individuals and interactions over processes and tools.
  • Working software over comprehensive documentation.
  • Customer collaboration over contract negotiation.
  • Responding to change over following a plan.
The twelve principles of The Agile Manifesto:
  • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  • Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
  • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  • Business people and developers must work together daily throughout the project.
  • Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
  • The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  • Working software is the primary measure of progress.
  • Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  • Continuous attention to technical excellence and good design enhances agility.
  • Simplicity--the art of maximizing the amount of work not done – is essential.
  • The best architectures, requirements, and designs emerge from self-organizing teams.
  • At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Since agile is a form of lean, the following are the seven principles of lean development (Mary Poppendieck, 2003), which aid in developing a deeper understanding of agile:
  1. Eliminate waste
  2. Amplify learning
  3. Decide as late as possible
  4. Deliver as fast as possible
  5. Empower the team
  6. Build integrity in
  7. See the whole
And finally, the five characteristics of a learning organization (Senge, 1990, 2006):
  1. Systems thinking
  2. Personal mastery
  3. Mental models
  4. Shared vision
  5. Team learning
As you can see in Figure 2-1, things are more general the further down you go. Let’s work through an example, beginning with at the bottom, the Learning Organization layer and one of the characteristics of a learning organization: Team Learning.

Team learning is different than individual learning; a group of great individual learners does not mean that great team learning will take place. Just like a sports team, a business team must discover how to learn together as team to create great team results.

As we move up one level to the principles of lean development, we see that there is one principle that tells us to Amplify Learning. How do we do that? Delving a little deeper into lean and we find that one way that lean development amplifies learning is through the use of short cycles to increase feedback. This gives us some additional insight on how to enable team learning in a product development context.

Moving up another level to agile, we can readily point to one of the twelve principles of The Agile Manifesto that incorporates everything discussed thus far: “At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.” Now we have greater specificity on how to address the challenge of team learning.

And finally, if we are using a framework or methodology like Scrum, we have a prescribed event that enables team learning in support of everything found in the depth of the layers below: The Sprint Retrospective. This is where the team gets together to determine how they can improve in the next Sprint (a short delivery cycle measured in weeks, typically 1-4 weeks in duration).

By using this model, we provide ourselves with some very deep, rich territory to explore what being agile is all about.

Next post: The Breadth of Agile
This post is a draft of content intended for an upcoming ebook: Agile Expectations: What to Expect from Agile Development, and Why. Blog posts will be organized under the “Agile Expectations” content on the left-hand side for easy reference. I welcome your comments and feedback! – Dave Moran

Bibliography
Kelly, A. (2008). Changing Software Development: Learning to be Agile. John Wiley & Sons.

Mary Poppendieck, T. P. (2003). Lean Software Development: An Agile Toolkit. Addison-Wesley.

Senge, P. M. (1990, 2006). The Fifth Discipline: The Art & Practice of The Learning Organization. Doubleday.

The Manifesto for Agile Development. (2001). Retrieved from The Agile Manifesto: http://agilemanifesto.org/

13 comments

Alexia Marthoon said...

Another tip would be investing on professional certifications. We use Scrum org wide for project management, and its working well compared to waterfall method. As part of company sponsored training, I also got my agile scrum certification ; Scrum Master Certification recently.

February 26, 2014 at 4:56 AM
Kylie Wilson said...

Alexia, after thinking over for quite a while about whether to go for PMP or SCRUM certification, I opted for a PMP prep course , Instructer was too good and I passed with relative ease. Looking forwards to apply what I learned in PMP classes in my company.

March 3, 2014 at 4:04 AM
diana wright said...

It will definitely ease your work of handling a big project. As a project manager I use scrum in my projects. One of my friends referred me to use the Guide to Scrum Body of Knowledge by scrumstudy.com. I like the concepts of sprints, daily standup meetings, etc. the SBOK Helped me alot in Understanding how Agile Project Management works.

March 5, 2014 at 7:04 AM
peeter said...

I would say that a PMP Certification is highly respected within both IT & non-IT communities where strong project management skills are required. If you plan on a long term career as a project manager, then yes, even with your level of experience, I would suggest getting your PMP. You can prepare yourself for the exam in one of the PMP trainingproviders like www.pmstudy.com/. You can do minimal prep-work to get 40 PMI® Contact Hours and apply to PMI for PMP Exam before the class begins.

March 5, 2014 at 7:05 AM

This being really great article to read and also being very informative as far as agile development is concern.

March 21, 2015 at 2:59 AM
Ji Yeon said...

Thanks for sharing! Great post!

Võng tự đưa hay máy đưa võng hay võng điện cho bé giúp bé ngủ ngon mà vong ru tu dong cho be không tốn sức ru võng. Võng tự động hay may ru vong tu dong chắc chắn, gọn gàng, dễ tháo xếp, dễ di chuyển và vong tu dong dễ dàng bảo quản.
Chia sẻ các bà bầu uống cà phê có tốt không hay bà bầu có nên dùng dầu gió không hay bà bầu có được cạo gió không hay bà bầu có nên ăn thịt chó hay trứng ngỗng cho bà bầu hay giải mã giấc mơ thấy người chết hay cách chống nắng bằng trà xanh hay Collagen trị mụn được không hay chữa mất ngủ bằng gừng đơn giản, bí quyết làm trắng da bằng cà phê và dầu dừa hay giảm cân nhanh bằng gạo lứt hq hay mẹo giúp tăng cường trí nhớ hiệu quả, những thực phẩm giúp cải thiện trí nhớ hiệu quả, hay bệnh viêm khớp không nên ăn gì hay mẹo giúp giảm độ cận thị cho bạn, bí quyết chống nắng với cà chua cực hiệu quả, cách giúp bé ngủ ngon giấcthực phẩm giúp bé ngủ ngon mẹ nên biết, chia sẻ cách làm trắng da toàn thân bằng thực phẩm, những món ăn chữa bệnh mất ngủ hiệu quả.
Chăm sóc da mặt ở http://chamsocdamato.blogspot.com/
Cách chăm sóc da mặt bằng http://cachchamsocdamatbang.blogspot.com/
Dạy trẻ sơ sinh tại http://daytresosinh.blogspot.com/
Bí quyết giảm cân hay tại http://biquyetgiamcanhay.blogspot.com/

August 11, 2015 at 12:36 AM
Ji Yeon said...

Thanks for sharing! Great post!

Võng tự đưa hay máy đưa võng hay võng điện cho bé giúp bé ngủ ngon mà vong ru tu dong cho be không tốn sức ru võng. Võng tự động hay may ru vong tu dong chắc chắn, gọn gàng, dễ tháo xếp, dễ di chuyển và vong tu dong dễ dàng bảo quản.
Chia sẻ các bà bầu uống cà phê có tốt không hay bà bầu có nên dùng dầu gió không hay bà bầu có được cạo gió không hay bà bầu có nên ăn thịt chó hay trứng ngỗng cho bà bầu hay giải mã giấc mơ thấy người chết hay cách chống nắng bằng trà xanh hay Collagen trị mụn được không hay chữa mất ngủ bằng gừng đơn giản, bí quyết làm trắng da bằng cà phê và dầu dừa hay giảm cân nhanh bằng gạo lứt hq hay mẹo giúp tăng cường trí nhớ hiệu quả, những thực phẩm giúp cải thiện trí nhớ hiệu quả, hay bệnh viêm khớp không nên ăn gì hay mẹo giúp giảm độ cận thị cho bạn, bí quyết chống nắng với cà chua cực hiệu quả, cách giúp bé ngủ ngon giấcthực phẩm giúp bé ngủ ngon mẹ nên biết, chia sẻ cách làm trắng da toàn thân bằng thực phẩm, những món ăn chữa bệnh mất ngủ hiệu quả.
Chăm sóc da mặt ở http://chamsocdamato.blogspot.com/
Cách chăm sóc da mặt bằng http://cachchamsocdamatbang.blogspot.com/
Dạy trẻ sơ sinh tại http://daytresosinh.blogspot.com/
Bí quyết giảm cân hay tại http://biquyetgiamcanhay.blogspot.com/

August 11, 2015 at 12:36 AM
John Smith said...

Thanks you for this post… great information.
http://isl-schedule.in/
ISL Schedule 2015 time table
ISL 2015 Time Table Fixtures

September 30, 2015 at 8:21 AM
BLOG BAHASA said...

the Learning Organization layer and one of the characteristics of a learning organization: Team Learning.

June 21, 2016 at 11:53 PM
Murad Tanvir said...

Thanks for your informative article on agile technology. Scrum and agile is fast growing technology that ensure huge career option for talented professionals. Take Agile Training Essentials for better career.

July 13, 2016 at 5:24 AM

We are really grateful for your blog post. You will find a lot of approaches after visiting your post. Great work.
contact form, snapchat emoji

August 11, 2016 at 7:16 AM

Post a Comment