There are two methods in software design. One is to make the program so simple, there are obviously no errors. The other is to make it so complicated, there are no obvious errors.
Tony Hoare
Werewolves and silver bullets
It’s a well-known fact that if you want to kill a werewolf you need a silver bullet. That’s it. One simple thing to solve the problem. The software industry has more than its fair share of common, difficult to solve problems. Werewolves, if you will. What it doesn’t have is a silver bullet (although product vendors would have you believe otherwise). It is in seeking or promising a silver bullet that IT departments fail.
So let’s look at one of the most insidious and troubling of those werewolves; the one I like to call the Murphy’s law problem. This is the werewolf that lurks in the shadows waiting to change the needs of the business the moment you launch a new system. This is the werewolf that then forces you to modify your system in ways that you never anticipated and that fundamentally undermines your elegant design. No matter how many possible scenarios you think of in advance, no matter how configurable you make your solution, the Murphy’s law werewolf is always the one you didn’t think of.
And what silver bullet are you offered with which to kill this werewolf? The answer is business process management (BPM) software. This magical product promises to give you the ability to change your solutions to adapt to new business needs at the drop of a hat, and what is more, it promises to do this without resorting to the intervention of those pesky software developer types.
It brings together four lesser silver bullets (workflow, enterprise application integration, document management and rules engines) into one super bullet capable of killing the dexterity werewolf stone dead. It sounds wonderful and explaining its virtues may make you very popular with your business colleagues, especially when you explain that for once they’ll be in the driving seat, able to change their business using a handy graphical interface. Nirvana has been achieved.
Castles in the sky
And so you embark on your BPM delivery programme, which of course involves a large number of developer types plus their entourage of architects, project managers, testers, and so on. After many months of hard work and several missed deadlines you present your beautiful edifice to the massed audience of users and they marvel.
Then someone asks the slightly awkward question. “But what if I just want to change the way I approve documents to allow X to happen”, and you look at that person and reply “well, in that particular case we would have to make a code change, but for all the other situations we planned for that wouldn’t have been necessary”. Somewhere I can hear a little boy crying “the emperor has no clothes”, and what very expensive clothes they are too.
Now, I’m not saying that BPM doesn’t provide a certain degree of flexibility and implemented properly does offer some independence for the business, but it is no silver bullet and I’m not convinced you would have been successful in selling it to the business as a solution without the promise that it was.
The real answer for me is much simpler. There is one part of every software solution that is ultimately flexible; that can adapt to the changing business environment and the demands of the customer at a moment’s notice. It can even receive new instructions without the intervention of a developer.
It is, of course, that most troublesome of system components, the user.
Skin in the game
The user can change the way they use a system within minutes and they can do it creatively. They can instantly stop performing a process in a certain way and adapt to new instructions presented in plain English. They can respond to the needs of the customer even when those needs have not been anticipated in advance. And what do they need you to give them to allow them to achieve all of these things?
Flexibility.
The users need to be trusted, because if you trust them and accept that they, like systems, occasionally make mistakes then you can simply provide them with a system that allows them to pass information between themselves in the way that they want. All you have to stop doing is locking down functionality to the point where the user is simply a drone following the instructions of the system. Create systems that cope with user error rather than forbid it; that allow the user to decide what happens rather than bake it into a rules engine. Accept that it’s okay to let the user be part of the solution, rather than a helpless observer.
Some of the most successful applications on the planet provide a basic capability and allow the user to do all the clever work. Word processors, for example, trust you to write a letter properly. They might occasionally offer help, but it’s up to you to structure the document. The spreadsheet is the ubiquitous powerhouse that it is because of its enormous flexibility. When it comes to workflow systems, the most adaptable one of all is email with attachments. Email is one of the few software solutions that is truly global in use and compatibility.
There are many werewolves in IT and to kill a werewolf you need a silver bullet. Luckily for you, the real silver bullets in your organisation are your people.
