Thought I would share with you a growing concern that keeps gnawing at our heels as an industry, the software development industry that is and it’s Quality! (Yes, I talk alot about this, for good reason)
Everytime we start a new development effort or work with clients to build software based solutions it seems that it always comes down to the amount of money it costs to develop. Not only do we talk about how much it will cost, but rather how low can we go to build this piece of software and this is where we fail as an industry or should I say “so called” Professionals. Ultimately, there is no room for argument about what needs to be done in order for organizations to get working software. It drives me nuts that we have to justify our actions in order to achieve best results. We have, for a long time, focused mostly on cost and time. I have been in too many discussions where we expose an issue and are given a ridiculous timetable because the business takes responsability for a feature/function. You should know, if you don’t already, that pressure only drives quality down. This behaviour seems to be part of the very fabric of our being, a natural response to a stimuli that pushes us to get results, but bad ones. This is at the heart of my responsability, a Scrum Master’s responsability to make sure that all parties are aware of the risks, behaviour and patterns that feed this perpetual wheel of Crap. It would seem that alot of people see software as a giant rug where various elements can be simply swept under and forgotten. People will argue, but what defines Quality, well according to business dictionary:
In manufacturing, a measure of excellence or a state of being free from defects, deficiencies, and significant variations, brought about by the strict and consistent adherence to measurable and verifiable standards to achieve uniformity of output that satisfies specific customer or user requirements. ISO 8402-1986 standarddefines quality as “the totality of features and characteristics of a product or service that bears its ability to satisfy stated or implied needs.”
In other words, Quality is obtained by a fully functionnal feature which in turn gives you (the organization) maximum business value. The point is, Quality is not driven by cost, rather it is the practices utilized in the process. As a profession we recognize certain practices which need to be in place in order to minimize defects, these practices happen to have a cost which should be established as the minimum effort required. Lastly, if you intend on building something and your starting point of view is that Quality is too expensive, why are you building it in the first place. One more thing, Quality is not a coefficient of a function, if you don’t have the appropriate practices you will surely paint yourself in a corner and a single breaking element could mean the feature is used or not at all. If the feature does not provide the intended purpose value is not attained, period. As a development team you should provide a clear message, 100% visibility, with a strong “Definition of Done” and drive it home. Anything less than these will result in loss of Quality and introduce Debt elements or/and more likely, unknown variables.
Sustainability and maintainability is key to any software and is at the heart of Quality practices in software. Never forget that software cost does not end with simply the development phase.
Thank you all,