A couple of days ago Obie Fernandez posted a message on "Introducting RMM, the Rails Maturity Model". The message basically stated that:
- There's currently no way of seperating the disciplined rails shops from the unwashed masses (a.k.a. I-Don't-Know-What-I'm-Doing-But-Rails-Is-Hot-And-I-Can-Make-Some-Money-Of-It shops/individuals)
- It would be nice if there was a way of indicating: "We're a full fledged, grown up Rails provider"
Obie provided a very basic example (more a first brainwave) of Maturity Levels of Rails shops and unfortunately proposed that a certification of Rails shops might actually be a solution. Although I do understand that the first kind of solution that comes to mind is "Let somebody we all trust say: you're great, you have to improve or you suck", this might not be the best thing to do.
As a result of the word "certification" a lot of people stressed out and started making comments like "who will determine what is good/bad", "who are you to tell me how to do it" etc. Giles Bowkett wrote down some intelligent remarks (in between the rant-language candy).
As a reaction to Obie stating: "our collective failure to set high standards for the community is strangling the continued growth of Ruby and Rails overall." Giles comes up with: "What Web framework is more concerned with elegance? What language community has a greater reputation for being obsessed with TDD?"
Personally I don't think Obie is just mentioning "Code Quality" here, but "Development Quality" in general. This includes customer care, legal stuff, project management etc: Summarized: the way people run their software development shop. And yes, I think Obie might be right that the "rails community" being "The people/shops that use rails to develop products" might grow faster if the overall development quality rises. My arguments:
- There are not too many rails shops
- A lot of the shops that do rails are small and relatively unexperienced (bold statement I know, no numbers to prove it)
- When a customer is searching for a rails shop, they are likely to encounter one of the small unexperienced ones
- The shops that do rails proudly say they develop in rails (It's a long time ago I heard somebody rant about the beauty and ease of use of Java in a sales conversation)
- Rails is starting to equal "The Rails Way" of development. Not just the language, the way of doing stuff. Giles is totally right here, the community is obsessed with code quality and beauty, buy that doesn't mean the produced quality is high.
- If a ".NET" of "Java" shops messes up a project it is blamed on the shop. If a Rails shop messes up non-technical customers might blame the framework since in the sales conversation the shop sales guy ranted: "We develop using tests, so no bugs! We develop agile, so you get exactly what you want! We develop way faster than any other shop and you know what... It's all because we use RAILS!!".
GIVEN: most customer encounters are with small unexperienced rails shops
AND quite some projects fail
AND the way of "selling" rails
THEN: Rails might get a bad name, slowing the growth of the community (language, tools, methods and believes) in the long run.
The rails way is a toolkit, an ecosystem! Not just the framework. But the way of thinking. TDD, BDD, Agile, Capistrano, Rake, RubyGems, GitHub, LightHouse, BaseCamp, all the screencasts: tools strongly related to Rails, but not Rails itself!! Together they form the Rails Ecosystem. These tools mean nothing if you don't integrate them in your standard way of working!
The question Obie posted for discussion was (Obie: please tell me if I'm wrong): Is there a way of measuring how well a development shop uses the tools that are available? And how well are these tools integrated in the basic process of the shop? Combined: What's the service / professional level of a software shop?
Obie was right, in the brainwave of looking at the Capability Maturity Model (Integration) or the Software Process Maturity model (SPM) that do exactly this. Yes, certification might be a part of it. Outsourcing companies (especially in India) have been in a rush for years to get up to CMMI level 3,4 and 5.
Did it help? Not in all cases. Is is a selection criterium for bigger companies? Yes. Did it bring companies toward mediocre development, as Giles suggest? No, I don't think so. Does it help companies professionalize themselves: yes. Did it help the IT industry in general: I'm tending to say yes. Does that mean Rails needs a certification process? Not necessarily. Is Obie stupid? NO! Is it wise to look at the ecosystem and try to organize stuff together? Yes. (for a brief argument why, read this)
We should distinguish between:
- a Rails Certificate and
- a measurement and/or coordination system on how well a development shop takes use of the Rails Ecosystem including the Tools, Thoughts and Believes.
I'll write (another) extensive blog post on CMM(I), SPM and the Product Software Framework in the next 1 or 2 days to give the community a shot at what it could mean. Maybe when it's clear where we're talking about, the opinions change and people will proactively support some RMM activities instead of just shooting at an idea without taking not of the bare essence.
Comments