How 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:
- Priorities (product backlog) maintained by a dedicated role (product owner)
- Development process and practices facilitated by a dedicated role (Scrum master)
- Sprint planning meeting to create sprint backlog
- Planning poker to estimate tasks during sprint planning
- Time-boxed sprints producing potentially shippable output
- Mutual commitment to sprint backlog between product owner and team
- Short daily meeting to resolve current issues
- Team members volunteer for tasks (self-organizing team)
- Burn down chart to monitor sprint progress
- Sprint review meeting to present completed work
- Sprint retrospective to learn from previous sprint
- Release planning to release product increments
- User stories are written
- Give the team a dedicated open work space
- Set a sustainable pace
- The project velocity is measured
- Move people around
- The customer is always available
- Code written to agreed standards
- Code the unit test first
- All production code is pair programmed
- Only one pair integrates code at a time
- Integrate often
- Set up a dedicated integration computer
- Use collective ownership
- Simplicity in design
- Choose a system metaphor
- Use class-responsibility-collaboration (CRC) cards for design sessions
- Create spike solutions to reduce risk
- No functionality is added early
- Refactor whenever and wherever possible
- All code must have unit tests
- All code must pass all unit tests before it can be released
- When a bug is found tests are created
- 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.
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.
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.
Your list is really good ,if any person apply some point yourself he is make good developer.
Thank for sharing
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.
Thank you Hayim, this is an excellent article, especially as you have links to describe in detail most of the best practices.
Pingback: Recommended reading – Developers interview at ThoughtWorks | Garbage@Dustbin
Pingback: Agile Practices and Social Nudges in the Workplace | Effective Software Design
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!.
Thank you this is an excellent article.
Pingback: Do SOLID design principles make code slow? | Effective Software Design
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.
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:
Pingback: Waterfall, RUP, Agile … ? | NetAnalytiks
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
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..
Pingback: 5 Best of the Best Practices you need to Know | KAI Partners
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.
Pingback: What is ScrumBut? | Scrum.org – Success in Agility
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
Pingback: Recommended reading – Developers interview at ThoughtWorks – Random Thoughts
Thank You for this wonderful and much required information in this post.
Agile Development Services in USA
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 .
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.
Pingback: What is Agile Methodology? How It Works, Best Practices, Tools – Application Performance Monitoring Tools For Developers
Pingback: What is Agile Methodology? How It Works, Best Practices, Tools - CloudStack