An order of custom software with a side of cookies
Macy’s business is not just good but going great. Her online marketing campaigns have just ramped up and she has had a sudden influx of new enquiries. On top of an already solid customer base, new customers have come on board to take advantage of the exceptional services and products you can offer.
Unfortunately, the IT systems and processes she has put in place are starting to feel stretched as the increased workload is applied. Up until now, Macy has been successfully utilising a combination of ‘off the shelf’ packaged software products and physical documents. The ‘off the shelf’ software has broad adoption across her industry and had a low upfront cost, either an ongoing subscription or a perpetual license, that allowed access through a web browser or easily installed on a workstation. Some customisation was required to fit Macy’s unique business needs but it was quick and easy to setup and gave an instant productivity boost.
Under pressure to satisfy both her existing customers and new customers, Macy’s staff have been juggling different tasks across the different software products, double handling data entry, printing documents and completing them by hand before emailing them to the customers.
This is when Macy decides to make her first foray into the world of custom software.
After much research and many enquiries with software development companies, Macy is overwhelmed with technical jargon – agile methodologies, swimlane diagrams, continuous integration, SaaS, PaaS. Not to mention the disparity in costs and timeframes quoted to complete a custom software product to fulfill her unique business requirements. She eventually settles on an agency with experience in developing software for her industry at a reasonable price and delivered in good time.
Shortcut 4 months and the software is delivered. It works exactly as promised and it is a hit with her staff. The software performs the tasks of the old ‘off the shelf’ software but in a fashion more streamlined to her business. She no longer needs to compromise her business processes to the software being used.
A short time later, there is a need to enhance the custom software and grow the number of features available. It is at this time, that some cracks start to show.
Macy: It would be great if our software could automatically order cookies from the nearby café every morning for us.
Developer: Unfortunately, the software can’t do that. It was built to match your earlier requirements and these new requirements will require a complete rewrite.
Macy: But isn’t the software tailored to our business and therefore we should be able to add that additional functionality?
Developer: What we can do is implement your new feature but with a few changes that will make it easier. Instead of it automatically order cookies, the software can automatically remind you with an email each morning to order the cookies from the café each morning.
Macy: Thanks for the recent changes, but we have been finding that the automatic reminder is behaving inconsistently and is a bit slow as well.
Developer: Yes, we can have a look but it might be tricky to diagnose. You see, the software wasn’t intended to work like this, and the changes made were just a quick fix.
What Macy eventually discovered was that the custom software delivered was actually classed as ‘cookie cutter’ or ‘boilerplate’ code. To increase the rate of development and reduce the development cost, the development agency had utilised a software template that could be customised to a degree. Over time, as new requirements were raised, the enhancement and maintenance of the assumed custom software became difficult as it was created with some rigid assumptions in place. The foundation for which the software was built on may have suited a number of similar businesses before Macy, but her business had some unique differences that weren’t compatible.
There are obvious benefits to boilerplate code whereby it reduces the cost of development and the time taken to complete. It can also be considered more mature, having been used in a number of previous software products and therefore potentially having less issues to resolve. On the other hand, using boilerplate code instead of a complete custom solution built from the ground up may limit future enhancements or customisations specific to your business. Making the necessary changes to accommodate these requirements may increase cost in the long term.
When exploring the option of having custom software built specifically for your business, one of the important questions to ask is whether the software will be built using a common boilerplate or built from the ground up.
If you would like to understand more about the development process for a custom software solution, contact the experienced development team a Qubisoft who can help to make an informed decision.