Firstly, let me say that IT companies ARE fully aware of all the costs involved so usually take steps to safeguard themselves from cost blowouts – most of which come from poor management decisions and unrealistic expectations from within the client company or organization. This is why IT companies charge an hourly rate, not a fixed cost, and only give estimates, not quotes. Also the project being undertaken is fully specified in detail and any changes are chargeable over and above the original contract rate (think of it in terms of building a house: the plans are laid out, the job is quoted, then the client wants to add a room that is not on the plans. Who should pay the extra cost - the building contractor? Hell no!)
IT infrastructure (i.e. computer hardware, network cables, etc.) is easy to budget for – e.g. if you want 2 computers, you pay XYZ. If you want 3 computers you pay ZYX – easy! However, software projects are never this easy – and this is where most of the extra costs come in.
Software is never easy to build
Every software project is equivalent to an RnD (Research and Development) project. It is not that the software engineers don’t understand what is required and how to achieve it, but there is still a huge learning curve when it comes to actually building the finished project. Let’s look at professional projects you may have heard of for a comparison:
Every new version of an operating system (e.g. Mac OSX, Microsoft Windows, Apple IOS, Google Android, etc.) goes through many stages of development before it gets released to the public: from Alpha to Beta then finally to the Public Release version. At each stage there is an increasing involvement of the end user to determine whether anything was missed, or if there are hidden bugs that were not spotted by the developers. And all of this is with a well used, in some cases, decades old, existing system. Surely, why so much work to simply add a few features, or change the user interface, of a well-known product?
But this is not the end – the final product is constantly being upgraded and modified as new issues are discovered and some features are modified to allow for the inevitable ID Ten T (ID10T) factor.
So now you decide you want a ‘whatever’ project to be developed for you. You get 3 competitive quotes, some references, and then decide on a contractor. Have you, or them, allowed for the Alpha, Beta then Public Release stages? – Each with their own budgets (sometime termed Staged Development – or development stages). What about the post release upgrades and fixes? Who is going to pay for them?
What is more, the outcomes of the project may seem obvious in the beginning, but as the project progresses new ideas surface and new expectations arise as to what can be achieved. People get excited and they don’t want to miss out of getting some of the ‘goodies’ that can be delivered with ‘just’ some minor tweaks to the original specification. This means well meaning budgets can turn to custard real quick – as anybody who has built a house will know and understand.
It is not all bad news
While, as previously stated, software projects are very similar to an RnD project; there are some ways to mitigate some of the more extreme budget blowouts that can occur. Primarily, one needs to work with an existing software infrastructure – that is, a system that is already widely used in the market, and has been for some years, that is being constantly upgraded and supported by the software company that has developed it. These systems, for offline business applications, are called ERP (Enterprise Resource Planning) Solutions or, for online (web based) projects, PaaS (Platform as a Service) solutions.
They are almost always proprietary, not open source, products and require you to some degree to ‘buy into’ the system – that is, base your company’s future (at least in the medium term) on the success of this platform – and the company that owns it.
The massive upside is that your project will only be a small tweak to the larger system (potentially very low set-up costs – i.e. in the thousands or tens of thousands, not the hundred of thousands or millions of dollars one would normally expect to pay) and almost no ongoing maintenance costs – which will in the long run save you hundreds of thousands of dollars over the life of the project (and yes, every piece of software does have a finite life span).
Of course, this all assumes that the product you choose to use is capable of being customized – many ERP solutions simply cannot be (for love nor money).
Beware open source sales people!
Many software developers will explain that because a product is open source it can be endlessly modified by anyone – great for building your project on. After all it already does much of what you want, so only needs a small modification to achieve your desired outcome, and you get to ‘own’ the end code – i.e. you are not reliant on any one IT company for support. WRONG!
Think of it this way: an open source project, once you have modified it, has no one in charge of ensuring the product is up-to-date and bug free. That is now your cost! Even when upgrades and fixes are made to the core product, you must pay someone to install those upgrades for you – or your project will become extremely prone to hacks, instability, etc. very quickly. Don’t believe me? Read this: Millions At Risk From Critical Vulnerabilities From WordPress Plugins.
Furthermore, just because some twit has access to the code base, does not mean they should be tinkering with it! In moist cases, the open source project must be a PaaS system (that is, have a built in programming environment) – a system that promotes upgrades and the development of extensions - before one should be building new projects on it.
In today’s world: there are software platforms specifically designed to reduce cost blowouts for IT projects - and then there are dumb programmers who don’t know any better that sucker clients into taking huge risks without fully understanding the consequences.
The future is PaaS
The world is now moving away from purely offline ERP solutions to PaaS solutions as they promise connectivity – i.e. networking – without the associated infrastructure overheads (Read this: PaaS Is The Future of Web Applications and More)
Also, as PaaS systems are purpose built for programming client specific solutions, with a huge amount of any project’s needs already built-in, there is an inevitable massive saving in set-up costs. Their simple programming interface also ensures that lesser programmers have some chance of getting the project right from day one without too much fiddling about.
One of the massive advantages of some PaaS solutions is that they largely take care of the ‘just’ issue. Let me explain: every programmer fears the word ‘just’. This is because clients keep using it without considering what is truly involved to deliver the ‘just’. For example: just change that color; just move the button down a little; just add database functionality – or e-commerce – to the project. Just implies that the job should be done at little to no cost because it should be easy to and quick to do. In fact, almost always, the opposite is true.
This then becomes a point of contention with the client – who typically throws a childish temper tantrum: threatening to pull the pin on the project and not pay the final bill if their wishes are not carried out at no extra cost. ‘Just’ sends shivers up any IT person’s spine.
However, a good PaaS solution has been specifically designed to overcome ‘just’ – making sure the client and the developer stay friendly and the project gets delivered on time and, mostly, on budget.
Yes, we have a PaaS solution that does indeed meet these requirements – read about it here: Woogloo V3: is this the future of WCMS? I will say no more – you can research it for yourself.
Regardless of what your project is, or what platform you build it on, understanding is still the key to ensuring you come out with something that works for you and does not bankrupt you in the process.
Software development – or indeed any IT project – should never be undertaken lightly. There are always hidden costs! Especially with software projects, there are lots of unknown factors that can trip even the most experienced person up. I would suggest you choose a company that understands that they do not fully understand what is required and then double whatever budget they give you.
This does not mean that things cannot still go wrong: I have even been caught out with a $2,500 estimate that turned into a $30,000+ cost blowout – and the project was still never fully finished. So don’t be fooled – nothing in software is ever a certainty.
Unless your project is truly outside-the-square, try and choose a tried and tested proprietary PaaS platform to work with – then go from there. Trust me, you will want to thank me for that piece of advice later.
Remember, there is no such thing as ‘just’ in software.
Eyes open – and good luck!
Terrence Bull has over 30 years of marketing and advertising consulting experience on a global scale. He has run a website design and development company since 1998 and his business, www.Woogloo.com, services clients in over 35 countries worldwide. You can read more insights from Terrence at: Dream: Profound Insights For Creating Business Success