I said I’d follow up my earlier wondering into bespoke software vs huge applications, after I’d thought a bit about why companies don’t seem to like small, bespoke apps.
It seems to me that this falls into 3 reasons:
- They don’t realise the effort involved in the different approaches.
- They don’t have the vision for small, targetted applications.
- They feel ‘safe’ having a box with a brand.
Comparisons of effort
I believe that enterprise web applications are becoming more complex. The latest one I’m working with – SharePoint 2007 – is vast, so much so that it’s now hard to imagine that a single person can be familiar with all of it’s features. This is, I believe, due to it being designed to ‘fit all’ needs. Consequently, configuring and administering it, well, that’s going to take skill and effort. It isn’t like just installing some application.
That’s fine if you want a lot of it’s features – but if you don’t, then let’s look at a custom application. While industrial grade web apps have been getting bigger and more complex, creating web applications has become simpler. There are various frameworks – Rails, Struts, .NET – designed to make this easier. It used to be that I’d have to write a login system for each site I built – nowadays, such things are given. This has the upshot of reducing the effort of building a bespoke application, while at the same time the effort of using a big web application is increasing.
As a side note, I guess that that is what the fuss over web services is, really. Building small, comparitively simple web applications that can be assembled into bigger applications.
Knowing what you want
I think that knowing what they want is where most customers fall down. It’s a typical feature of the Dilbert cartoons, and I think everyone in IT recognises it. Really, this falls into my person obsession – the specification. The specification is everything – all of the technical task of actually developing an app is fluff next to knowing exactly what it is you want to do.
Sadly, many customers don’t like to think too hard about what it is they want. They might have a strong vision for the system, but fail to communicate it. They might not really know what they want the system to do. They might not even review the specification at all, as they’ve told the development team what they want, and this was clear to them, so the developers should understand too.
Anyway, my point here is that the vast ‘fits all’ type of application has the advantage that, to a degree, you can make up how you’re going to use it as you go along. You’ve got all theses features – now you just choose to use them. The disadvantage is that you’re constrained by those features too – if you want to do something a little different to what they were designed for, well, making that happen can be ‘fun’, and that’s where I make a living.
The safety of the box and the brand
Boxes and logos seem to hold a near religious faith in some organisations. Personally, I’m unconvinced, though I can see their argument. For example, big companies – Microsoft, Sun, Corel, whatever – aren’t going to vanish overnight. Hell, some of them seem to be steaming along on momentum quite comfortably. Buying from a small company, well, that’s more risky. What if they go bust? Are you left with a legacy app and no way out? What if they project goes terribly wrong – how do you sue for tens of millions? How big is their support department?
Personally, I think all of these things have easy enough answers. What if they go bust? Well, why not keep the code in escrow – if the supplier goes under, the customer gets the code and documentation on exactly how the system works, specifically so that they don’t get stuck in some technological blind alley. What about big legal claims? Well, isn’t that what insurance is for? Factor that into the cost of the project. And as for support – well, when was the last time you got much assistance from Microsoft? (That’s not meant to be anti-Microsoft – just a recognition of the fact that they have the biggest support nightmare on the entire planet). Even smaller suppliers can often only give much support to their bigger customers.