Saturday, July 02, 2011

Building trust and unlocking the IT/ Business relationship - Show me the Working Software!

Hoping to keep this one short. I've been reading a lot of Gerald Weinberg recently, and I must say that he as an exceptional way of cutting to the core. Computer programming as always been opaque. The people who pay for it, must trust to luck and throw their money into what must seem like a deep dark pit and hope that eventually they may get something back in return.

Invariably they get back very little. If it wasn't for the fact that this very little can go a long way, especially when it allows you to lay people off, business people would have given up on IT long ago. In a way, the wise ones already have. Astute business people don't rely on grandiose IT plans. They've become wise to the promises and have learn't to save their money by keeping IT simple.

Agile was meant to offer a new type of deal between developers and business folk. Give me a bit of money and I'll show you what I can do with it. And by "show", I don't mean a power point presentation, a lengthy requirement spec, pretty UML diagrams, or a fancy customer value model. No, what I'll show you is real working software. Something that you could potentially start using today.

Now this was a seismic shift in the tectonic plates. From a business perspective, software development in progress was no longer opaque. Well at least that was the promise. You can see what you are getting for your money whilst it is still being worked on. If you don't like what you see, you can choose to stop spending. If you do like, then you can choose to spend some more. You no longer have to sign blank cheques and hope!

Gerry Weinberg cottoned on to this psychological hurdle a while back (as early as the 1970's). Business people hate software developers. If they could, they would get rid of the whole lot of us (replacing us with cheap labour from India). And can you blame them? How many other industries do you get to sell faulty products late, and charge your customer for "upgrades" that merely fix faults you introduced in the first place? Not many. Making money out of our own faults, no wonder they hate us.

The IT industry have even managed to use this hatred to their own advantage. IT companies like IBM have learn't that you can sell business people the dream of getting rid or at least marginalising those pesky developers. Every IT silver bullet under the sun has been sold, and none of them have worked, yet they are still selling like hot cakes, SOA being the latest. A real example of the triumph of hope over adversity :) IT creates a problem and then sells phantom remedies. Now that's a real clever way to make friends and influence people!

Back to Agile. Wasn't the new deal meant to bring an end to all of this? Yes, but guess what? IT reneged on their side of the deal. It turns out that producing working software one incremental step at a time is really hard to do. Harder in fact then trying to deliver it all in one big lump, and IT weren't ever any good at doing that either. Now it's alright for the likes of Kent Beck and Ward Cunningham, to cut a new deal with business, because they have the wherewith-all to actually deliver, but what about the rest of us?

Chastened with accusations of Flaccid Scrum (run and hide in shame, being accused of being flaccid in any department is not a good thing :)), what have the mainstream gone and done? Well they haven't chosen to try and put some lead in their pencil. Oh no, instead they have offered every project management rouge they can think of (Scrumban, Kanban, Lean, ToC, ...) to try and mask the fact that they can't get it up (whoops, taking the analogy too far, I mean masking the fact that they can't deliver, but I guess for the ladies the two mean the same thing :)).

Now this is bad enough, but what is even worst is when these passing fads actually require the business to invest even more. This is what got me blogging. The idea that business people should spend hours of their precious time working with IT, analysing business value and prioritising work, when they haven't seen any frigging software worth it's salt in months. WTF?

Not content with mugging me, you now want to monopolise my time too, just to mask the fact that you haven't actually produced anything useful? Now that is really going to make me stop hating you - Not!

When are we going to wake up to the idea, that a deal is a deal, and actually start delivering on our side of the bargain?

Kent and Ward are right. Business people aren't so bad once you give them a reason to trust you. They will actually get off your back and stop micromanaging. They will freely engage and be generous with their time. They will pay for those memory upgrades you asked for 5 years ago. They will even think long and hard about the best ways to realise business value, but this is only after you've proven that you can reliably deliver working software. SHOW ME THE FRIGGING SOFTWARE!

Software people need to get over themselves and accept that they haven't got a good track record. The "new deal" presented yet another opportunity for us to get our house in order. To fix-up. This of course means acknowledging that we are in a mess in the first place, and I see far too few software people who have the humility to admit that!

5 comments:

I'm not trying to underestimate the value of good agile technical practices, but I disagree that new management methods like Kanban amd TOC are rouge.

I just finished working in a public sector legacy enhancement shop and applied Kanban with no changes to their technical practices, frankly their is a whole slew of technology that XP tools don't have an answer for, Siebel, SAP, TIBCO, etc etc...

The team now has vsibility into some of their big blocking issues which have more to do with bad process, uncooperative suppliers, and waterfallish big batch work.

They are now delivering faster, and with better quality, especially at the requirements stage, yes we have a stage where people do requirements.

The danger of posts lime yours is that they reflect an over obsession with development, IMHO some agile folks are overly developer centric.

Good development is important but I've seen to many projects fail with good technical practices because the management, the business relationship, the vendor relationship, etc ,etc was all mismanaged.

I don't disagree, and the rouge bit was a bit of a joke. All these things have their place. There are a number of narratives at play at the moment in the software industry. I don't want to be little any one of them.

There is however an overriding narrative. One that will make even XP pale into insignificance over time. I mentioned Gerald Wienberg. Well he has been in this game for perhaps over 50 years.

You mentioned SAP, TIBCO, etc, etc.. Does this stuff actually help? And if it doesn't help, why do we allow it to get in the way?

Simple design, and competent teams, this seems to be an enduring theme. I also agree with you, management that ask for the earth and don't understand the trade offs involved can hamper good teams.

Denying either scenario doesn't help. That wasn't my intention.

IMHO they both have a common root though. People who don't develop, not understanding/respecting what it takes to develop. I was speaking to this core truth.

The reason it keeps being mentioned is because it is as true today as it was 50 years ago. Lets hope it still isn't true 50 years from now!

You are hitting on a universal truth, most people don't have clue about software delivery. Unfortunately this includes the so called software delivery performance experts.

Our industry is so new , so unexplored, so unproven in terms of best practices, yet that doesn't stop an army of consultants and experts from creating a bible of best practices, methods, and maturity frameworks, none of which have any real good data to back them up.

This is really because the industry is so new, software is really the "newest" profession, so it's subject to misunderstandng, still it come a long way in 50 years, and will continue to do so...

I've been thinking about your response. It's very defensive. It also makes a lot of assumptions based on things I didn't say.

This light hearted rant was talking to relationships and the lack of trust between those who pay for software and those who write it (including those paid to manage those who write it).

In your response you assume I'm talking about technical practices. I am but only indirectly. My main focus is how to improve relationships amongst people. I see incremental delivery as one sure fire way to do so.

With trust all sorts of things become possible.

Since you call your blog "Agile Consulting", I assumed you naturally agreed. Now i'm not sure.

This also comes with time, software delivery is very new, we are in the snake oil phase, it more positively stated the beginning of the medium, root of alot of misunderstanding stems from thinking we have and know the answers, we don't, not yet..

Maybe my rant went of kilter, my point was the above, nothing defensive or otherwise hostile intended

About Me

I'm a Programmer, and I've been programming professionally since 1990. My background is in embedded systems, telecommunications and C/Unix. Over the years I've done several jobs including project/line management.
I first picked up Smalltalk as a way of learning OOP, back in 1993. I struggled trying to learn OOP through C++, so decided to take a look at 'pure' OOP. I was an early Java adopter and championed the use of Java in 1997 - but since then I have become somewhat disillusioned with Java. In recent times I've picked up new languages like Ruby and Lisp, and I have gained an interest in Programming Languages in general.
I now work as a freelance Consultant and Agile Coach