35 Agile Development Best Practices

ninjaHow Agile are you? It seems that nowadays most software developers claim they are doing Agile. However, it is also a well-known fact that many teams are only following part of the practices that characterize Agile software development. In the case of Scrum, this is called “Scrum-but”: Doing Scrum but adapting it to your own taste.

Below is a list of 35 Agile Best Practices. You can go over it and check how many of these practices your team is currently following:

  1. Priorities (product backlog) maintained by a dedicated role (product owner)
  2. Development process and practices facilitated by a dedicated role (Scrum master)
  3. Sprint planning meeting to create sprint backlog
  4. Planning poker to estimate tasks during sprint planning
  5. Time-boxed sprints producing potentially shippable output
  6. Mutual commitment to sprint backlog between product owner and team
  7. Short daily meeting to resolve current issues
  8. Team members volunteer for tasks (self-organizing team)
  9. Burn down chart to monitor sprint progress
  10. Sprint review meeting to present completed work
  11. Sprint retrospective to learn from previous sprint
  12. Release planning to release product increments
  13. User stories are written
  14. Give the team a dedicated open work space
  15. Set a sustainable pace
  16. The project velocity is measured
  17. Move people around
  18. The customer is always available
  19. Code written to agreed standards
  20. Code the unit test first
  21. All production code is pair programmed
  22. Only one pair integrates code at a time
  23. Integrate often
  24. Set up a dedicated integration computer
  25. Use collective ownership
  26. Simplicity in design
  27. Choose a system metaphor
  28. Use class-responsibility-collaboration (CRC) cards for design sessions
  29. Create spike solutions to reduce risk
  30. No functionality is added early
  31. Refactor whenever and wherever possible
  32. All code must have unit tests
  33. All code must pass all unit tests before it can be released
  34. When a bug is found tests are created
  35. Acceptance tests are run often and the score is published

I’ve tried to provide links to all important concepts in the list above, in the case you would like to learn more about them. The list itself is from the paper: “What Do We Know About Scientific Software Development’s Agile Practices?

So, how many of these practices do you follow? Please leave a comment below.

About Hayim Makabee

Veteran software developer, enthusiastic programmer, author of a book on Object-Oriented Programming, co-founder and CEO at KashKlik, an innovative Influencer Marketing platform.
This entry was posted in Agile, Programming and tagged , . Bookmark the permalink.

17 Responses to 35 Agile Development Best Practices

  1. chetu says:

    Agile software development with Scrum often seems as a methodology, but I think we should think of it as the framework for process management. I really enjoy this blog post because it allows software developers to access valuable information all in one place. Thank you for writing such an informative article.

  2. Hi Hayim,

    This is a very excellent list that I’m sure many project managers/agilists will appreciate. I would like to republish it on PM Hut where it’ll get a lot of exposure to the project management community. Please either email me or contact me through the contact us form on the PM Hut site in case you’re OK with this.

  3. william says:

    Hey Hayim,
    Your list is really good ,if any person apply some point yourself he is make good developer.
    Thank for sharing

  4. Harlow says:

    Thanks for this valuable post agile development methodology provides opportunities to assess the direction of a project throughout the development lifecycle. This is achieved through regular cadences of work, known as sprints or iterations, at the end of which teams must present a potentially shippable product increment.

  5. Miles says:

    Thank you Hayim, this is an excellent article, especially as you have links to describe in detail most of the best practices.

  6. Pingback: Recommended reading – Developers interview at ThoughtWorks | Garbage@Dustbin

  7. Pingback: Agile Practices and Social Nudges in the Workplace | Effective Software Design

  8. Sandeep Patel says:

    All these are not Best Practices. They are practices that one or the team can adopt to improve team. Each scrum team is different and may adopt different practices and drop different practices along the way. To say this is the best you are putting a hierarchy in place which is wrong in my humble opinion.

    Still I appreciate your work and teams and scrum masters can check this list out and choose which is good for them….Good work!.

  9. LOMBARDI BPM says:

    Thank you this is an excellent article.

  10. Pingback: Do SOLID design principles make code slow? | Effective Software Design

  11. Fernando says:

    Nice post. I mostly agree with the content of the list but must confess that the ordering is not exactly what I expected, specially after reading your other post on “death of Agile by oversimplification” and how teams are actually failing to be agile when they forget to adopt technical practices (TDD, Pairing, simple design…). This is definitely not new, check Martin Fowler’s post “Flaccid Scrum” back 6 years ago now.

    In my head, those technical practices as important as having an ordered backlog, timeboxing and continuous improvement.

    Regards,

  12. Pingback: Waterfall, RUP, Agile … ? | NetAnalytiks

  13. Hey, great list – very comprehensive.
    I just found this cute info-graphic on the best agile development practices – planning to show it to a couple of new-to-agile young devs we’ve employed: http://kanbantool.com/blog/agile-development-best-practices-infographic

  14. Murali Choudaari says:

    Thank Hayim, this is an excellent article, with covers everything related to Agile, especially as you have links to describe in detail most of the best practices.

    Thanks a lot for creating great article..

    Regards,
    Murali Choudari.

  15. Pingback: 5 Best of the Best Practices you need to Know | KAI Partners

  16. eljay451 says:

    It is a good list, however it is commingling Scrum practices in with agile engineering practices.

    Those Scrum practices should not be on a list of “35 Agile Development Best Practices”. Maybe they should be on a list of “35 Scrum Best Practices”. (Adjust the “35” accordingly.)

    Scrum is a management process, and it can facilitate agile software development. But it isn’t the only management process amenable to being used with agile software development. The Scrum-centric points are not themselves agile — they are part-and-parcel of Scrum itself.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s