Last night, someone asked me, “If you are to choose, would you choose a software package that comes off the shelf? Or would you want it developed from scratch?”
I paused and I gave an answer….. I said, I would still go for the development from scratch.
But in reality, there are lots of considerations that has to be made. Coming from almost 17 years in implementing software and infrastructure solutions in various companies, the following (based on my experience) should be considered:
a) Time and urgency of the application to run.
This holds really true. Is the application urgently needed? Does it affect your business operations wherein you lose money each day if it is not there? Does it adversely affect your productivity? If the application is there, will it help your business even if there are no customizations, and just initially have it running out of the box?
If this is the case, then another question will be asked. How long would it take for the base application to be installed and configured?
b) Does the packaged application system supports more than 70% of your business processes?
If it does, then it would probably work. What you may just be needing are some additions/customizations or even interfaces for reporting or customizations to support the other 20-30% of your non-supported business processes. If it only supports 50% or below, then forget it. You will have headaches just to make it work.
c) For the software package, are the program codes as well as systems design and logic documentations available for us to do the customizations in-house?
If they are, then good for you. You may have too many options on how to customize it. You may do it within your own team, hire contract programmers or even outsource everything.
But here is one bad news. MOST SOFTWARE PACKAGES DO NOT COME WITH THESE CODES AND THESE DOCUMENTATIONS. They are kept by the developer or by the software vendor as the ACE UP THEIR SLEEVE. By purchasing these codes and these documentations, YOU MAY SHELL OUT MORE MOOLAH, which costs MORE THAN THE actual software package.
d) How about support? Are they available?
More often than not, YES. They are available. But they come at a very STEEP PRICE. Most support costs from the software provider are computed on a PER HOUR BASIS and if you would sum them up, IT WOULD COST AROUND FOUR TO FIVE TIMES THE COST OF THE ORIGINAL SOFTWARE PACKAGE.
Another issue on the support is where is it located? Are they supposed to be located in your same location as where you are holding your business? Or in another country? If they are located in an another country, DO WE HAVE THE SAME TIMEZONE?
I had business complaining that their support comes from the States and it takes them a day to respond. Much more often, people from their internal support team would have to stay overnight, adding expenses on allowances and overtime, just to talk to their applications support in the States.
So where does it leave you?
As I have stated above, if the application is really not that critical wherein a business losses money each day by not having an applications in place, it is much better if it IS TO BE DEVELOPED FROM SCRATCH. Why?
a) The business can define what they need and how they need it, from the time the applications project is being concepted or planned. It will definitely save you a lot by doing so. ONE WORD OF CAUTION THOUGH, MAKE THE REQUIREMENTS DEFINITION AS PERFECT AND AS CLOSE TO WHAT YOU NEED THE FIRST TIME AROUND.
Work closely with your business analysts, system analysts, and project managers on this. It would be costly later if you forget to define something that you would need later on. And definitely, the analysis and design phase as well as the programming phase will be affected.
b) Do the development in-house or via local outsourcing firms from the same location as where you are operating your business. Why? to resolve support issues. If an application has bugs or goes down, then you can expect someone to attend to your issues immediately.
BUT ANOTHER WORD OF CAUTION. Studies have shown that it is more cost efficient to have an application developed via outsourcing firms because most outsourcing firms do their costing based on the package of work, not on a per hour basis. Having an application developed internally via employees would make you hire more employees, paying them more via salaries and benefits. By hiring in-house programming contractuals, you pay higher monthly rates, and the outputs or the results can be questionable.
I had the experience of implementing around 3 software packages. One of these software is from the States and two are from my country of origin. All of them are really difficult to implement, and proved costly, we spent almost three times the initial cost of the software. I also had the experience of having to implement application packages made from scratch, using internal programmers. Although it really takes a lot of effort, work, patience and time, it was more worth it. I had also utilized contract programmers before, but results were really so-so, and I had to shell out money just to pay for their hourly rates…Not worth it…. And, I had the experience of implementing a software developed from scratch using a third party development firm… Oh yeah….
And yes, if you would be utilizing a third party software development firm, just make sure that your contract covers everything, from start to finish. And make sure that you assign a really good project manager from your end to manage the project as well as do the proper coordinations with the third party software developer.
You are still not satisfied? Well, there is another solution….. OPEN SOURCE.
Most OPEN SOURCE software packages are downloadable from the Internet. And most of them support business operations. I have not seen a business segment not supported by an Open Source Software. And yup, these OPEN SOURCE SOFTWARE can be downloaded complete, with PROGRAM CODES, DOCUMENTATIONS and LOGIC DOCUMENTATIONS. If you would go this route, make sure that:
a) You have evaluated the software properly and
b) You have the resources to support the implementation (like programmers, analysts, etc.)
But then, there is always the option of outsourcing the support..