Kent Beck on incremental degradation (“defactoring”) as a design tool

Thanks to @AdamWhittingham for pointing out a great post from Kent Beck in which he suggests an “if you can’t make it better, make it worse” approach to incremental development. This is a habit that has been a part of my development process for a long while, and I have needed to explain it to …

Continue reading ‘Kent Beck on incremental degradation (“defactoring”) as a design tool’ »

TDD and Test-Driven Refactoring

This is a neat observation. One equivalent to test-Driven Development (TDD) when working with an existing codebase might be “test-driven refactoring”. The idea seems to be that at any particular point in the lifecycle of a software system not all of the benefits of TDD are actually being used. So why not just do enough …

Continue reading ‘TDD and Test-Driven Refactoring’ »

If you use an ‘if’ you deserve to suffer

How’s this for an extreme opinion: If you use an ‘if’ you deserve to suffer at Mark Needham I actually agree with some of his conclusions, although I am surprised that he does not suggest the simple approach of extracting a method to eliminate the potential confusion of multiple statements depending on an “if”. For …

Continue reading ‘If you use an ‘if’ you deserve to suffer’ »

Are static or dynamic languages more maintainable?

So the question is: are dynamic-typed languages (ruby, python, smalltalk, etc.) easier or harder to maintain than static-typed languages (Java, C#, etc.)? It seems there are arguments both ways. On the one hand, dynamic languages tend to be a bit more concise, and reducing code size is a great way to simplify maintenance. On the …

Continue reading ‘Are static or dynamic languages more maintainable?’ »

Resetting the ‘Shitty’ Counter

I found this a surprisingly thought-provoking piece. In my day job I have been continually facing the tension between reworking and rewriting for months. The proposal to rewrite a whole core application is so tempting, and yet my experience of such rewrites is that they very rarely end up with the promised (oversold?) benefits. Part …

Continue reading ‘Resetting the ‘Shitty’ Counter’ »

Private Method Anti(?)-Pattern

I’m not sure I agree with much of this, but it is an interesting summary of the views in favour of private methods. My main problem with the points as expressed in this article is the circular or self-referential nature of the arguments. For example, the author states: Breaking up a public method that consists …

Continue reading ‘Private Method Anti(?)-Pattern’ »