In an ever-increasing world of technology, how do we know the products that are being delivered are driven by quality? As we move towards metrics-based solutions to understand the quality of our applications, how do we know that the measurements are accurate? As Six Sigma and Lean Thinking migrate from manufacturing to services, what benefits to quality are assured? Or suppose we adopt Agile Methodologies, how can we use this new guidepost to build better, faster, cheaper applications?
Is it reduced defect count, more lines of code, an elegant solution, or maybe all three in combination that provides quality?
Taken from an analogy by a much smarter gentleman than I, assume that we have a world without quality. This world would be a bland, non-descript, boring life in which we would simply survive. Rice and perhaps corn or potatoes would be the only food products available. In IT terms, ‘hello, world’ would be the only program that existed.
So…from that vantage point, every application has some quality, but how do we know if it’s enough?
My solution is simple. Let’s redefine quality and see where that takes us. Let’s rename quality as care.
Now, we’ve taken down a turn that moves us from the hard corporate measurement culture to one more personal. Can we reconcile the two? I hope so; otherwise technology for technologies sake may get the best of us. Let me explain with two truths of quality.
- Quality is the interaction between subject and object. In the case of IT, it is the creation of a line of code, database table, or screen design.
- Quality is nearly always understood and gauged at first glance.
Next, we need to learn to generate care in our team. As we move to this new definition, it moves us closer to romantic than classic terminology. This illustrates part of the struggle between the developer (romantic personality type) and tester (classic). To generate care, three key items are essential:
- Pick the right people
This, as many others have argued, is the key step to creating care in your organization. Key questions can easily differentiate those that truly care about their work versus those that got into IT for a quick buck. What types of journals do you read after work? What did you enjoy in your previous job/college? You’re looking for motivation and ability. If they have both, then you’ve picked a superstar. Always ensure that your best programmer gives them the thumbs up and that they excelled in something pre-career at your organization.
- Prime them
Once they’re in the door, it gets easier. Now it’s time for you (PM) to engage them fully. Remove roadblocks (the DBA won’t listen to my tuning suggestions…), listen, and most of all stimulate them through empowerment. If a developer doesn’t feel a sense of ownership, it’s game over and you may as well move to a new career, because you’ve failed. This stimulation should be transparent to the developer. As another stellar writer said, use psychology to keep their motivation alive. This requires keeping a positive attitude and outlook. Primer words will always create positive subliminal outcomes for the team. If you can’t do this, perhaps it’s time to move on…
- Maintain their identity
After they’re in the door and primed, it’s a maintenance process that is required. This next step will move the developer into a lead. Never be afraid that your position will be lost by hiring and maintaining the best staff possible. Remember, once you’ve worked yourself out of a job, the next position will be waiting for you. If you feel uncomfortable in this role, then go straight to jail and do not collect $200.00.
We’ve gotten a bit off track of the quality issue, but we should delve into why developers are so difficult to gauge by ‘scientific’ measurements. The quality developer will never feel that his code has bugs, but we all know that defect-free code is impossible. The quality tester will always know that he can find a bug in any program. So, how do we ensure a quality project? The answer is simple if you have quality on both sides of the fence. I know what you’re thinking, this won’t happen in my organization, there’s only so many good people to be hired, my hands are tied because the organization requires me to off-shore testing, my boss won’t fire the lackadaisical programmer on the team…. STOP. If the ‘bad’ people are already in the door, then your job just got more difficult. Remember, everyone wants to do a good job; you just have to find out what that is.
Ok, so how do we measure then? The answer is that it doesn’t matter. Hire, nurture and maintain care on your team and the customer will find it. If you think I’m full of it, then look at your team closely to determine whether they care. If they don’t, then fix it. If they do and you still aren’t providing quality, then let me know because it will be the first…
So…given that it’s difficult to measure the quality of an application, except by feel, how can we ensure that future applications will generate a similar amount of quality? It’s actually fairly simple. Maintain, maintain, maintain. Ensuring that your team will continue to care about the team is not a given. You must continually reinforce their belief structure. Not an easy task and one that is worth a view into later.
We’ve looked into how to hire, generate and nurture care, but how do I know if it’s gone? Lots of words could describe it. Carelessness, lack of attention, boredness, lack of motivation…. But, most of all would be contempt. Success breeds success, but always be on the watch for contempt. A simple word with a powerful effect that can kill your team.
No comments:
Post a Comment