Yesterday I was reading this fine presentation by John Newton of Alfresco: “Who killed ECM?”.
Before digging in the rest of the post, let me just say I admire what he did with Documentum and Alfresco since both are quite a nice piece of achievments and I believe his input was significant. This is not a post contradicting that presentation ideas. But it stirred something.
Now… I on the topic on how to build software for the enterprise…
One of the most important things I learned is that building something revolutionary is one thing and building something repetitively, deterministic and within time & budget is another thing.
Software creation involves a big dose of… creativity, duh!. And flexibility. When it meets “the enteprise” it needs to be a little different. The employee of the enterprise uses the software but does not influence it too much. Control and precise results are key.
While I also think the employees need to be listened to when building the software which they will use, I also believe that more importantly is that the software project needs to fit within a (rough, at least) budget, timeline and be predictible in the results.
For this to work you need to make people work in a predictive manner. Software devs must work towards a short term goal, emplyees need to work towards a short term goal.
I know… software guys will say “I sometimes do in 1 hr what in other times I do in days. Gimme a break with all this control obsessed freak you call manager!”. Well.. you need to be a manager who understands this and keep the adequate rithm while removing the obstacles ahead of the team. Understand how software is done and don’t expect results measured by pure man-hours.
To call in a methaphor, when creating a new and revolutionary type of software it’s like nourishing a new flower breed. When you build for the enterprise, you need to deliver 200 packs in 2 months. And they all must be fresh and smell good.
Usually you don’t achieve the 200 packs by letting loose the gardeners in the back yard. You plan, monitor, adjust, address risks, look out for your money and use the Blackberry. The art is to know when to also talk on the iPhone and don’t become a pressure maniac.
Of course enterprise users want the same level of personalization, speed and overall quality inside the company as they get on the outside services (the gap is huge). In order to address this we don’t need to drop de “rigureous” model but instead employ creativity into it. The guys at College Humor have a nice video of the counter model.
So, making successfull enterprise software needs some creative work to kickoff the magic idea and then rigor for execution. Suppliers which do it in either of the extremes might get lucky in some occasions but not on the long term.