Buying software or Building software



A common problem for many companies (or should I say businesses) to decide whether to buy or build software. Now this is too complicated to decide what the best option is. As we all know a company will have a core business focus that it operates on. All companies will have a difficult decision to make either to buy or build. Let’s consider different scenarios.
Note: “GardCarer” is not a real company and "GaintCRM" is not a real software.

“GardCarer” is a small company established in 2003, core business is talking contracts/one-off home household needs gardening. GardCarer has grown so much and it is becoming difficult to maintain all data in excel. GardCarer has got a small IT department. In Jan 2010 GardCarer decided that it needs a software that could reduce lot of manual work, automate certain processes, allow field worker’s to have up-to-date data about tasks, track customer complaints, cope with increasing customer base, handle customer adhoc request, easily integrate to accounting software etc.

Buying software

GardCarer IT department has decided that they will not be able to build such software for various reasons such as not enough resources, not enough budget, risky and is too complicated. So they have decided to research the market and find software that suits their needs. Finally IT department has decided to go with GaintCRM. IT personal has given a presentation at GardCarer about GaintCRM demonstrating ROI metrics over a period of 5 years. All stakeholders at GardCarer are very impressed and a decision is finally made to buy GaintCRM.

Planned



In March 2010 GardCarer purchased GaintCRM. It has taken 6 months for building the required infrastructure, getting the training completed, and partially migrating data from old to new system. By August 2010 GaintCRM is ready to be used by all personal at GardCarer.

In November 2010 there were many complaints from sales, marketing, support, field workers about GaintCRM being not user friendly, unable to track customer complaints, not able to track emails to/from customers, unable to customise tasks etc. By March 2011 all teams gave up hope of getting rid of GaintCRM as company has invested so much in time, money, resources etc. Now its November 2011 all teams have to do extra manual work to make GaintCRM work. After 2 years the ROI which they have expected had actually not met. In general there will be a small deviation from planned to actuals but in this case there was huge deviation.

Actuals



Building software

Consider for instance the case of “GardCarer” IT department decided that they will hire extra resources and will start building software that will satisfy their business requirements. IT department now has to consider various factors such as infrastructure, technology, database, tools required etc. Gathering all requirements, generating use cases specifications, design specs, architecture specs, developing, testing and finally Go-Live. Also in this case IT has presented various options that shows predicted ROI and the best option is depicted below (also named software as "GaintCRM")

Since this project life cycle is using wafterfall model the return will actually start after 2 years but will much higher than bought because all of the requirements were considered and then actual software is build. But consider the case where the requirements are getting changed based on customer demands, managing IT resources becoming difficult, managing various other risks etc. Because of various factors the "GaintCRM" delivery date which is supposed to be Mar 2011 has got extended to another 6 months. Finally "GaintCRM" is a Go-Live in August 2011. Also since the system is new, all staff members needs to get trained and IT should now consider migration old data into new system etc. Lets look at the ROI of actuals now



Conclusion

There are cases where buying/building has been a disaster and also cases where buying/building has succeeded. Choosing the right option at right time is key to success for any company or business.

In case of "Buying Software", a company should first try and see to what extent that will fit into their day-to-day business. sometime the default trial period provided might not be sufficient, then you should be able to speak to product owner and ask for extended trail. Until a company or business is fully satisfied that product is going to work 100% do not purchase the software. Companies or Businesses such as Banks, Hospitals etc mostly buys software.

In case of "Building Software", Agile methodologies should be followed with small sprints. With each sprint delivering a set of features, system usage will start much sooner. As part of building software various 3rd party components should be considered which will make development faster, provide UI consistency, quick support etc. Companies such as Google, Apple, Amazon etc builds all their software.

Some times best of both might be required. Consider “GardCarer” has build the system and now they want business process integration with other systems (ie.. vendors, branches etc), the best approach is to buy an enterprise service bus framework/server such as BizTalk, NServiceBus, WebSphere ESB, Mule ESB etc instead of building it.

Architecture, of all the arts, is the one which acts the most slowly, but the most surely, on the soul.
- Ernest Dimnet

top