We are a pretty immature industry, especially when we attach “Engineering” to our profession. We have WHOLE YEARS of experience existing, compared to medicine, law, prostitution, building, publishing and almost everything else. So I read this article with interest. Although the parallel with practicing vs studying medicine is interesting, what I found most agreeable (Because really, that’s why people link to things on the Internet, to ‘prove’ themselves right or have a rant) was the notion of quackery.
Imagine, if you will, the following scene is set in a large conference. Outside a lecture theater is a curious man in suspenders, a striped hat and cane, carrying a pack of index cards. Tucked behind his ear is a sharpie. The walls around the doors are covered in charts showing constantly growing bars, and tacked up in a row is a set of cards with writing in thick black ink.
“Roll up, Roll up, see Professor Scrum Von Agile’s Amazing Process Improvement Paradigm! All comers welcome, .Net, Rails, C, PHP, All can benefit from Professor Scrum’s patented methods!”
A crowd of people have gathered to watch the man gesticulate and frolic (Frolicking is a mandatory course at quack school). Already a nervous line of people have drifted forward, wanting to see what help they can get for their
“Ailing projects, dis-satisified customers, aimless engineers, all can benefit from special intervention using Professor Scrum Von Agile’s Dancing Index Card system!”
One project manager is siezed and made to sit in a chair while the doctor analyzes his symptoms:
- Feature Bloat
- Constant Change Requests
- Build Problems
- Low Quality
- Dis-satisfied Customers
- Erectile Dysfunction
- Bloaty Head
“Aaaand a One! Aaaaand a Two! Aaaaand a THREE!”
The doctor waves index cards around the PM, drawing intricate shapes in the air. Assistants rush around with graphs showing ever increasing feature lists and ever decreasing costs. The PM starts to get dopey by the rush of endorphins from actually seeing progress! … Or perhaps the Sharpie fumes. Points are Estimated. Stories are Carded. With a flourish of whiteboard markers and a ‘feel-good’ trust fall, the PM’s project is declared Cured! Of what, we’re not quite sure. Possibly project issues, possibly dis-satisfaction. Certainly his wallet has been Cured! of some of its cash.
“Waterfall, Requirements Specification and Documentation! All have been tried with the success of Sisyphus. No More! Professor Scrum Von Agile and his Dancing Index Cards can be At Your Service! Come in now for an exclusive training course, or grab the Professor Scrum Von Agile and his Big Dancing Index Card Kit, so you can brag to all your friends!”
The crowd rushes forward to buy…
BS? Professor SVA is. Is his process? Well… Sometimes. Sometimes it works because it’s good, and often it works as a side effect of being mindful. If you’re trying to analyze how well you’re going, you will get better at it. So if you’ve only ever done waterfall because Hey! That’s how you do it, moving to another process is more likely to bring you success. Just like Quack medicine would sometimes work (Because, perhaps, one of the binding agents was full of sorely lacking vitamins), Quack software processes sometimes deliver value. Some of them may help you become a better developer, a happier person, a more worthwhile employee, or deliver better software. Some of it is directly helpful, and some is incidentally helpful.
The reason it’s helpful is the same reason some Quack medicine were helpful, side effects; Vitamins, if you will. The inherent value in the product you’re using is more valuable then the “magic ingredient” supplied with it. If you’ve never washed your hair and you start using Madam Du Plonge’s Licenced Dandruff Tonic to get rid of your Aspen-like flakes, I can guarantee your hair will start being nicer… Because you’re washing it, not because of the magnetic vibrationsMs Du Plonge (Who’s actually an ex seamstress called Emma Hogstwat, wearing a wig she stole from a gypsy) claims her tonic emits. If you switch to Ruby on Rails because you like the language more, you’re likely to become more productive because you’re enjoying it more and it’s m0re expressive. It’s not because you went to this awesome Rails course!, it’s because (for you) Rails is better.
I believe Agile methods work. All the Agile processes, however, are not equal. They don’t work because of the process, they work because of the principles(vitamins) involved in that process. Agile is all about focusing on the result. Make sure you’re doing work the customer wants. Always try to build systems that can be delivered in an iteration. Monitor your work. Have tests. None of that is about index cards, or feel-good meetings, or strict adherence to a process. It’s all about doing more of what your goal is, which is writing software the customer needs. If you move to a new process that requires you to buy specially formatted index cards to put stories on, I can guarantee that the improvements you see aren’t because of those cards. It’s because you’re breaking your work up into units that the customer needs, and delivering them in small, usable chunks.
Quackery is all about the process more then the result. It’s about buying the Quack’s books, their framework, their courses, their pre-printed cards, their tool or their consulting time. The more you buy, the more successful you’ll be! Quackery is not restricted in software to processes, oh no, it’s everywhere. There are language quacks. There are framework quacks. There are process quacks, recruitment quacks, tutorial quacks and system quacks. It’s like a Peking Duck restaurant in the House of Software.
In part we’re vulnerable because we’re so young, and in part because we’re flighty. We’ve not yet learned what works well in every case, what we can do right in all situations. Plus, if it’s new and shiny, we probably want to be involved. We want to do Ruby instead of Java. We want to use JQuery instead of Prototype. We want to have Story Cards instead of massive Requirement Specs. We want Relational Databases, Locational Check In and Twitter integration, along with beanbag chairs. It’s also sexy to tell your friends
“Hey, still compiling code? Huh. We use a direct assembly technique backed onto a cloud computing platform to manipulate a RESTful architecture to publish JS to accomplish our results. But, whatever works for you.”
Some of it is because we’ve been sold it. Some is because we think it’ll help us. The Quacks are persuasive, they’re hard to spot. And most of all, their products are shiny. But you can lose time, money and customers playing along, and for what? Valueless fluff around good systems, useless ideas polluting your thinking capacity, and being able to say to our friends, “Hey, look at my Big DICK“.
Sounds like a crappy “Cure” to me. I’d rather take my vitamins.