The Cardboard Architect (#2 in a series)


Photo Apr 01, 3 34 00 PM

The architect has just discovered an unexpected change to an integral design you did not discuss with him and will now require six weeks of work to repair.

Keep in mind: these are all real expressions, captured just moments after the event described. In this case, two competing implementations of functionality were produced to handle two distinct and only accidentally related business cases. The original goal was for the more flexible set, which mirrors other configuration in the system and can be deployed in real-time, to become the standard and for a basic set implemented in compiled Java classes to be replaced. Once the pair had run concurrently in production for long enough, it would clear the need for the second business case, so it didn’t matter that it wasn’t flexible. However, I was shocked to discover developers pursuing customer on-boarding automation had replaced all the carefully constructed logic in the flexible configuration files — with hard links to the java classes!

Through the benefit of hindsight and about 3 fingers of Albany Distilling Company’s Coal Yard Rye, I realized why this had happened: the java configuration, by virtue of a simple set of static requirements, had a really straightforward API and beautiful, self documenting implementations. The flexible configuration, which reused a complex, non-intuitive DSL and implementation from an earlier project, looked a mess. And while the automaton didn’t care about the legibility of its output, the clean and concise java classes had much higher appeal to its developer.

It’s flattering, really. When it isn’t maddening. And hey, maybe we’ll buy back those six weeks with the tool!

The Cardboard Architect (#1 in a Series)


Photo Feb 22, 1 51 57 PM

The architect is not impressed by your proposed solution, and is trying not to downgrade his assessment of your skill level.

The “cardboard architect” is an exercise wherein you present an idea out loud to an inanimate object and in the telling are both practicing and honing the argument. It is, frankly, a silly idea that nobody practices more than once or twice, sheepishly. However, as I am generally known for wearing my design opinions on my sleeve, not to mention all over my face, I thought it’d be fun to put together a set of stock facial expressions for common software scenarios that might be encountered in an actual design review.

Collect ’em all!