Articles Written By: MrGrey

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.

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

CompSci

“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”.
-”Yup.”
-”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.