Quality

Type Names From An Earlier Age

How would this be done in an earlier age?

This is the question I frequently ask myself when searching for the names of domain concepts.

The typical architectures and layering of code in ‘the enterprise’ frequently exhibit poor systems of naming which causes developers to jump through hoops to try to maintain the layers because of lack of abstraction. This in turn results in an unwieldy codebase that is more concerned with accidental implementation complexity than codifying domain knowledge.

[...]

Posted in Quality, Software Process | 1 Comment

Writing Maintainable Acceptance Tests

Over the past six months or so, there has been a fair amount of negative commentary about automated acceptance / integration / system testing. The thrust of this commentary is that testing at this level tends to be brittle, slow and have a high maintenance overhead. None of this needs to be true, but producing a robust suite of tests requires an uncommon adherence to good practice.

[...]

Posted in Quality, Software Process | 3 Comments

Large Systems

Many times over the years we have encountered an attitude towards code cleanliness that is summed up in the assertion that as systems grow in size, code quality will necessarily degrade. Often the argument is backed by references to ‘programming in the large’ as opposed to ‘programming in the small’. We have consistently found these assertions to be unfounded and this article is an attempt to explain why.

[...]

Posted in Quality, Software Process | Comments Off

Producing Systems that Do Not Rot

I was driven to write this article after reading Kirk Knoernschild’s blog about Rotting Design and felt I needed to say something.

[...]

Posted in Quality, Software Process | 3 Comments

Software Quality – Pragmatics

This article continues my series on Software Quality. My thesis is that we judge quality using the same inbuilt sense of aesthetics as we would a work of art or an everyday object, albeit at quite a high level of abstraction.

[...]

Posted in Quality, Software Process | Comments Off

TDD from a Control Theory Point of View

This is another way of looking at how Test Driven Development (TDD) helps us build better software. [...]

Posted in Quality, Software Process | 2 Comments

Demand Quality: You Get What You Ask For

“In the long run, men hit only what they aim at. Therefore, though they should fail immediately, they had better aim at something high.”  – Henry David Thoreau

[...]

Posted in Quality, Software Process | Comments Off

Software Quality – Syntactics

“If you have built castles in the air, your work need not be lost; that is where they should be. Now put foundations under them”. Henry David Thoreau

This third article about Software Quality is concerned with syntactics, by which I mean the syntax of collaborating components and systems, and the people that use them.

[...]

Posted in Quality | Comments Off

Software Quality – Semantics

This article,the second of a series of articles discussing Software Quality, is concerned with semantics and its importance in building maintainable, extensible and robust software systems.

[...]

Posted in Quality | Comments Off

Software Quality

Walk into a room of software developers and invariably the conversation will turn to the dreadful quality of code in their workplace or the industry as a whole. They will speak very passionately about such details as Test Driven Development, loose coupling, inversion of control. Or how much better things would be if they could use languages like Ruby/Scala/Clojure/Lisp/Haskell (if they talk about Haskell then hire them).

But the production of high quality software is much deeper than simply following a set of rules such as ‘write small methods’. So what does Quality mean  and how does it apply to software?

[...]

Posted in Quality | 2 Comments