Posts Tagged ‘quality’

« Older Posts   

Slow is Smooth and Smooth is Fast

I recently saw an email from a colleague who mentioned that they did not have time to properly resolve a technical issue because they needed to hurry to get their code ready for testing. At the time, I was reading Stephen Hunter’s novel The 47th Samurai about an U.S. sniper. One of the themes within […]

The Role of Quality Assurance

My understanding of the role of QA (quality assurance) in software development has evolved considerably over the course of my career. At first I was unaware of their existence, coding in blissful ignorance. My first interactions with testers who found embarrassing defects in my code gave me the idea that QA was about testing. This […]

Questioning Testing

A fictional dialogue is presented below to explore and question the traditional role of the I.T. quality assurance department. The characters are: Bess: Manager of a line of business. Asa: Manager of the I.T. quality assurance (QA) department. The scenario is that Bess has asked I.T. to provide some software to monitor and drive improvements […]

Architects Anonymous

As an architect observing and helping multiple teams build and maintain enterprise software, sometimes I think I am living in an alternate reality. I see systems fail on a nearly daily basis, teams under intense schedule pressure, a lack of awareness of basic developer quality practices, repeated failures of communication, servers taking weeks to provision, […]

The Cost of Poor Quality

Given my interest (some say obsession :) with producing high quality software, I am always on the lookout for stories highlighting the need for quality. So I was intrigued to hear a few weeks ago that the U.S. global financial services firm Knight Capital Group that lost over $440 million dollars in under one hour […]

Applying Medical Near Misses to I.T.

I forget from which source I first heard about the term “near miss” in health care, but I found the concept intriguing. A near miss is a problem with the safe delivery of care that did not actually affect the patient. Here is an example: a pharmacist in a hospital misreads the doctor’s diagnosis and […]

Inattentional Blindness

The human visual / perceptual system works less well than we think it does. We believe that we observe everything in our field of vision, but in reality our limited processing power means that we only really process and thus see what we are paying attention to. We become blind to everything else. This phenomenon […]

Defects – To Fix or Not to Fix

To fix defects or not fix defects, that is the question: whether it is better to suffer the complaints of outraged users, or to divert effort to investigate and eliminate them. Shakespeare quotes aside, every software development project has to make decisions on how many defects to fix and which ones to leave alone prior […]

Software Documentation Templates

I am a believer in minimizing software documentation that lives outside the code. This does not, however, mean no documentation. There are a number of reasons why documentation can be useful, especially for larger organizations: Documentation is more effective than code at communicating high-level or cross-cutting design and operational concerns. Larger organizations or distributed organizations […]

Top Seven Quality Principles in Software Development

How do you ensure high quality when developing software? The processes that are used, the decisions that are made, and the actions that are taken must be aligned with proven quality principles. In this context I define a principle to be a fundamental truth that is the foundation for a system of behavior. Too often […]

How Should You Feel About Defects

I have recently observed myself and others having a variety of reactions when defects are found ranging between the extremes of elation and despair. How should we feel when defects are discovered? Should this vary by role? Role-Based Attitudes I will first answer this question on a role by role basis, starting with the role […]

When is Testing Done?

I have been asked several times recently about the question of when testing can be considered ‘done’ for a piece of software? A related form of this question is to ask when one should stop testing. This applies to both developers and testers for any type of testing ranging from writing automated unit tests to […]

Predicting and Evaluating Defect Levels

Is it possible to predict how many defects will be encountered in acceptance test or production? What number of defects would be considered reasonable versus signs of low or high quality? These are questions I considered when my last project entered acceptance test. At the time I had no good answers. So over the past […]

Reviewing Automated Test Code

Software engineering research and my own experience have taught me the value of code reviews and automated tests, especially automated unit tests written using test-driven development (TDD). In the past my general pattern when doing code reviews has generally been to focus on production code and do a more minimalistic review of the unit test […]

Filter by Failure Mode Matrix: A Method for Planning Quality

For any software development effort a core component of planning how to achieve high quality is the selection of the quality-enhancing activities and practices that will be performed to assess the software. This selection depends on a number of factors including the capabilities of the team, the characteristics, complexity and criticality of the software, the […]

Who is Responsible for Quality?

I had a manager a short while ago ask me who was responsible for quality within their organization, within the context of software development projects. Without having to think about it, I knew the answer. It was intuitively obvious, but it was an intuition fueled by reading hundreds if not thousands of pages about lean […]

Defect Prevention Practices

I have written numerous times about defect elimination practices such as code reviews, unit testing, and static code analysis tools. From the perspective of lean thinking, however, eliminating defects, no matter how soon after they are introduced, results in waste due to rework to fix the defects. The ideal as far as lean is concerned […]

Why Coding is not Enough

If the goal of software development is to produce working software then developers need to know more than just how to code – they need to know how to prevent or eliminate functional and non-functional defects. Too many developers think their job is complete once a feature has been coded. Sometimes they think that it […]

Would You Trust Your Life To Your Code?

Would you trust your life to your code? It is a simple question that you might find extreme. But is it really? You might argue that the answer to this question depends on the criticality of the software you are producing. Software like the control software for the space shuttle or software to control medical […]

How to Always Get Better: A Framework for Continuous Improvement

If you believe like I do that organizations must develop a culture of continuous improvement in order to flourish, then the question is how to achieve this. Throughout my career and especially in the last few years I have promoted effective software development practices and a philosophy of learning and growing as a professional. I […]

« Older Posts