Archive

Archive for March, 2013

It’s Systems As Such

March 10, 2013 1 comment

BD00 is tickled pink to have discovered the work of systems guru John Gall through Ruth Malan and thinkpurpose (muchos gracias Ruth and TP!). Behold the wisdom of the man:

Galls Laws

If you’re an anointed leader (a.k.a dictator) and/or so-called change agent, you better freakin’ paste these galling truisms on your wall and consult them before designing your next system or mandating a change “from above” to an existing system. Actually, fuggedaboud it. It doesn’t matter. You’re hosed no matter what; even if you think you aint.

The problem isn’t THE system, it’s systems as such – John Gall

Categories: technical Tags: ,

Never Woulda Thunk It

March 9, 2013 7 comments

Look at what popped up on my blog dashboard yesterday…

WP Anniversary

Sheesh, I never woulda thunk it!

Categories: miscellaneous Tags: , ,

LSD… Far Out Man

Alright, before we go on, let’s first get something out of the way so that we can start from the same context. This post is not about Small Scale Development (SSD) projects. As the following figure shows, on SDD projects one can successfully write code directly from a list of requirements (with some iterative back-and-forth of course) or set of use cases or (hopefully not) both.

SSD

Now that we’ve gotten that out of the way, let’s talk about the real subject of this post: Large Scale Development (LSD <- appropriate acronym, no?) projects. On hallucinogenic LSD efforts, one or possibly two additional activities are required to secure any chance at timely success. As the next figure shows, these two activities are “System Design” and “Software Design“.

rdds

So, what’s the difference between “system design” and “software design“? Well, if you’re developing software-intensive products for a specialized business domain (e.g. avionics, radar, sonar, medical, taxes), then you’re gonna need domain experts to bridge the GOHI (Gulf Of Human Intellect) between the higher level requirements and the lower level software design…..

rddsMost specialized domain experts don’t know enough about general software design (object-oriented, structured, functional) and most software experts don’t know enough about domain-specific design to allow for successfully skipping the system design phase/stage. But that hasn’t stopped orgs from doing this….

missingd

Just Like Tim

March 5, 2013 3 comments

I’m intellectually lazy. I’m a fan of empiricism; it’s just a drag to have to practice. If you’re anything like me, you don’t make up your mind about important issues by doing original research, poring over primary sources and coming to your own conclusions; you listen to people who claim to know what they’re talking about—“experts”—and try to determine which of them is more credible. You do your best to gauge who’s authentically well-informed and unbiased, who has an agenda and what it is—who’s a corporate flack, a partisan hack, or a wacko. – Tim Kreider (We Learn Nothing).

Who amongst us is not like Tim? Thanks to the web, even though accessibility to primary sources and original research is at unprecedentedly high levels, there’s just not enough time to perform “due diligence” in order to form (so-called) objective opinions on issues that tug at our souls. Whether we admit it or not, we all use a form of the BD00 bozometer, which is reproduced below for your viewing displeasure.

bozometer

If you’re a regular reader of this blawg, then you’ve probably pegged BD00 as “Is A Bozo” – and you’re right!

The Gall Of That Man!

March 2, 2013 5 comments

A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system. – John Gall (1975, p.71)

This law is essentially an argument in favour of underspecification: it can be used to explain the success of systems like the World Wide Web and Blogosphere, which grew from simple to complex systems incrementally, and the failure of systems like CORBA, which began with complex specifications.  – Wikipedia

We can add the Strategic Defense Initiative (Star Wars), the FBI’s Virtual Case File System (VCS) JTRS, FCS, and prolly a boatload of other high falutin’ defense projects to the list of wreckage triggered by violations of Gall’s law. Do you have any other majestic violations you’d like to share? Can you cite any counter-examples that attempt to refute the law….

One of the great tragedies of life is the murder of a beautiful theory by a gang of brutal facts – Benjamin Franklin

C++, which started out simply as “C With Classes“, is a successful complex “system“. Java, which started out as a simple and pure object-oriented system, has evolved into a successful complex system that now includes a mix of functional and generic programming features. Linux, which started out as a simple college operating system project, has evolved into a monstrously successful complex system. DDS, which started out as a convergence of two similar, field-tested, pub-sub messaging implementations from Thales Inc. and RTI Inc., has evolved into a successful complex system (in spite of being backed by the OMG). Do you have any other law abiding citizens you’d like to share?

Gall’s law sounds like a, or thee, platform for Fred Brooks“plan to throw one away” admonition and Grady Booch‘s “evolution through a series of stable intermediate forms” advice.

Here are two questions to ponder: Is your org in the process of trying to define/develop a grand system design from scratch? Scanning your project portfolio, can you definitively know if you’re about to, or currently are, attempting a frontal assault on Gall’s galling law – and would it matter if you did know?

Gall Gig