A little Scalaz magic

Here are a few useful things you can do easily with Scalaz to make you code a little simpler.
[...]

Posted in Scala, Small Examples | 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

Scaladays 2010

I attended Scaladays 2010 at EPFL in Lausanne, Switzerland in April. at which Nigel Warren and I presented the work we had done on porting Fly’s Java client library to Scala. You can watch all the Scaladays videos on the Scaladays website and so I will not dwell on the talks, which were excellent. Instead, I want to talk about Scala and its community, led by Martin Ordersky.

[...]

Posted in Scala | Comments Off

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