Tracking complexity debt

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

Un-monitored, the complexity of a code-base increases with its size. Jboss and Struts are perfect examples. However monitoring complexity helps you keep complexity debt under control, or even down to zero. If you publish the last couple of years worth of releases of your project to a Structure101 repository, you’ll probably see something like this… Read more »

Manage complexity like debt

Posted by & filed under Complexity, Structure, Structure101.

Ben Hosking writes in Managing Complexity – The aim of Designing Code that: “The most important part of design is managing complexity“ I like the simplicity of that. What happens if you don’t manage complexity. Well, it starts to cost. Talking at OOPSLA 2004, Ward Cunningham (Mr. Wiki) compared complexity with debt: “Manage complexity like… Read more »

CAT-scan a code-base

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

Structure101 v2 goes beta today. With it you can walk through the code-base in slices from the class-level, to the package-level and up through the design levels, spotting tangles and seeing how far they have spread. This is a snag of the Slice perspective with the slice selector highlighted: You can now see dependency graphs… Read more »

Saving Software Structure

Posted by & filed under Structure101.

Headway’s soon-to-be-announced, new release of Structure101 has one basic additional capability – it let’s you regularly “publish” (“save” to you and me) the structure of one or more projects in a central location (called a “repository”). Not such a Big Deal you might think, but it spins off a surprising number of ways to get… Read more »

Too many dependencies to manage?

Posted by & filed under Dependency Management, Structure101.

Kirk Knoernschild (who has created an interesting utility called JarAnalyzer that identifies dependencies among jar files) questioned how it could be possible to manage all the dependencies at lower-than-jar (like package) levels – aren’t there just too many dependencies?  Nah… All dependencies, at any level, roll up from specific lines of code. And yes, if… Read more »

Complexity metrics

Posted by & filed under Structure101.

Quite a number of reVeiw users have asked why Structure101 does not include all those complexity metrics that used to be in reView. These included the CK object-oriented metrics among others. The answer is quite simple – Other than a few die-hard metrics nuts, most developers found the sheer volume of numbers more baffling than… Read more »

Comparing and Tracking Structure

Posted by & filed under Structure101.

We‘ve just opened up a repository of Structure101 data to web access.  The repository contains structural data on some open source projects at points in time and the associated Structure101 Tracker web app lets you compare the amount of excessive structural complexity (XS) accross the projects, charts how it has changed over time, and then… Read more »