One of the things I’ve been thinking a lot about lately is how our industry has grown to this point. By industry I refer to both the Software Development Industry as well as the cottage industry around agile software development. Throughout Agile 2009 and the Software Craftsmanship North America conferences this week, the two most complained technologies and processes I hear about are the Certified Scrum Master program and Visual Basic.
Visual Basic is probably the most-oft joked about programming language, primarily because one of the scariest things one wants to hear from a customer is, “We have this app we wrote in VB…” as any hopes of good design, good code and other elements of maintainable software usually are thrown out the door. However, it’s hard to dispute that Visual Basic is also one of the most used languages in the world. It brought an amazing capability of being able to build programs to people who either would have had to otherwise hire a programmer or, in some cases, not be able to get anything at all.
For most professional software developers, it isn’t the language per se as the representative base of people using the language that trips up Visual Basic. I personally prefer more C-like languages (such as Java and C#), but from experience I know that it is possible to write well-designed, well-tested, easy to understand code with Visual Basic (especially with VB.NET).
If we turn our attention now to Scrum and the Certified Scrum Master (CSM) program, we’ll see some interesting parallels. It’s hard to deny that the CSM was a genius of marketing. “Take a two-day class to learn about an easy-to-use system that will help you build your software better, faster and cheaper!” And, in fact, that’s what many people did, taking back a program of three elements (Backlog, Sprints and Stand-Ups) without the context that to be truly effective you have to have the context and team maturity to also be able to inspect and adapt those things that are not working.
What then happened was that the corporate world got a hold of this and started sending people in droves. When I took my CSM class, there were over 30 people from the same company there, and when I asked them why they were there, the answer was, “We were told to come by our company”.
Because of the big push to be “Agile” (big-A), what this led to were newly-minted CSMs being turned out in droves and unleashed into a corporate world which did not value and was not ready for the kind of change that needed to happen. This, in turn, led to things like ScrumBut and Cargo Cult Adoptions of Scrum. In other words, companies had turned a valuable process into just another stick to beat the horses with without taking into account the true change model and goals of what they were adopting.
Similar to Visual Basic, if you talk to many agilists, the principles of Scrum aren’t the issue. Many may argue they don’t go far enough (to include things like engineering practices), but the principles themselves are sound. And indeed, if you have one backlog, work in iterations to commit to and complete the work, communicate on a daily basis, and frequently inspect what is going on and adapt your practices, you will likely see an improvement in how you work.
So, two things, both which have pushed their respective base growth, equally despised by the thought leaders not because of the things themselves, but how the people using them have taken and twisted them.
There is a very interesting difference between the two of them. With Visual Basic, the applications are written. And once they are written, they have to either be rewritten, or retired, and if we want to help those who wrote those programs, we can work to teach them fundamental programming principles. But most of those “VB developers” are workers in fields other than software, who likely don’t want to take the time to do something about it.
On the other hand, there is something that we can do about the CSM, and Scrum in general. The Scrum Alliance offers a Certified Scrum Practitioner program. To qualify, you have to be a CSM and have done Scrum for 12 months on a project. You then have to describe in detail how you used Scrum on that project, and that application is reviewed by a board to ensure that the practices and principles were followed. It isn’t perfect – it would be great if there were more personal conversations involved – but it shifts the focus away from “I took a class” to “I successfully brought the ideals of Scrum to my organization.”
In fact, there is a similar thing with the talked about Certified Scrum Developer program. Instead of just requiring a 5-day class, we as an industry need to reject anyone who isn’t at the Practitioner level (a level which hasn’t been defined by the Scrum Alliance). Then the focus becomes not just on the learning model, but on the application of the learning model in a real-world environment. I’ve also heard rumors that the CSM will only be allowed to be kept as a certification for 2 years, at which point you either should be a CSP, or you won’t be certified at all.
So, I truly do believe that the CSM program is the VB of agile development. The difference is that we as a community can demand changes to the model of CSM, and begin rejecting those which simply take a class or give lip service to it. In fact, I would even be willing to say that the reason that these programs are like they are is solely because of our lack of integrity to stand-up and say, “This is utter crap, and needs to be fixed.”
So let’s stand up and say that, and begin making our industry something we’re proud to be in