Tuesday, 06 December 2011 09:40

Rhinestones Look the Same as Diamonds...

Written by 
Rate this item
(0 votes)

I was recently working on a project team of three: two developers and me. One of the things we had in common was that all three of us are perfectionists (in our various ways).

I noticed this trait in one of the developers early on: every button on every screen that he produced was aligned just so, the fonts were sized just right and the colours were the ideal shade. Similarly, the other developer enjoyed refactoring code just for the sake of making it more elegant; he loved the idea of working on a  section of code for hours at a time to reduce it to just a single line. And I, the BA-cum-tester—if a system contained any defect, however small or esoteric, I rooted it out. Corner cases were merely a starting point for me!

This perfectionism led to us deliver absolute diamonds of features; between the three of us, we were producing an utterly perfect system. Which is something to aspire to, isn’t it?

Like every project, we were operating within constraints. In terms of the time-cost-quality project triangle, we were limited in cost and extremely limited in time. The business was desperate for a working version of the system we were developing: last year was too late (no exaggeration!). And, in this context, we were making quality the highest priority.

Luckily, we had a project manager who wasn’t afraid to shake things up when necessary. So, he made us all sit down and assess our performance to identify and fix the problems that were slowing us down. As a result of this exercise, one of the problems we found was our drive for perfection (naturally!).

For example, whenever a story was “developer-done” and passed to me for the first round of user testing, I would put it through its paces and pull it to bits. No defect was too small, no niggle too minor. And, the minute I found a problem, the developers would compete with each other for the chance to fix it. “Zero defects” was our goal!

Some days, we would find ourselves caught in a cycle of UAT – defect finding – defect fixing – UAT – defect finding – etc... with no development being done on new features.

No wonder we were delivering so slowly! Our perfect diamonds of features were being formed over near-geological timescales, just like actual diamonds.

So, we changed, and one of the things we threw out was our commitment to “zero defects.”

Defects were then put through a triage process. Did it stop the system running? Did it cause the system to produce the wrong result? Would it cause difficulties for the users? Would the end customers notice the difference? If yes, then it must be fixed, by all means!

On the other hand, was it just cosmetic? Did it only occur under extremely rare circumstances (just how often do all the planets align in a single line, anyway?)? Could the users still get the right result? Would the customers still receive the right information?

No one was saying that the system should have defects. We merely decided that some defects could be lived with in the short term, in the context of a system that must be delivered in working condition as soon as possible. We could (and would!) fix all defects over time. All we did was prioritize the defects that must be fixed now over those that could be fixed later.

And, if the users don’t notice, and the end customers don’t notice, and the system is fit for purpose, then who’s to tell whether it’s a rhinestone or a diamond? After all, rhinestones look just the same as diamonds... but they cost a lot less.

Don't forget to leave your comments below.


Simon is a Business Analyst with about 5 years' direct experience in the BA field, but he's a spent a lifetime gathering insights in careers as diverse as accounting and pizza delivery - and even acting! He's worked in both waterfall and Agile environments (and prefers Agile!), in large corporates as well as small businesses. He's always had the writing bug, too!

Read 1687 times Last modified on Monday, 02 April 2012 16:10

Latest from Simon Papson

Comments  

 
0 # Cecilie Hoffman 2011-12-06 07:35
Simon, project managers around the world are going to be sending their developers, BAs and testers a link to your article. What impresses me the most is that you were willing to change your perception of what "a good job" is and understand/acce pt that value is in the mind of the user. Well written, well done.
Reply | Reply with quote | Quote
 
 
0 # Chris S 2011-12-06 08:21
Simon, bang-on here, great to see this commentary in print. We all are artists, but have to work within commercial bounds. If I were to add anything, it's my own specialty, spelling. I'm a literate and careful person, but if someone makes a spelling mistake in a document or a web-form, I have to ask the question, 'What will be gained by fixing that?" Most times, nothing. Not worth losing a day of productivity over. My vision of perfection may not be everyone else's.
Reply | Reply with quote | Quote
 
 
0 # Countman 2011-12-07 05:37
Isn't ironic that sometimes you have to slow down to make more progress? Good illustration of how to deal with a flood of demand, especially self-generated!
Reply | Reply with quote | Quote
 
 
0 # Tirumala 2011-12-07 06:22
Fantastic article. I also play the role of a Business Analyst cum Tester and have been in your shoes. In one of my earlier projects, I tried testing the application to death and having every defect fixed with very willing developers. In my defense, it was a cool new tool that was going to make life for the business users SO easy...I just had to make sure it was perfect :) Thankfully, the cycle was short lived, I pulled my head out of the weeds in time to realize the impact this was having on the project schedule and applied the golden concept of 'prioritization '. We delivered a functional, user-friendly application that had low priority defects which were addressed in a future release just for 'fix ups'. Good learning experience though, it's kept me in check since then.
Reply | Reply with quote | Quote
 
 
0 # Robert P 2011-12-10 22:19
Good insight! I've worked with perfectionists and the gunslingers, and as you've illustrated it is possible to dial back the perfectionist and increase productivity. If only it was as easy to have the gunslinger increase quality without being the obnoxious "what do you know about development" BA. The biggest long-term challenge with the approach you describe (prioritization of bugs) is, I have found, keeping the focus of the business on debugging and improving the software over time. Once all the features are delivered the desire to clean it up diminishes. So many companies let their software obsolesce, and lots of low-priorty bugs seems to speed that obsolescence along.
Reply | Reply with quote | Quote
 
 
0 # Brit 2011-12-29 04:25
"All we did was prioritize the defects that must be fixed now over those that could be fixed later." Unfort unately I have found, that those "fixed later" defects tend to never get fixed. Companies are always chasing the next dollar, and never seem to have time to fix what they already have as long as there are 'work arounds'.
Reply | Reply with quote | Quote
 

Add comment