Michael D. Green

Blogger, Consultant, Technologist and Very Opinionated.

What are the Pros and Cons of Agile Scrum? Part 1

18 Jan 2015 » careeradvice, technology

Agile SCRUM

A few years ago, I had a technical interview with a client in Florida and one of the interviewers asked me an interesting question. He asked me to talk about some of the pros and cons of Agile Scrum. The interviewer’s question caught me off guard because although I had accepted being Agile as the best way to create quality software, at the time, I didn’t have a lot of experience with Agile Scrum. Since this interview, I have been on several Agile Scrum projects and as a result, I think I have a much better perspective on being Agile and better able to talk about the pros and cons of Agile Scrum.

In part 1 of this blog, I will focus on what I perceive to be the biggest pros of Agile Scrum. Also, as a caveat, the pros and cons should be viewed in the context that an organization has successfully implemented Agile Scrum. Some Agilists will tend to brush off any perceived criticism of Scrum and claim that it was not implemented correctly, so the assumption for this blog should be that you are in an organization that is Agile and Agile Scrum has been implemented correctly.

Shortened Feedback Loop

One of my favorite aspects of Agile Scrum is how it “shortens” the feedback loop. Writing, testing and releasing quality software can be difficult. Because of this, I believe that if you are going to create quality software, then it is important to receive constant feedback from the customer. By receiving early and constant feedback from the customer, it enables you to quickly correct any issues as a result of poor communication or by virtue of the customer changing their mind. Before I had ever heard of Agile, I had already placed a great deal of importance on receiving constant feedback from end users, especially if there was any ambiguity about what was to be done.

My first job straight out of college was working for a marketing research firm where I created online surveys for my company’s clients. While working on a particular survey, many times, I would get together with the customer and the business analyst to go over the survey as it was being created. By involving the customer early and getting constant feedback, I was able to save my company time and money because mistakes in the survey would be caught early, the customer would see working software every few days and there were no surprises when the final product was completed. I view the relationship between a product and a customer like a marriage. Similar to a married couple, the product and the customer need to spend quality time together and any issues between the two, need to be straightened out as frequently as possible.

Collaboration

One of the biggest advantages of Agile Scrum is team members are expected to collaborate on a regular basis throughout the software development process. Communicating between just two individuals can be a challenge, let alone several individuals. Collaboration is critical if you want to create quality software. The reason I believe this is because when your team is highly collaborative, communication is increased, issues are voiced, product feedback is constant and this should result in fewer surprises when the team reviews the product with the client at the end of each sprint. Through daily stand ups, planning, reviews and retrospectives, Agile Scrum allows teams to be highly collaborative and thereby many of the previously mentioned habits tend to become natural byproducts of an organization’s software development process when Agile Scrum has been adopted.

Recently, I was placed as a lead developer on a 3 month multi-million dollar project that had a very aggressive deadline. The organization was trying to be agile but just didn’t have the right coaching and culture to get there. As a result, during the first month of the project, we only reviewed our product to the business one time and there was a huge gap in what we had delivered and what the product owner expected. Also, the team had very little access to the product owner because the project manager chose to meet with the team and the product owner separately. As I saw the rift between the product and product owner widening, I strongly suggested that we have 15 minute stand ups everyday with only pigs in the room, including the product owner. Also, I strongly suggested that we start reviewing the product with the product owner a few days a week. These suggestions were accepted and as a result, the marriage between the product owner and the product recovered and we successfully delivered a quality product that is in production as I write this blog.

Servant Leader

Another quality that I like about Agile Scrum is the idea of a servant leader. Having someone on the team that is completely focused on serving the team in the way of removing roadblocks, facilitating collaboration, working with the product owner and keeping the team informed of its progress on a daily basis via Burndown/Burnup charts is very important. I state this because as a servant leader, the Scrum Master allows team members to focus more on solving problems. Because one of the major roles of a Scrum Master is to focus on the overall health of the Agile Scrum process, many of the items previously mentioned are duties the Scrum Master will be tasked with and team members are able to focus more on producing a quality product. I understand that if a team is not agile, a Project Manager, a Lead Developer or even a Business Analyst can handle those tasks but the point is that Agile Scrum defines an actual role that is solely focused on serving the entire team.

The first time I was exposed to Agile Scrum was when I first became a consultant and was sent to my first client in 2010. I remember thinking how great it was to be able to literally stand up in a meeting everyday, state roadblocks that I encountered and not only having a Scrum Master interested in my roadblocks but would spend as much time as possible trying to remove my roadblocks.

As someone who views being Agile as a way of life, there are certainly other qualities of Agile Scrum that I can talk about. For the sake of brevity, I wanted to focus on a few qualities that stand out and are what I believe to be the most important pros of Agile Scrum.

What do you think are some of the pros of Agile Scrum?