As far as I can recall, one thing that always stuck with me is the OCD around doing things the right way. No matter what I did – could have played a game of cricket when I was a kid, my studies and needing to score a perfect 100, the time when I was fixing computer monitors, writing scripts in fox, writing code in Java/.Net and even now when I am defining architectures.
Morale compass pointing north around Quality means nothing if we do it at the root. If a developer, a lead, an architect and me decide to drop focus on quality at the first instance of delivery delays.
I won’t go back all the while, but I will cover what quality meant to me when I was a developer. While my quality compass is still pointing north, it has been a while since I have sat down and defined what I want to do by the time I deliver this project. Of course there are expectations like “Deliver on time”, “Deliver against scope/requirements”, and then there is that “Deliver as per quality”. Of these 3 the first 2 are fairly easy to measure and clients do it well. It’s the Quality one that has become that beast – and as I have transitioned to working in an industry when we have to deliver websites (.com) where the user base is just unknown the expectations that clients now have are very different from what they were in a behind the locked doors of “enterprise CRUD application”.
I have had The Quality Conversations several times in past but I wanted to do something different
Today in a few hours I walk in a room with 6 of my architects and talk about Quality. I know my vision of quality, but that means nothing if in a few weeks, we will make decisions to drop quality measures because we wont be able to meet the Go Live Deadline. That Vision means nothing if my team has different viewpoints of quality.
Quality meant, once my work is done it’s done.
As a developer
This goes back to the time when I was just coding and there was no team leading, no program management responsibilities on my shoulders:
- Quality used to mean to send a story to my QA track and knowing that they won’t find even a single defect;
- Quality used to mean that when I would get time, I can open the code and refactor knowing that my unit test cases will tell me what I broke as I improved my code for quality;
- Quality used to mean that when I will commit the code, and when CruiseControl fires up it will not break the build;
- Quality used to mean that when a colleagues opens my code to enhance with a functionality (s)he won’t have to come back to me asking questions; (s)he won’t have to refer to an external documentation to know what this code does
- Quality meant, once my work is done it’s done. There is nothing more that I had to do.
As an Architect
My goals mean nothing if the team I am working with don’t share the same goals.
I am asking myself – if those 5 simple rules that I followed 10 years back worked well for me – should they change?. Does my role today means I need to do anything else. Yes, I produce some design documents now, I write some code, I prepare presentations and yes I own all of quality including whatever my team produces, but why should those simple 5 rules change one bit.
We are as strong as the weakest link.
So the question is not really – what quality means for me, but what it means for those 50 people on my team. Do they want to meet these 5 goals or do they want to do something else. Yes, I will share what my goals are, but I also now need to know what their goals are. Then we have to make a journey and do it fast is to find the least common denominator and sign up for those (as a start). Next, we need to work together to find what herculean effort we have to fill those gaps.
My Goal today – Never spend a minute extra in office. Deliver on time, Deliver on scope and Deliver with Quality – something that makes everyone smile.
My bigger task is – make sure no one on my team is spending an extra minute in office.
So I continue to find the perfect formula. I haven’t seen that happen and the several articles and books I read tell me there is no secret recipe and I have almost all forces of nature working against me, yet it’s my task to make it happen for my team. Let’s see how it goes. Now start yet another journey to meet the almost impossible.
What does Quality Mean for me
We will see how this goes. But, for now the 5 rules for quality for me stand even today are:
- Deliver an artifact and make sure no one can find a defect;
- I can refactor the code knowing it won’t break anything;
- Code commits work like a charm and i can deliver code in environments quickly and with certainly;
- When I send this application to my dear friends in operation, they don’t hate and curse me;
- Once my work is done it’s done