Fear the Ubergeek

Posted by & filed under Structure.

Ubergeek is a strange and wonderful creature. He possesses supernatural powers for retaining vast swathes of detail in his head at one time. This makes him designed for coding, a priceless gem when you need to get version 1 of a new project out the door ASAP. He is the 10x productivity guy of programming… Read more »

The value of codebase structure

Posted by & filed under Architecture, Structure.

Most experienced engineers would accept that there are attributes of a code base under the heading of “structure” or “architecture”, that make a substantial difference to the ease of development. However, since there is some cost to improving these attributes, I do get rightly asked asked for data that quantifies the benefit, usually from higher… Read more »

Introducing Levelized Structure Maps (LSM)

Posted by & filed under News, Restructure101, Structure, Visualization.

Levelized Structure Maps (LSM) are a new, intuitive way to visualize and manipulate software systems. Using LSM, large-scale refactoring to remove dependency tangles and other over-complexity, becomes second nature. LSM are the core of Restructure101. Items in the LSM are levelized into rows, or levels, so that every item depends on at least one item on… Read more »

Holarchy 101

Posted by & filed under Structure.

Herbert Simon’s parable of the watchmakers was constructed to convey his belief that complex systems will evolve from simple systems much more rapidly if there are stable intermediate forms present in that evolutionary process than if they are not present. Arthur Koestler built on this in his 1967 book “The Ghost in the Machine“, in… Read more »

The parable of the two watchmakers

Posted by & filed under Structure.

The parable of the two watchmakers was introduced by Nobel Prize winner Herbert Simon to describe the complex relationship of subsystems and their larger wholes. There once were two watchmakers, named Hora and Tempus, who made very fine watches. The phones in their workshops rang frequently and new customers were constantly calling them. However, Hora… Read more »

Beautiful Structure

Posted by & filed under Structure.

In response to O’Reilly’s just-published Beautiful Code, Johnathan Edwards explains why he couldn’t go along with the premise. One sentence in his excellent piece stood out for me: “The human mind can not grasp the complexity of a moderately sized program, much less the monster systems we build today.” This is true, but only to… Read more »

Complexity Debt – don’t “fix it”, “keep a lid on it”

Posted by & filed under Complexity, Emergent Design, Structure, Structure101.

So you just discovered that your code-base has racked up a whole load of complexity debt. This  maybe explains why progress seems so painfully slow lately. You briefly think of suggesting a major complexity-reducing refactoring effort. This will delay the next release significantly, but foreshorten the time to the following releases. Plus a cleaner, simpler… Read more »

Spring 2’s architecture – A single dependency cycle slipped in

Posted by & filed under Architecture, Dependency Management, Emergent Design, Structure, Structure101.

The Spring guys have let a single dependency cycle into their architecture. A very small flaw, but it’s a perfect example of why you need to check your code-base at different levels to keep it truly tangle-free. I did a quick analysis of the Spring Framework some time back and sure enough found their claims… Read more »