Microsoft won't even hear
I have tried to send the following message to the CEOs of Microsoft and Microsoft UK. It has fallen on deaf ears.
I am astonished and deeply disturbed by Microsoft's current development and maintenance policies.
Software Development is an Engineering Discipline. Yes, Creativity and Design are vital components, but Quality Assurance is every bit as vital. I believe that Microsoft must have enough employees who recognise this but regrettably they are not being heard, and the risks of dispensing with QA are terrifying.
The attractive prospect of rapid development has left Microsoft blind to the limitations of continuous delivery and DevOps. DevOps is very good at producing working prototypes and demonstrations, but it encourages development teams to evolve requirements as a project proceeds. Those requirements therefore tend to match what has been developed and often do not include matters such as design limits, data protection, maintainability, and robustness in the face of user error and malicious attack. If a replacement product is being developed, poor specification can lead to features of the original products being forgotten and omitted or diminished. The inclusion of Quality Assurance in a DevOps team is a sound policy, but the approval of a product or a change must rest with a Quality Assurance function independent of the Design function.
The consequences of inadequate Quality Assurance can be seen in practice. For example, many Windows 10 programs are inferior to their predecessors, new features are added while long-standing errors remain, programs fail without explanation or helpful error messages, updates are delivered that damage user settings and preferences, and insufficient validation of user input takes place. Community websites show huge numbers of dissatisfied users and a lack of support staff in Microsoft able to diagnose faults, let alone fix them. The advice, frequently offered, that a dissatisfied user should reinstall a product is not a solution -- it is an admission of defeat and product unreliability.
Quality Management requires careful and precise specifications and robust test and measurement of prospective products and changes against them. It is as important in a software product as in a tangible product such as an aircraft, a car, a building or a bridge. It cannot be delegated to users. The QA team must have the capability to say "not fit" or "not ready" to the Chief Executive Officer regardless of marketing demands
To diminish the Quality Assurance role in software development is dangerous to a development enterprise and to its user community. But there is enough evidence in Windows 10 of such a diminishing role to make me fear that Microsoft could be brought to ruin by unmanageable maintenance costs and lawsuits, and that the world's economy would be severely damaged as a result.
The remedy? Put a properly constituted QA function in place. Allow it to require and look for reliability requirements in the design specification, to test against them, and block the work and release of new versions until all errors in all current versions have been corrected. Microsoft will recover its tarnished reputation if it does this, but will be cursed as a modern-day unreliable rust-box if it doesn't.