Thursday, October 14, 2004

I'm "all in". (from my Borland blog)

There is a creaking sound around me these days. (Real creaking? Well no, that is just a metaphor.) The source of this is the discontent in many quarters with the metaphor of software factories, ERP for software, or industrialization of software.

Back to software factories in a second. It is somewhat surprising that people who live in the magic world of abstractions, such as software developers, programmers, coders, hackers do, would object so extraordinarily to an abstraction – like a metaphor. (I just realized I can barely write a paragraph without utilizing simile through comparisons using “such as” or “like”, but I digress.)

Anyway, the reasons why I found myself owning a computerized voice changer are irrelevant to the following point, but suffice it to say that for a sophomoric prank not too long ago I found myself a proud owner of a computerized voice changer for my Verizon Kyocera phone. I put in the batteries, turned it on, and proudly called my wife upstairs. Chuckling I spoke to her only to have her interrupt and say – “it sounds like you”. Darn. I flipped it on and off a couple times, back to on, and spoke some more – but it still sounded like me. I took the batteries out, rubbed them, rubbed the contact points, battery back in, turned it on, spoke – still me. Because my wife is a good person, many years used to me, she sat there on her phone, waiting for me to get over the disappointment. Wondering why it wasn’t working I stood there flicking it on-and-off. All of a sudden – my wife yelled – there – you sounded like a robot. I looked at the device – and it was off. “Ahhh…”, I thought., “cheap, foreign, imported electronic device.” They put the contacts in up side down, they mislabeled the battery compartment – and “off” really means “on.”

After this success – for some reason – I decided to read the instructions. And at this moment I realized how hard metaphor is to deal with. Because staring me in the face was the fact that even concrete, binary concepts like “ON and “OFF” are culturally and experientially based. The instructions told me “in order to operate, turn your voice ‘off’”. So – it was not mixed up terminals, it was not bad labeling, it was the fact that from the point of view of the device maker – the product concept was about turning my voice on and off – not the device.

So, if we can’t define “off” and “on” clearly across different experiences – how do we share metaphor? The answer is – in dribs and drabs, gradients, and shades of grey. We may sometime misunderstand metaphors, we may sometimes find them stretched, and yes, they can definitely be pushed (metaphorically speaking) too hard.

Back to software factories. Why are so many perturbed by this? Do you really think the objective is to turn all of us into something halfway between the drones of Lang’s Metropolis and Marshall’s Laverne and Shirley watching bottles sail by at the Schotz brewery?

Here just so we understand – let me turn my voice “on”.

Calm down. We are talking about the entire delivery process for software – not the writing of the actual lines of code. So – here is what I believe is a strong approximation of what Borland thinks about this.

Software developers, coders, hackers, programmers do something extraordinarily magical. They take abstractions and concepts and worry them, work them, and massage them until they turn into something almost real. Something so close to real that clicking a mouse button can cause thousands of real world actions to occur. Fundamentally, your job as developers is to push metaphors until they are willed into existence. So forgive those of us who once wrote code, who no longer write code, and maybe never did if we occasionally push a little too far.

Believe me. We know what you do is magical and cannot be replaced by a factory filled with drones. But think about it. There are no non-creative, no redundant, rote, boring activities left in coding? Haven’t we used advances in development technology to eliminate those things in the past? Aren’t there some left?

And then when we look at all of the software delivery process – requirements, documentation creation, builds, code reviews, deployment, collaboration, audits, metrics, and so on, aren’t there maybe a handful of things that can be more rigorously automated – without creating a soulless environment?

And what about the world we live in? Let’s say I get a job on a huge, super distributed transaction processing system – a really cool system that will be linked to dozens of financial exchanges around the world and requires local regulatory customization – so the team has many super duper brilliant people working on it around the world – each capable of extraordinary invention. Aren’t there “factory-ish” things we can do to help these often anonymous participants in the projects actually get a sense of each other? Can’t we bring some physicality to the virtuality – can’t we improve the collaborative infrastructure? Aren’t there “industrializing” things we can do to make this process go more smoothly project after project? When one of the team members leaves – is it a necessity that all the remaining participants are harmed by the amount of knowledge lost? Can’t a little bit be left behind – all without loss of soul or dignity?

I think it can happen. And I can’t think of a better group of people to try than Borland’s engineers in Santa Ana, Cupertino, Scotts Valley, Raleigh, St. Pete’s (Russia), Stockholm, Singapore, Brazil, Chicago, Atlanta, and places I am sure I am forgetting.

I think we can help individuals be productive, teams be productive and businesses be productive. But – hey, that’s just me. From my point of view it is all a game of Texas Hold-em and I, for one, am all in with my Doyle Brunson.

1 comment:

Anonymous said...

Feedback

# re: I'm "all in".
5/22/2005 11:46 AM by Luigi Sandon
There's a lot that could be automated in management too... clever systems that will output the same "wise decisions" upper management usually takes for many $$$$$$$$$$$$$$$$$$$$$$ a year could be easily built. And it would be equally easy to build system to do what lower management should to.

But no one talks about it... :-)