Software Process

A Successful Delivery

Over the last few months, we’ve been working on delivering HSBC’s Clearing Connectivity Layer and OTC Cleared Trade Acceptance System. We went live early December, and in fact, we delivered our first release early.

[...]

Posted in Casual Miracles, Scala, Software Process | Comments Off

Burndown, Prediction, Confidence and Risk

One of Casual Miracles’ clients had a long running project with a big specification up front. This is not the mode in which we usually like to work. It is, however, an opportunity for an experiment with burndown charts.

[...]

Posted in Software Process | Comments Off

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

There Is Only One Codebase

Some Casual Miracles consultants have recently been helping teams in which the central, unrecognised problem was that there were multiple streams of development that operated on different timescales (i.e. release dates were uncoordinated) but which shared a common codebase.

[...]

Posted in Software Process | 1 Comment

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

Different Interpretations

As a retrospective facilitator I frequently see different parts of a team presenting different perceptions of the same event. In fact, this underlies a great many of the problems seen in teams.

[...]

Posted in Software Process | Comments Off