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
Like VB, this is a gateway drug to the larger world of agile. I think the term, “fake it till ya make it” can apply to organizations who are still learning what agile is. By sending their employees to these training sessions they are at least exposing people to the concepts and artifacts of agile development. I think that’s better than not getting any exposure at all, despite the fact that they will likely go back to their companies and do agile badly and then just decide that agile isn’t a good thing. Sadly, most of these people would do any process badly. But enough people will come through the program and “get it.” They’ll get exposure they might not have otherwise gotten and pursue that knowledge. They’ll also hopefully learn enough while trying to implement agile at that company and if they succeed, great! Otherwise, they’ll take what they learned and move onto another organization and try again. Eventually some will make it, and the community will be better for it.
“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.”
As you said earlier in your article, it’s not the lanugage choice that defines the maintainability of an application, the skill of a developer or the quality of the product.
I for one also prefer to write in C#, but we simply have a policy at our company that dictates we write in VB.NET. Even though I’ve successfully been able to integrate C# into our unit tests, given we have 1.4 million lines of VB across 10+ large applications, it just doesn’t make sense to switch between languages.
So my question to you is, why perpetuate the negative sentiment about the language?
Hi Dan,
I apologize – my intention wasn’t slamming the language. My point was that if someone has written bad code, and doesn’t understand fundamental principles, then either we have to rewrite that code, or train the person – which the target for a lot of people who wrote VB/VBA were non-programmers just trying to get stuff done.
On the other hand, with the CSM, we can say that the CSP – or any practitioner level cert – is what matters. With VB apps, we can say quality matters, but unless the app is rewritten, it won’t change. The same doesn’t hold true of the people.
Does that make more sense?
Dude, wake up. Why do you think VB has this strong presence? Because it works?
So without being ACTUAL programmers we are still able to provide customers with value?
This inferior language actually shaped C++ into what C# is today. Pragmatic.
This VB programmer likes Scrum also.
Good luck out there.
Cory,
Upon reading your post and reflecting on a conversation that I had with someone yesterday who was at AGILE 2009, it occurred to me that the Agile world needs some sort of real politic that ensures that people are getting the certifications and then maintaining them.
Recently, I completed my PMP certification, and that cert required 4500 hours of project management, at least 30 hours of instruction on project management and a BS degree to be allowed to sit for the exam. Beyond that, if you don’t have a degree, you have to have 7500 hours of project experience. All that is documented on an application to become a PMP, and is reviewed automatically for completeness. Then 10% of the applications are randomly selected for documentation purposes, so that the person submitting it is required to provide additional documentation to ensure that they have legitimately met the requirements for the exam.
After all the above is completed, you then have to sit for the exam, which is 4 hours and administered in a Prometric facility, where you go through a number of processes to ensure that you aren’t cheating on the exam. The comprehensive nature of that process ensures that people do not get “paper-only PMPs”. I believe that similar steps should be taken before the CSM becomes a joke.
Finally, once people do get the certification, we need to be sure that people are maintaining them through educational credits. Since the worlds of Agile, Scrum and Project Management all have some shared characteristics, I think that as a group, we could allow education development units for PM certs to carry over, or we could treat the contact time at the Agile sessions as some time as well.
However this debate works out, my greatest concern is that we are allowing a certification process to become so badly managed as a community that it will have little value down the road. In the end, as Agilistas, we should reverse this course soon, or our practice will become meaningless.
Ian