Tuesday 4 September 2012

Local system evolution

If you talk with anyone who has been IT world for a while and has actually listened to what is going around, you will hear a lot of stories of projects going wrong. Lots of money wasted, lots of good initiatives botched, lots of tasks unfulfilled. And especially true it is about big projects - bigger it is, more often you will hear that company x has cancelled project after millions of euros invested and several calendar years spent. Or government agency awarding too big money to fishy company to deliver something needed in theory, but never finishing, or overspending, or some other company suing said agency and delaying everything by seven years. Or combination of everything mentioned and some other progress thwarting nonsense thrown in. And everything too waterfall to ever reach finishing line, or too agile to ever gasp the whole scope of the project.

So, familiar stuff. What I want to suggest is taking more natural approach. And by natural I mean something that we could probably see in nature, not something that is natural in project management, government contracting and corporate life.

I want to think local and introduce some competition. First draft of my idea applies to local governments - in Europe we have thousands and thousands of local governments. Provinces, cities, suburbs, parishes, counties, townships and even occasional micro duchy. What makes all of those political entities similar is the level of independence they always strive for. Most of European countries have it written in their most sacred laws and most certainly every locally elected person does want to have as much local control as possible. And all that ends in hundreds of thousands of similar contracts awarded to similar IT vendors to build similar software that performs similar functions.

Of course, I bet there have been initiatives by national, federal and higher up government bodies to try and unify various software platforms. And most likely results have been either over budget, over deadline or without all functionality being delivered. And most likely all three factors combined. I might be wrong, but it certainly feels that nothing else can come out of solution that is imposed top-down to lots of slightly different entities.

My suggestion is to do build software locally, but with certain rules. Rules or framework, that is imposed top-down from as top down body as possible. Rules that govern such things as general architecture - modularity, interface standards, security level, source control, needed documentation, stuff like that. All that then is made publicly available for comments, ridicule and revisions. Next step is removing at least half of it - threat such rules like a good novel during editing, not as usually - by adding more and more adendums, extensions and clarifications. Make it a good read instead.

Next, push it down to each smallest municipal entity in a form of law. And force every single IT contract awarded to include this framework. And when software gets built, enforce framework by using spirit of the law,  not the letter. And yes, it is possible - why not to include reference to special arbitration court in case of any disputes. Arbitration court that would consist of wide jury of actual peers of vendor - geeks, scientists, developers and IT contractors of all levels. Once framework gets traction, it anyway will be easier to develop for that, instead of doing some hackish workarounds. And we will have achieved our result. Actually, we will be at the half way.

At this point, if we have for example HR system or payroll system, that is built using the same framework across hundred or two hundred organisations, but the same amount of contractors, we will have one or two hundred systems. Similar, but with different prices, support models, look and feels, functions and general user experience. Very different in many aspects - but, most importantly, comparable in apples-to-apples fashion. So, we let systems work for a year or most likely two - delivery times will differ from one place to another, anyway - and then we compare. And during those couple of years we do not let too much new changes ordered, so there is some backlog and some need for improvement is felt.

Then comes important bit - we do not make country wide beauty pageant to determine who did best, no, because choosing one would bring us back to the bloated mega project we discussed at the beginning. Instead we compare only locally, we compare cities, counties and hamlets that lie next to each other. Geographically local. Why? Because they are most likely culturally similar, they have similar history, similar people, similar politicians and most importantly - similar needs and hence requirements.

We do public comparison of offers from vendors who delivered first batch of systems, we introduce new requirements that were gathered for all systems and include those as well. We choose one vendor and after a year or two, depending on system complexity we have unified system in five to ten neighbouring organisations. Of course, it is not easy task to implement and year may sound a little bit too short to do that - but remember that everyone is working within the same framework, so systems are technically similar - and this newly chosen vendor - second level vendor - must be given very deep and good access to inner workings of all first level systems. And of course - documentation is part of the framework.

After second level is done, wait for a year or two and repeat. Around six to ten years have passed, and we have one good working system for every single local government in a country. And yes, it is time for a first picture of this blag. With colours.
And if you think ten years is a long time, remember that big top down projects can easily take just as long - but in this case, all those years everyone has had a usable, constantly improving system.
And yes, framework should not change more often than couple of times during those ten years. And if it is not too prescriptive, those changes can be avoided. Just threat it as a law - those do not changed too often. (At least, those that forbid something, those tend to hang around for eternity, but that will be theme of next post)

So that was first draft of an idea - next I thought about how to apply that to something less politicly awkward than local governments. And more interested in saving money and raising productivity.

So, what kind of corporation would be in any way similar to local government? It should have lot of branches that are a bit different, yet similar, more than nil of independence and bunch of IT systems. Well, everyone has at least one or two IT systems. So what would this branchful corporation be? Bank? No - there is as little independence as overlords can achieve. Manufacturing? Nope - not that many branches, and not that local.

There might be more, but currently I am thinking about retail chains that are built on franchise basis. Or any chains that are built based on franchise. Retailers would have only 3-5 systems per store, depending on what they are selling, while other franchises might have more.
Hotels come to mind - lot of stuff happens in hotels, reservations, many workers, big inventory, add on functions - restaurants, conference centres. And all that quite similar between partners, yet often with enough local differences. Different countries, different financial, labor laws. Yet similar idea.

Of course, when you build corporation and franchise from scratch - when you actually build those hotels from ground up, then all the systems can be adapted, can be unified from the start. But what when you buy? Merge? Divest? Leave other and join your franchise?

Even better if framework standards would be then set with some sort of industry associations - something that businesses have sat up themselves, and that can decide of such whole sector improving standards. While keeping an eye of all anti-cartel laws, of course.

Whole world is trying to merge, cut costs, improve - and doing it with local evolutionary principles might be a good idea.

p.s. any interesting examples of industries this idea could apply to?

No comments:

Post a Comment