A review of my Agile experience:
It all started in JMango, we were being introduced to Agile/Scrum and then have used it since. Scrum is the most popular way to apply Agile.
There are many terminologies associated with Scrum, and the process is well defined. We have sprints running 2-3 weeks, 3 meetings for each sprint:
- sprint planning meeting at the beginning of a sprint (about half a day): where all the team members sit together to define the tasks, evaluate priority and estimate the time needed to achieve these tasks
- sprint review meeting at the end (about 2 hours): where a demo of what we have done during the sprint, and assessment of how closely the result match with the plan
- sprint retrospective meeting after review (about 1 hour): where everyone contribute his/her opinions about 1) good things we are doing, 2) bad things we are doing, 3) things we can do to improve
The main result we have is the release candidate version that we can code-tag at the end of the sprint. Usually we will need to rush to finish all the planned tasks to show in the demo at the review meeting, so the review meeting is a perfect motivation to work hard and show off your work. This is like a small exam or test every 2 weeks that requires you to perform.
The retrospective meeting is the chance for us to grow, to consolidate the good practice and abandon the bad practice, and to try new thing.
Is code review important in Scrum/Agile?
Agile’s main concern is the customer’s satisfaction, so sometimes people think Agile is quick and dirty, while in reality it’s focus on quality and effectiveness requires different practices to make sure that the issues and defects are detected early and efficiently.
The most efficient method is Code Review – while Test Units are shown to detect only 25% of the defects, code review has 60% efficiency (link). The book Peer Reviews in Software: A Practical Guide is an excellent guide to Code Review (the benefits of code review is great, especially for the common good and the shared deadline).
Personally, code review is the best way to improve your code and learn from other developers. Generally, code review is a practice that should be encouraged to follow for any team.