Author Archives: lance

TDD Regex Kata

For the past couple of years, we have been using an exercise in various of the training courses we lead, the purpose of which is to show that maintaining too narrow a view during TDD can lead to a very degenerate process and results.
[...]

Posted in Uncategorized | 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

Rank, Authority and Power

One of the characteristics of many teams that Casual Miracles has helped over the past few years is that team members have felt a lack of authority to make changes that are necessary to achieve success. Frequently this occurs despite senior management telling them that they can make the changes they want to.

[...]

Posted in Uncategorized | 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

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

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

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

This Business of Analysis – Domain Knowledge

Many people involved in software development understand their business domain – i.e. they have business or domain knowledge. This is, for the most part, a good thing, for it means that they can have reasonable confidence that they share syntax and semantics with other stakeholders.

However, there are two common issues related to domain knowledge that bear some discussion. The first is the assumption that if we have sufficient domain knowledge, then we understand the problem. The second is a failure to recognise that in almost every significant software development effort, there is more than one domain that needs to be understood.
[...]

Posted in Software Process | Comments Off