If you find this site useful, you should try my 55-page eBook here

10 Key Principles of Agile Software Development

by Kelly Waters

Email This Post Print This Post Save As PDF
10 Key Principles of Agile Software DevelopmentAgile Software Development is one of the big buzzwords of the software development industry. But what exactly is agile development?

Agile development is a different way of managing software development projects. 10 Key Principles of Agile Software Development, and how it fundamentally differs from a more traditional waterfall approach to software development, are as follows:

1. Active user involvement is imperative
2. The team must be empowered to make decisions
3. Requirements evolve but the timescale is fixed
4. Capture requirements at a high level; lightweight & visual
5. Develop small, incremental releases and iterate
6. Focus on frequent delivery of products
7. Complete each feature before moving on to the next
8. Apply the 80/20 rule
9. Testing is integrated throughout the project lifecycle – test early and often
10. A collaborative & cooperative approach between all stakeholders is essential

There are various methodologies and standards that address various aspects of software development, for instance PRINCE2 for Project Management, Use Cases/UML for Analysis and Design, ISEB for Testing. Although these are typically applied to Waterfall development projects, elements of these methods can also be applied in an agile development approach.

There are also methods that are specifically designed around agile development:

DSDM is probably the original agile development method. DSDM was around before the term 'Agile' was even invented, but is absolutely based on all the principles we’ve come to know as agile development.

SCRUM is also an agile development method, which concentrates particularly on how to manage tasks within a team-based development environment.

XP (eXtreme Programming) is a more radical agile methodology, focusing on the software development process and addressing the analysis, development and test phases with novel approaches aimed at making a substantial difference to the quality of the end product.

DSDM is probably the most complete agile methodology, whereas SCRUM and XP are easier to implement and complementary because they tackle different aspects of development projects and are both founded on the same principles of agile development.

In reality, there is no magic bullet for software development. The real trick is to know lots of techniques from various waterfall and agile development methods, and to select a mixture of the best approaches that are most appropriate for any given situation. To do this reliably with any degree of success really requires a lot of experience and skill.

In agile software development projects, project management takes a slightly different form, relying more on the project manager's skills in communication, facilitation, coordination, and emphasising less on planning and control.

Agile development can be a very exciting and invigorating approach, although some projects suit agile more than others. The collaboration and visibility can provide a much richer and more rewarding experience for teams to develop great software products. Agile development can be a lot more enjoyable than the waterfall approach, which requires lots more documentation and is less flexible by its nature. And when people enjoy their work, it’s amazing what they can achieve!

Kelly

See also:
10 Key Principles - PowerPoint Presentation

  • Digg
  • del.icio.us
  • StumbleUpon
  • Yahoo! Buzz
  • Technorati
  • Facebook
  • TwitThis
  • MySpace
  • LinkedIn
  • Live
  • Google
  • Reddit
  • Sphinn
  • Propeller
  • Slashdot
  • Netvibes

15 comments:

  1. Paul Klipp said...

    Welcome to agile blogging. Don't be discouraged if you don't get a flood of readers for a while. The community needs as many voices as it can get.

    Paul Klipp
    agileactivist.com

  2. Anonymous said...

    Would you say that maybe one approach to testing is defining how to test the results of what is produced in a sprint before work is done in the sprint?

    I am producing code to read data from a database then display it on a form. Should I wait until i'm done or would it be prudent to define the tests for the fields and such before I start?

    Personally I like to define how I am going to test what I am working on rather than develop a test case or plug in unit testing after the fact.

    What do you think?

    Thanks.

  3. Anonymous said...

    8% of the functionality of MS Word?

    Isn't that called Word Pad? Does that mean that Microsoft already considered your argunment?

    I did notice a few typos with some of the 10 Principles text... perhaps some of the other 92% of MS Word should have been utilised?

  4. Kelly Waters said...

    Hi anonymous,

    Many thanks for the feedback.

    I didn't mean to imply that Microsoft hadn't considered the 8% thing, i.e. that most people don't use most of the features. I'm sure they did. And WordPad may well be the evidence of that.

    I was just trying to highlight that software teams should proactively consider that fact too. And that maybe this is the basis for a strategy for the earlier iterations of a product's development - business people may say that the product needs all the features - and they may be right. But general evidence is that products do not need to be that rich in functionality to attract the majority of its users.

    Thanks for the feedback about the typos in my blog posts! I use Google's Blogger platform to write my blog, which unfortunately has less than 8% of Word - perhaps even as little as 1%, and sadly not a spell check!!! I'll go fix my typos :-)

    Kelly.

  5. Karthiganesh said...

    Hi Kelly,

    It is really good work. I am employing Agile Development Model for my current project. Earlier I employed RAD and Waterfall. But current situation makes me use Agile Development. Initially I am reluctant to accept that I am using Agile Development Model, as I did not know much about this. After reading your Blog, I can affirm that I am using this.

    I found this blog is useful.

    I will post my comments regularly.

    Cheers!

  6. Kelly Waters said...

    Hi Karthiganesh

    Many thanks for your comment, it's really great to get such positive feedback.

    Kind regards

    Kelly.

  7. Anonymous said...

    First of all I like your top ten and agree that they are all important principles. Unfortunately I miss a common vision in the top five to drive development. I find that a common vision is a great practice to align business and IT, both when things are going “according to plan” and especially when they don’t.

    Check out my own top 6 on www.agilethoughts.dk – we pretty much agree on the other 5 ;-)

    /Martin

  8. Kelly Waters said...

    Hi anonymous,

    Many thanks for the feedback...

    Shared Vision is of course a very important principle of any project, whether it's agile or not.

    I wouldn't include it in my key principles of agile, simply because I don't think it's a differentiator. Traditional development methods emphasise vision as much as agile methods.

    Anyway, 11 key principles doesn't have quite the same ring to it :-)

    Kelly.

  9. Mark said...

    I believe an important aspect of Agile is not only releasing what is functionaly requested by the user base and generating revenue for features/product that people want to buy vs. features no longer wanted, but usability has to come into play as well. If you deliver working software without the desired usability, you still haven't succeeded.

    I would also recommend reading Damon Poole's blog from Accurev. Some very insightful and regular posts that we find valuable.

    www.accurev.com

  10. Project Management Templates said...

    Thanks for this informative post

  11. Project Management Software said...

    It really great to participate in conversation. i got the information from happening discussion here.

    THANKS

  12. Anonymous said...

    Thanks Kelly,
    This is one of the best Agile's blogs I have ever come across.
    It is simple and clear in expalining Agile methodology.

    Ahmed.

  13. Kelly Waters said...

    Thanks Ahmed, that's really nice of you to take the time to say that.

    Kelly.

  14. Elizabeth said...

    Hi Kelly, This blog is great. Thanks for all your work. I am writing a book on Agile -- can I quote you in it? You'd make a wonderful expert for it.

  15. E-Publishing chennai said...

    Thanks for the guide. useful info i found on your article.

10 Key Principles of Agile Development

How To Implement Scrum in 10 Easy Steps

User Stories - Agile Requirements

Agile Project Management

10 Key Principles of Agile

How To Implement Scrum

Most Read

Agile Leadership

Agile Requirements - User Stories

Agile Estimating

Agile Testing

Agile Project Management

Lean Software Development

Agile Teams