A couple of days ago I had one of my epiphanies. (I’m not a genius so something probably just dawned on me ;-))
The question in my mind was “Why do we keep on producing such cr*p software that people just don’t like to use?“. I need to caveat that a little as I solely focus on bespoke development for larger organisations here.
There’s lots of rational reasons why this happens. Examples are:
- Overly aggressive timelines
- No well-defined quality criteria
- Poorly understood requirements/no understanding of solution
- Bad SDLC
But there’s one that I actually never thought of listing….. FUN.
I can see how you go FUN?!?!?! Yes, fun. Let me explain…
IT people are not the drones they usually appear like (what managers like calling a resource). All those IT geeks & nerds are actually fiercely creative and clever. If you look at the hobbies and little things they do outside work you’ll realize that they are massively diverse and engaging. I’m talking about the guy that developed a new open source phone interface stack that outperforms anything on the market or the guy that did a full automated regression suite for some game because it was the cool thing to do. All of that with no pay at all.
What motivates them? Two things: challenge and fun
At work we totally ignore fun (not the challenges though). Projects are dull, rigid, predictable; everything but fun. Fun is difficult to plan for. It’s revenue neutral (is it really?). It’s something that the company has just shied away from banning in their work contracts (for legal reasons).
Fun you have usually working with all the diverse and interesting people. Project content wise….
Imagine working at Ferrari and the only important requirement is to get a soul from A-to-B. The end product certainly wouldn’t be a Ferrari!
I am sure everyone working for Ferrari is really engaged in the product and will have at least a modicum of fun building one of the coolest machines on the planet and watching their team win the F1. Getting a soul from A-to-B is probably quite far down the list of important things (if not further qualified).
Why wouldn’t we try and harness that engagement, the fun and coolness factor? I think agile, scrum & co is a big step in that direction and my personal experience actually reflects that. Does that mean though that these things are out-of-scope for Waterfall/V-Model? I definitely don’t think so. Although I would put my money on the fact that one of the first things that would happen is that the project would go agile & scrum or something along those lines.
Maybe it has to do with trust. Freedom -and therefore fun-is bought by trusting your employees and peers. Missing trust is the cause of so much of the grief and issues on a project level. It is one of the reasons for RFPs, SOWs, contracts, reports, metrics,….
One way to increase fun, coolness and get a great product is to let the SMEs, geeks, nerds and creative heads have more say about how things are done. Even to the extent of redefining requirements and challenging business decisions. It takes a lot of trust to do that and it could go wrong. With the abysmal project success rates on large projects I doubt a case against can really be made.
But look at what you stand to gain!! It could even equate to a new gold rush in IT. Success rates might improve and $$$ wouldn’t become the only motivational tool you have to gain & keep staff (not that $$$ ever are).
So why would I start mulling over such things in a testing blog? The reason is that I look at quality of the produced product.
Let’s stay in the motoring world and imagine you’re a worker at Toyota producing Priuses. Now we all know they produce great cars with a high quality standard. Imagine that worker goes home, where he has a Ferrari 250 GTO in his garage that he is painstakingly restoring. When the restoration is finished which car do you think will have the better end quality? Which one will be “better”?
Now imagine you’d let that employee contribute to designing/engineering the new Prius. Wouldn’t you think it looked more like below? Or any other/better design than the no-design that Prius currently has.
The example here is a bit flawed but I think I can make my point. People do good work but they do they excel if they are personally engaged, have fun and pride in the product. That includes quality!
Or take the famous 20% employee-time thingy that Google does (did?). They say all new products come from that 20%. Probably because people are having fun with developing cool stuff. So yes, there are easy ways to harness all this creative energy. Question is then, why it’s only 20% and even more pertinent, why is not everyone following such a successful model?
From a testing perspective I can actually tell (over and above factors like complexity), when a developer/architect/BA/DBA didn’t have fun doing something. It will be riddled with defects and the product “feel” will reflect the work-for-$$$$-attitude. So I/we have a vested interest in seeing developers have fun.
On top of that I think testing something, where a developer had fun and could be creative, is way more fun and satisfying to the tester too. There is nothing as boring as testing a product that has been un-lovingly designed and assembled.
As testers, we can apply this to our own work, too. Are we having fun while testing? One of the issues I have with the factory school of software testing is that they are trying to eliminate the fun from testing. Where is the fun in creating spreadsheets of scripts, and ticking them off? Where is the personal challenge in declaring you have achieved “100% test coverage” because you have written a single test against each written requirement. Compare that with the child-like glee in being given a new build, and the personal challenge of trying to find all the ways this program may fail in the field. Which approach do you think would ultimately be most beneficial for the end user?
So next time you look at your process, product or whatever is in front of you in your work life, ask yourself: “Where is the fun in this?”. If you can’t find any please don’t despair or do something rash! Think about what you need to install fun 2.0 into whatever you are doing. Then try -with baby steps- to move there. You might be surprised about the returns.
Author: Oliver Erlewein