The rise of Scrum has really given the ideals of agile development a name. But I think with the greater acceptance of Scrum there has been the need to box in exactly what agile development is.
Before Scrum I believed that agile development meant two developers sit in the same cube, debate programming techniques and implementations for hours, and write 1 line of code together. Then I read Agile Software Development With Scrum. Just like most new-comers to agile I was thrilled to have someone layout the rules for doing agile. Create sprints in a few week intervals, hold daily stand-up meetings, identify chickens and pigs. I loved it. It was the rules to the game that I was missing.
But as we tried to implement it for our projects we immediately ran into the wall of waterfall. The rest of the business was used to doing step 1 before step 2, not concentrating on steps 3 through 8. Frustrated, I discussed the adoption problem with a “Process Consultant” helping us out at the time. He gave me the best advice I’d received about agile: It doesn’t need to be perfect. We went on to talk about how to fit Scrum into our process. Sure, we weren’t going to be able to apply all the rules, but we could apply some to help control the chaos of the business. In the end our projects began hitting their time-lines for the first time in history, quality of code was up, and our estimates were coming in much closer to actual.
I bring this up because I think there’s this feeling that you need to follow all the rules to Scrum to “be agile”. I hear a lot of chatter about clients asking for official Scrum Masters. I can understand if they have a rigid, predefined agile process already in place, but some of these clients haven’t the foggiest idea what agile means or why they need Scrum.
In the end, I worry that by putting up barriers around agile by using Scrum might prove to be a hindrance to the process. Thereby being counterproductive to the desired result of delivering quality products in a respectable time.