Skip to content

Posts from the ‘Development’ Category


Enhancing Software Testability

Keeping your customers happy depends a lot on your team’s ability to deliver (and sustain) a high-quality product.  And to ensure high quality, you must effectively validate your software artifacts against the functional (and non-functional) requirements of your system.  In many of my classes, I often talk about testability being an essential quality of good software.  But what exactly do we mean by “testability”? Read more


Why Bother With TDD?

Does it really make sense to test code that hasn’t even been written yet?  Or to disrupt your development mojo every minute to stop, write tests, and refactor code?  It does if you want to deliver software faster, through better code, with fewer defects, and greater agility.  As software development leaders, it is important to understand that Test Driven Development goes well beyond quality control. Read more »


Agility with OCP

Decreasing time to market is often why many teams adopt Agile. But realizing this value requires discipline in development processes, as well as in development techniques. In order to release small, incremental pieces of functionality often, your software must be easily extensible. Following the Open/Closed Principle (OCP) is one of the best ways to ensure that you can easily and quickly extend your software Read more »


Planning for Failure

Quality software is built around the expectation of failure. To deliver reliable software, you must always plan on things breaking. In designing and building software for critical systems, such as air traffic control or nuclear power plants, runtime reliability is absolutely critical. And while human life may not hang in the balance of a business application, the life of the business may. Read more »