Decisionmaking and belief systems

OK, full disclosure; I am not an “Architect”. At least, I am not an architect who actually knows what architecture is. I know what real architects do, and I am not one of those. The other kind (“Software architect” or “IT architect”), I don’t have a clue what it is they actually do, or are supposed to do. So maybe I am one after all, no way to be sure. Which is fascinating, and has got me thinking lately. I think I know what it is they’re supposed to be doing. But, as it’s not an education, job description, or even an assignment that differentiates them from other roles of an IT project / organization, I really can’t claim to know what it is that defines them as a discernible entity, class, or species if you will. In other words, I would be at a loss if asked to define one, or even guess if a person (“A”) was one. I would be forced into a making a judgement call, a wild guess. More on that to follow.

Recently, I was invited in on a discussion on an “architectural” issue at my current place of employment. They (“the architects”) laid out a plan for a new architectural component that they would like to see implemented. Without going into much detail, the “architecture” proposed could actually be construed as a valid idea, when proposed on the only platform it will ever work on, “Powerpoint”. However, it went against almost all modern (and ancient for that matter), proved, and accepted principles of building sturdy and performing software systems. It involved building a central lump of software for “data management” services. It would create cohesive dependencies to and from every other inhouse system (except legacy or 3d party), it would represent a SPF (single point of … ah, you get it), it would be detrimental to performance in all those systems, and worst of all (dammit, I’m not even sure of that), it would effectively eradicate database integrity in all of the systems involved. Yes, that’s right. I am not making this up.

So, my initial thought was: “Wow, this governance thingy must represent a really, really, really high value to their business, since they are willing to compromise on such a grand, gigantic, majestic, no-expenses-spared scale on all other technical issues”.
But no. It doesn’t. After a somewhat heated exchange of opinions, many of which starting with “Oh yeah? Well your mother…”, I get the distinct impression they just “think it’s a good idea”.

And this is where I started off this impressively informative rant; There must be a huge difference in perspective here. And I am not just talking about the mundane “different jobs, different priorities” conflicts.

As an example, in the case  described, one of the goals is to get rid of the use of NULL values inside of each application domain. Doesn’t sound all that controversial? May even sound like a valid idea? OK, bear with me for a second; NO, it is NOT a good idea. Why? Because it is a defined value that by definition means “I don’t know this”. That is actually what it means. I know there are some would-be geniuses that will try and persuade you that NULL is evil. That is because they haven’t learned to appreciate the pure and simple concept of NULL. Granted, if you have unintended NULL pointers in your code, it’s annoying, and may seem like an “unnecessary evil”. But they get in there for the simple reason that you have done it wrong. You have put them there, and later failed to take that into account. But enough about that. Really. Seriously. Enough. Back to our example in question:

Developer: “OK, what do you suggest we put in there instead?”
Architect: “A predefined value that means “null”.
Developer: “OK, uhm, ok, erh, Why, really?”
Architect: “Because then we know it’s actually unknown, or value not supplied, or – something.” (OK, I added the bit about “something” myself, couldn’t resist it).
Developer: “So you want to get rid of this value that’s been given by definition, and replace it with something that needs a flimsy convention to make sense?”
Architect: “Yes! ” (happy, and almost seems impressed that developer got it so quickly).

And this, dear reader (nudge! Hello, still there, right?), is at the heart of my brand new hypothesis: Decisions are being made by people who have conflicting world views, and completely different systems of belief. Getting technical about the ‘null’ again for the last time (promise): A definition is in my mind a much less ambiguous ‘value’ than one defined by convention. If pressed on it, I will acknowledge the fact that it is doable to replace the defined null with a “convened null”. However, it is an expensive maneuver, and there are no good reasons to do it. Even worse, it will, by it’s  nature, introduce ambiguity in the system’s data models. The same goes for the discussion (from the same meeting) on database integrity. Yes, it is conceivable that you can make systems work without enforced referential integrity within their own domains, but there are no reasons to do so, and it will inevitably lead to yet more conventions and countermeasures, all of which will be prone to new problems and errors, and expensive to implement to boot.
It is blaringly obvious, isn’t it? Easy to grasp?
Yes, but apparently not. So, therefore, I came up with this theory that explains it all.

To be able to understand this decision process meltdown, we need to stipulate some objective parameters. Actually, one parameter will do for this (I never said it was rocket science, did I?): I call it “The accountability of supplied facts.” It is a one-dimensional table:

“I decide to do this, because I could base my decision on facts that are:”

  1. Objective, mathematical Proof
  2. Actual Definition
  3. Convention
  4. Standards-based (really just a convention that “someone else” agreed on)
  5. Things I choose to believe in
  6. Things I think are true
  7. Correspondent to my feelings
  8. Stuff I really wish could be true.

That’s the objective parameter out of the way, now we need to categorize people with regards to how they relate to “facts” in their respective categories. Like this:

Accountability of given facts Developer Architect
By Objective Proof 100 60
By Definition 100 70
By Convention 100 50
By standards 80 60
Choose to believe that 40 70
Think that 20 50
Feel that 0 50
Really wish that 0 60

The numbers are from (and inclusive of) 0 (zero, not ‘null’) to (and inclusive of) 100, which is proven to be a “larger number” than zero. Why not?

The table seems to imply that there’s a certain difference in the way we perceive things. And indeed, transform this into a net chart, and this is what we find:

So you see, ladies and gentlemen, there is a reason why this decision process is an ongoing struggle, which all too often ends up in software systems ending up in the “supermassive black hole of architecture”, where nothing, not even unambiguous null values or valid foreign keys can get out.

Welcome, Mr. Asylum White !

Mr Asylum White has finally decided to join the DGI team. This addition significantly increases our chances for realising our long term strategy of achieving World Domination.

(mr Asylum White analyzing a paradigm shift)

Top 5 Enterprise Architect Anagrams

Recant Heretic Priest

Epic Retina Stretcher

Irate Erect Sphincter

Erratic Pretence Shit

Antichrist Creep Tree

The benefits of technical debt

The meta definition of debt goes something like this:

“A debt<T> is created when a creditor<T> agrees to lend a sum of assets<T> to a debtor<T,R>.

In modern society, debt<T> is usually granted with expected repayment; in most cases, plus interest”

In other words, If you borrow something, etuiqette dictates that you pay it back – especially in instances of debt<money>, with interest. If you don’t, bad things will happen to you, and you’ll probably end up having to sleep under a bridge – with aching knee caps as a possible consequence of using the wrong T for creditor (chosing creditor<bank> is usually a better idea than creditor<Tony S>)

In the case of debt<technical>, creditor<enterprise>, asset<time>, “debtor<T>” gets interesting.

It is worth mentioning that the consequences of technical debt actually varies according to the developer’s religion. Islam prohibits lending with interest, so a debtor<developer, Sheik Yerbouty> gets away with paying less than an instance of debtor<developer, Catholic girl> where interest has been a concern since the days of Charles Babbage. On the other hand, an instance of debtor<developer, Jewish princess> implementing an especially inefficient piece of code, will literally get away with technical murder (According to the Torah, all debts should be erased every 7 years and every 50 years)

Another consideration is that we (for the type definitions above) actually need two instances of debtor<T>. This is because one usually goes out of scope before the transaction is complete. This is especially true for the pair<debtor<consultant>, creditor<enterprise>>

To complicate matters further, the semantics change dramatically across the domain of type parameters.

In the case of debt<financial>, creditor<institution>, asset<money>, debtor<Joe> we have just defined the driving force behind the global economy, growth and prosperity.

If we switch back to the technical debt type parameterization scenario, we end up with the unit-testing mafia’s classical rhetorical dilemma “pay now or pay more later ?”. In this case debt is interpreted as bad and should therefore be avoided at all costs. Unfortunately, their intepretation is based on their inability to grasp the concept of two temporally coupled instances of debtor<T>

Technical debt is a good thing. It’s what makes the IT world spin. Without it, every system would work flawlessly and be so easy to maintain and extend that 95% of us would be out of a job – and therefore probably end up having to sleep under a bridge. There is actually an argument to be made for a significant global increase in the aquisition of technical debts.

1: An enteprise with a large technical debt will likely require the services of an increasing number of developers to keep things under control (and probably also additional manpower to compensate for the software’s inability to support the core business processes). More developers will introduce more technical debt and the cycle continues. Eventually everything will collapse and the original software has to be replaced by new and improved software. Fortunately the introduction of a piece of new and complex software requires the services of domain- and software experts. If the software gets complex enough (and it will, if the debt is large enough), one will have to refer to the previous implementation to be absolutely sure that all the implicit knowledge contained in the old implementation is transfered to the new implementation. This includes representations of data and logic. If (reader<executive> == typeof(you)) Goto 1;

Debt is good. It’s very, very good.

It provides more jobs than any enterprise can ever get rid of by downsizing. If they select the outsourcing option, the technical debt increses even faster because of a higher technical interest. In addition to this, it will also (eventually) drive your salary skywards due to the fact that educational institutions don’t scale, but technical debt does – exponentially.

Normality and semantics are hereby restored.

[Ed: Some definitions may accidentally have been ripped from Wikipedia in the process of writing this article]

Well it’s kind of a – kind of a mass. It keeps getting bigger and bigger

This won’t hurt a bit. Just take a deep breath and relax – while we introduce you to the…

If you’re a developer, you’re probably thinking something along the lines of:

“Is it… ?”
“No, it can’t be – surely ….”
“By Knuth ! Look at the efferent coupling on that thing ! We’re all going to die !”

If you ever presented a design like that to anyone – you’d probably be out of a job. You can, however replace the blob with a more traditional ESB long-box representation and dangle the services below it (This is one of oldest marketing tricks known to man, also known as the “homeomorphic swap”)

It still has the same topology and the same coupling issues that are indicative of “something that knows too much” and “a certain brittleness”, but now – you have become architect material.

As an architect, you might be tempted to make an argument that everything is fine and dandy, because it’s loosely coupled.

Please don’t.

If there were no hardwired endpoints, and you had a service discovery mechanism powered by a Wintermute AI at your disposal – you would probably get away with it (The odds are – there are – and you don’t). That is, as long as your architecture only needs to support read operations.

The “Bus” concept is somewhat analog to a semantic sucker punch. The word itself practically induces associations to some kind of Matrix like hosting mehcanism that suddenly made distributed computing easy.

The one thing the analyst forgot to tell you all those years ago at that expensive conference - was that an ESB is a piece of software that is running on a piece of hardware. There is a high probablity that your ESB actually obeys the laws of physics. I.e. it doesn’t really work, does it ?

REST didn’t kill SOA – there was no need.

Hope you managed to leave Jupiter before the deadline…


Welcome to the new (and hopefully somewhat improved) Dark Grey Industries site !
We’re now running WordPress. It’s considerably faster than the old Expression Engine installation and it’s also easier for us to maintain and extend. We’re now multilingual, i.e. you can choose between pidgin english and norwegian.

Many thanks to all you fourteen year olds who have been flooding us with comment spam and also to the four friggin’ thousand attention seekers that registered as users. Your input (literally) have been invaluable in our decision making process regarding migration to a different CMS.
We’re now sporting black ice – in the form of Akismet. If that fails, we may have to resort to sarcasm to fend you off. You have been warned !

Certified Poet

Oh, I thought I’d code and be free
Build and compile for all to see
Programs that worked, delivered on time
But everything changed – on this is my rhyme

Agile and Lean came storming the door
Everyone said, “I’ve seen them before”
But they didn’t falter or fail, not at all
They said “Iterate!” or your projects will stall

Around and around the teams would go
Coding and testing and making it so
users and bosses could all have their say
till products would ship and be well on their way

Bigger and better, faster and more
Waterfall was shoved out the door
Yes, we were an effective machine
Yes, we believed in Agile and Lean

But then Agile and Lean brought a friend
A dodgy stepson ‘bout the age of ten
“You have to do so much more than this -
“Meetings and masters and sprints are amiss”

His name was SCRUM, I kid you not,
first name was dumb and last name was naught,
How do we do it – please tell us how
“Don’t worry pursaps, I will teach you now”

“Certified” is what we all had to be,
despite for what, no-one could see
What is it, what, that we have to learn,
to make the hours ignite and burn

SCRUM couldn’t tell us – but faith so strong
if you don’t get it, you’re doing it wrong
Remember, a method, nay it never was
A mindset is what, and rightly a buzz

So now I know,that I’ll never be
a CSM but I do decree,
a Mindset I have, I’ll be known from today
as “Certified Asshole“. That’s me, M’kay?!

Plumbers, Guilds and Coffee


“Damn good coffee!” I said to myself. I was sitting at my usual table in the “Restaurant at the end of the Universe”. My waitress, always the same girl, had just taken the order and left for the counter. “Lovely Rita”, I called her, because that’s her name.
I take pride in getting my lunch meals right. I believe that what we eat says something about who we are and who we’d rather be. Or something.

Today I had ordered the “Bundle-O-Burgers”, or BOBs, as they were conveniently called here,  my favourite meal in this particular restaurant. Taken simply with plenty of water to drink. And, not to forget, while waiting for this feast, a cup of the famous “Barista Guild’s Cuppacano(tm)”, or, a little less convenient, but good enough for this story, I decided, “Barcano” for short.
There had been a bit of dispute over the Barcanos lately, since the Barista Guild refused to tell the public what was in them – “Secret of the trade” they called it, and argued that the Guild “knows what’s good for you”. A lot of people were put off by this. I never really cared one way or another. As long as someone knows what’s good for me. Can’t be bothered myself. Damn good coffee, indeed.

I got my book out and was just finding the page I’d gotten to when I heard a dear and familiar voice. “Uncle! Hey, may I join you?” I looked up and there was my nephew Danny with a boiling-hot Barcano in his hand, newspaper in the other. Like me, he was in his work clothes, so I figured he was here for his lunch, too. We whatsupped each other and even did a casual high-five as he was sitting down opposite me. “Cool”, I thought. Oh yeah.
Danny is a builder – a plumber to be precise. He started his own business a couple of years back, and as I understood it, he was a good craftsman and well-respected among both his co-workers and customers. His business was a testament to this, as it had been doing well from the beginning. So, in the way of male professionals, I enquired “How’s the business going, Danny Boy? The pipes still calling?” Not surprisingly, since the joke was pretty lame, he didn’t laugh at this at all. “Well, yeah, good, I guess.”. Fair enough, I thought. If he’s got something to add to it, he’ll do so eventually.

Our BOBs arrived and we dug into them. Delicious, as always. I was on my way into the third one when Danny craved my attention – “Uncle?”. “Stop calling me that”, I said. “I’m not your uncle, It’s just an economical narrative technique I employed, so that everyone would make the assumption that I know you really well.”. Danny went “Umh, OK, ah, er – Dude?”. Oh no. “Just call me ‘Man’”, I demanded. “It sounds cool but not overly so, and besides it’s true”.
That out of the way he continued; “You know, the business, the plumbing? I’ve been working on something new there.” I listened. “I’ve been feeling a bit – I dunno, well, tired of the whole thing lately.”. “How so?”, I prompted. “Well you know, I get a feeling that I – that we – plumbers, that is, and actually most others in the building trade too, now I think of it, aren’t really respected enough – you know, as craftsmen. It’s like we’re just brought in to do some work. And we do it, but no one recognizes the competence and craft that goes into it.” I didn’t get it. He noticed as much, and tried again: “The projects that we’re brought into have budgets, and they never, you know, consider the crafts that they are dependant on while they’re planning this – so it invariably ends up being just another building that we install plumbing in. Houses, schools, apartments, train stations, they’re really all the same. And we don’t get any recognition for doing our parts of them – the craft that we actually deliver”.

I looked at him, baffled; “You get paid, don’t you? And I mean, a satisfied customer who pays you what you are owed, and possibly even retains your services on his next project, isn’t that recognition enough? What more can you realistically hope for?”
“Yeah, yeah, I know that” he said. “The problem is I don’t feel we’re being recognized as the true professionals that we are. Not given the appropriate respect. I want the building trades to be recognized as a craft! A craft that has to be learned, developed and encouraged!”
I thought about this for a bit. Some chewing and some swallowing of coffee transpired. “Danny”, I said, “plumbing is a craft. Everybody recognizes and respects that. It involves the learning of skills, and performers of this craft learn the skills. They evolve them, cherish and take pride in them. You know all this.”. A thought occurred to me; ”Are you saying that the craft isn’t valued high enough – you simply want to make more money performing it?”
-“Everybody wants more money. That’s why it’s called money”, he said. An image of Danny DeVito fluttered across my mind for no reason I could think of. “But that’s not my point – at least not in a direct way.”
-“Consider this, Man”, he said, and I realized my poor choice of nomenclature, “I have this idea, I’m going to found and organize a – er, craftsman’s movement of sorts.”
-”Like a guild?” I interrupted, “like the baristas? Secret handshakes and hooded capes?”
-”No no – nothing that formal, although I’d like to present it in a way that reminds people of a guild, perhaps give it a sheen of authority, and maybe even inspire some romantic associations – you know, something that reminds people of ‘ye olden days’, when a blacksmith taught his son the craft, and – well, you get the picture”. I did. I was looking at Dada. So I enquired “What’s the point?”.
-”The point is that it will make a statement.”. he gulped down the last of his Barcano and looked at me. “And enable us to raise awareness of our continued efforts to do really high quality plumbing”.
-“Huh”, I said. It is a word I very rarely use. It didn’t come out right. “But aren’t you already striving to maintain professional standards? Isn’t that what ‘professional’ means? Your customers will surely assume as much, so who is this statement really for?”
-”It’s for our customers, suppliers, partners, actually almost everybody really. But most of all it’s for ourselves”. I almost did a huh again. “Don’t you see, if I can make this appear authoritative, sensible and profound, then I will become an authority myself. That’s just the way it works. Some of the more experienced professionals will probably recognize it as pointless bullshit, but that doesn’t matter.”
-”It doesn’t?”, I wondered, and felt an immense satisfaction that I’d shunned this potential blood-relative. I celebrated this feeling of victory by stabbing the last bundled burger with my fork.
-”No, it doesn’t”, he said. “If I and a select group of other semi-experienced professionals stand behind this, do some namedropping in the right places, refer to each other as experts in the area and so on, we will eventually attract followers, mainly of cause from the younger, more inexperienced craftsmen – who are either unsure of their own competence, or, and do not take this lightly, willing to sign up for anything that might give them some credibility and status among their peers. And the best part is that the more followers I can recruit, the more people will be dropping my name around. Everybody will know my name! And they’ll think I possess some deep insight into something that they can’t really grasp. Believe me, Man, this will work! Who knows, it may even generate some more business. I could even get paid to give talks about the profound ideas behind the movement, and why it’s so important to understand them.”

Wow, I thought. Ridiculous, but at the same time maybe not all wrong. I did a huh again – slightly more successful this time. “Well, er – what have you come up with so far? I mean, the underlying philosophy and ideas, and such, what will you base this movement on?”
-”I’m not all done yet, but I’ve come up with – well, you know, they’re more like slogans than postulates at this time.” I was all ears, and told him so.
-“The first one goes:
‘Not only working sanitary systems,
but also well-crafted sanitary systems’!”
-“You’re not serious”, I said. “You’re saying that not only will you install water pipes, but you will do it properly – in a professional matter. Is that it?”
-”Pretty much”.
-”So you’ll use copper pipes, pressure-test your welds, and, you know, all in all, actually do your job”.
-”You’re insane. That almost-complete sentence is a given. A statement that no-one will disagree with. It has no meaning. This will never fly. Unless you have some others that are more substantial.”
-”I think you’re wrong. The whole point is that everyone will agree. That way they’ll think that my followers and I have gained a more profound insight into this than they have themselves.”. I was getting tired of this.”And this is the only one you have so far?”, I demanded.
-”No, I got a couple more. But I’m not really as happy with those. They came out a bit to – er, general I think, I dunno. Anyway, here goes:
‘Not only responding to change,
but also steadily adding value’,
‘Not only individuals and interactions,
but also a community of professionals’,
‘Not only customer collaboration,
but also productive partnerships’.”

He looked at me. I looked at him. I didn’t know what to say, so I said it; “Listen, these statements make even less sense. They are just babble, and they’re not about your trade in any conceivable way. You can’t expect to rouse passion and commitment from anyone with this.”. He was still looking at me. “And you obviously forgot at least one: ‘Not only cooperating with gravity, but also planning for it’”. His eyes focused again. “Nah, that sounds just contrived and obvious.”. Irony wasted. I let it go.
“And”, he said, spark back in his eyes, “I thought of an introduction to the statements, too – something that defines the audience and the ‘movement’ as it were. In a suitably humble tone. I am really happy with this one: ‘As aspiring plumbers we are raising the bar of professional plumbing by practicing it and helping others learn the craft’. See? Good will and the best of intentions practically oozing off it! Everybody will know that this is good thing! Hell, I may even qualify for MVP for this! You know what that means? Being certified as “Most Valued Plumber” by the Large Plumbing Supplier’s committee is a sure-fire way to Plumbing Fame and to enable a life as an ‘opinion maker’ – I may not have to do a bit of plumbing again – ever!”.

This final tirade shut me up. It was clear he was on to something, although I had my doubts. It was contrived, it had no substance, no intended public, nothing provocative or indeed no point at all. At the same time, I realized that it might actually work if the ‘movement’ was presented convincingly enough. Assuming of cause, that the aspiring professionals of the plumbing business didn’t think to hard about what they signed up for.
-”Do you have a name for this – er – call to arms?”, I asked.
-”Manifesto for Plumbing Craftsmanship”. Not half-bad. He’d thought this through, alright.

Lunch thoroughly over, we did our takecares and our seeyousoons and I left the restaurant thinking about this “Craftsmanship” thing he’d come up with. It could actually work for more trades – any trade I could think off. Could something like this conceivably appear in my own profession?
No, I thought, people in software development communities would scoff at the idea. We are trained professionals, and at least to some extent logical thinkers. We certainly are – aren’t we? A tinge of doubt was about to settle in my mind.
But I decided we were safe. “No”, I thought. “Can’t happen here”. And I went back to coding, trying not to blow any systems up during the rest of the day.

Nobody expects the server inqusition


Our chief weapons are: SQL Server, SQL Server Mobile, Reporting Services, SSIS, Replication Services, Analysis Services and a fanatical devotion to Microsoft!


We’ve tried Analysis Services. It wasn’t all that nice.


Well, then: Our chief weapons are: SQL Server, SQL Server Mobile, Reporting Services, SSIS, Replication Services and a fanatical devotion to Microsoft!


Replication Services is quite a bitch to maintain and service, isn’t it?



Our chief weapons are: SQL Server, SQL Server Mobile, Reporting Services, SSIS and a fanatical devotion to Microsoft!


(raises hand)



(gives angry stare)



…SSIS doesn’t really solve any of the really hard problems we’ve been having either…


(pauses slightly, breathes in)

Our chief weapons are: SQL Server, SQL Server Mobile, Reporting Services and a fanatical devotion to Microsoft!


(steps forward)

Sir! Report generators are too simple for most business cases, sir!


(thinks for a moment)

— Our chief weapons are: SQL Server, SQL Server Mobile and a fanatical devotion to Microsoft!


SQL Server Mobile is a nightmare to debug, sir!


(sighs heavily)

– Our chief weapons aaare…

(stares at soldier # 6 briefly, soldier # 6 makes no signs of motion)

…SQL Server and a fanatical devotion to Microsoft!


(lights up, steps forward)

SQL isn’t always the best solution, sir!



Our chief weapon is a fanatical devotion to Microsoft!!


(edges forward, slowly)

Sir…? You’ve mentioned vendor independence…?



(fade out)

Been looking for this ?

Three months of uninterrupted service in a hostile environment has to be a new Annoyatron record. People have literally dismantled office equipment and even been on their knees trying to locate the source of the 12KHz sound. Successful deployment tactics seems to be associated with sound reflection and diffusion.
Anoyatrons are already difficult enough to locate if they’re installed beneath a desk or in the cushion of a chair, but if you deploy them in pairs behind perforated ceiling tiles, they seem to be almost impossible to locate – at least by middle management execs. Great fun !

Page 1 of 212»


Union Tweets

Concepts of desire