Scattered Bits

Recent Posts

Recent Comments





    Food for Thought

    Legacy Management and Legacy Code

    Posted on July 29th, 2017.

    I just left a meeting where I said some disillusioned things about management’s lack of interest and drive to understand their part in agile development. Why don’t we treat legacy management like we treat legacy code? Legacy code is considered legacy partly because we know it won’t come cheap to change it even if we wanted to. Instead we...


    Software Development

    Introducing Scaffolding Tests

    Posted on December 1st, 2016.

    One way to start coding when doing outside-in TDD is with a more or less system wide test that surrounds quite a bit of yet-to-be written code. For your basic web app it might be a test that calls a method in some kind of web controller class and asserts that that call results in a specific value being written to a database from a...


    Tips and Tricks

    Orchestration is also a responsibility

    Posted on March 31st, 2016.

    The short version Whenever you want to accomplish both task 1 and task 2, don’t end up with a class that does task 1 and then uses a collaborator class to do task 2. Instead, use one class to do the the orchestration of two collaborator classes, one for each task. The longer version Some things are hard to test. Sometimes this is...


    Getting Things Straight

    The Anemic Domain Model and Functional Programming

    Posted on February 29th, 2016.

    As I fascinated wander about in functional programming-land, one of the things that strike me the most is the clear separation of data and functions, the same thing that in the country of object orientation is called the anemic domain model anti-pattern.  How come that a practice that in the OO community is very much frown upon, is...


    Food for Thought

    An Explicit Meta Solution Domain

    Posted on February 16th, 2016.

    When writing code, we try to implement a model of a certain real life domain. In a basic OO approach, we let nouns from this problem domain give name to our classes, while verbs give names to the classes’ methods. Our code is the solution domain. In addition to the problem domain and the solution domain I like to think that we actually...