Once upon a time, I was an idealist, and I abhorred the thought of developing a quick and dirty web application. Quality was its own reward, and the sound architecture and careful construction of a well-crafted site ensured it could support ongoing enhancements over a long, trouble-free life.
Writing that just now, I must admit I’m partial to doing high quality work, but having adopted a more business-centric approach to development, I’ve had to face the numbers. An investment in technology must provide a positive return on investment, and sometimes that means only a small investment is justified. For example, a small business brochure website should not cost a lot of money to develop, as it may not generate a large increase in revenue.
A current project is a business to business application to manage transactions between a manufacturer and its distributors. The manufacturer is growing rapidly, and we started out planning an application that would serve its needs over the next two to three years, during which time lots of changes would be required. The custom solution was based on a lightweight framework and well-supported modules allowing us to quickly adapt to growing needs. It was an elegant solution, and I was keen to deliver it.
Before we signed off on the project, the manufacturer let me know they were raising significant capital, and the potential investors demanded an ecommerce system be put in place very quickly, more quickly than we could deliver the planned solution. We went back to the drawing board and proposed a sort of prototype, pieced together to meet the initial requirements. Not only could we deliver within a few weeks, but the cost was less than half of the that to deliver the same requirements with the more flexible framework. The client was happy, saying they are willing to throw away the site in a year. They would replace the prototype with a more robust and scalable version, as the return on investment would have been earned that quickly.
I don’t know for certain, but I had the feeling that the client’s ability to quickly implement the system played a part in securing, or at least satisfying, the investors, which itself would have justified the cost of the project.
The lingering idealist in me still has a nagging worry that the client may not be able to throw away the prototype and replace it, leading to decreasingly efficient efforts to maintain it. It takes a strong stomach to decommission a working application that’s only a year old. Already, we’re entertaining enhancement requests that stretch the system. The challenge will be to present a convincing case for replacement at the right time, and that will allow me to celebrate the choice to go quick and cheap with the initial project.