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.

25 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,

    • Thanks for your comment, Fernando. I’ve listed the practices in the same order they appear in the paper I mentioned above. They are not sorted by importance.

      In my other post I talk about the death of the Agile hype. I still believe in the Agile principles and I also think that most Agile practices may be useful for most software development teams. My criticism is mostly directed to Agile consultants and practitioners that focus too much on project management and not enough on software engineering. See my other post:

      Attention Agile Programmers: Project Management is not Software Engineering

  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.

  17. Pingback: What is ScrumBut? | Scrum.org – Success in Agility

  18. Ewald Benes says:

    A great checklist to have in mind when one is about get sloppy with respect to testing and integrating regularly. I’ll put those points on my wall. I have to admit that staying consistent isn’t always that easy. It’s too easy to fall back in when feature pressure is high.

    I wrote an article about the coding perspective that could complement yours:
    View at Medium.com

    Best regards,
    Ewald

  19. Pingback: Recommended reading – Developers interview at ThoughtWorks – Random Thoughts

  20. comakeit says:

    Thank You for this wonderful and much required information in this post.
    Agile Development Services in USA

  21. 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.Thanks for sharing this Informative content. Well explained. Got to learn new things from your Blog. If you a looking Lead software Development Company visit Iqra technology .

  22. Great post, it helped me a lot. I am currently studying the agile model of software development life cycle, by the way, I found an excellent article on this topic.

  23. Pingback: What is Agile Methodology? How It Works, Best Practices, Tools – Application Performance Monitoring Tools For Developers

  24. Pingback: What is Agile Methodology? How It Works, Best Practices, Tools - CloudStack

Leave a comment