jump to navigation

Build vs. Buy Revisited July 11, 2008

Posted by Jeremy in Development Process.
Tags: , , , , ,
1 comment so far

I wrote the original version of “Build vs. Buy” some time ago and realized that I it needed some work after rereadng it.

Build

I believe that the information that I provided for purchasing a solution still holds true.   Much of the problem with purchasing a solution revolves around the fact that in many cases you will need to mold your business to fit the software.

Now, I will qualify that there are definitely solutions out there that can be customized to meet your needs by the software company.  In this scenario you will need to work with the vendor to find out the customization capabilities of the software.  At this point it becomes much more like outsourced build.

Internal Build

This method is still a viable option but I believe that it takes a significant investment in order to successfully acheive the desired results.  There are actually a few problems that will arise (on top of the previous list):

Lack of internal resources

Many businesses simply do not have internal resources to be able to handle the life cycle of a new development project.  In many cases, they also may not have the resources to help them determine what resources they need.  In is a catch-22 situation.  In order to staff a new development project you really need someone who has experience in new development projects.  It can also be quite difficult to find the people with the right skillsets with out someone to validate that they actually have the skillsets.  This can be a very difficult situation and it gets many companies into trouble.

Lack of internal process

For many businesses who have not done new development or it has been a long time, they do not have processes in places to work through the development lifecycle.  This takes considerable effort and thought to implement.  Although many businesses choose not to do it, it is extremely important.  Without the proper process in place to do analysis, design, development, and testing the project can be drastically delayed if not fail.

Lack of IT Resources

In today’s IT market, it can be very difficult to find the resources that you need to complete a development project.  In many areas of the United States there are IT shortages.  This means that although you have good intentions of hiring a senior level developer to help, you may have a difficult time filling that position (either as a full-time employee or even a contractor). 

Cost of IT Resources

Because of the demand for IT resources, the cost to get good resources is definitely on the rise.  Based on estimates, that is not going to change in the foreseeable future.

Outsourced Development

Based on the reasons above in the internal build, I personally believe that outsourced development is going to continue to grow. 

**Please understand outsourced development and offshore development can be different things.  Outsourced simply means someone else is doing it, preferrably a software consulting business.  It can be either domestic or overseas.

Ability to retain skilled resources

An advantage that outsourced companies have is that all they do is develop software so in many cases can afford to keep more skilled, experienced, and expensive people on staff.  For many businesses, the price to retain those resources is simply too much.  On the other hand, if they can pay the firm to use the resources and build the solution and then they are done, it can be a viable option. 

In most cases experienced, skilled resources can also deliver the project in a shorter timeframe with less time required for testing and rework.  This is because the resources involved have typically completed many projects before and they have worked out their process. 

Reusable Components

Another advantage that outsourced build companies can have is the use of reusable components.  Because they are writing software all the time, they are running into a lot of scenarios where they can build components that can be reused.  Examples may include: data access components, logging components, document management, etc.  This will typically reduce the expense and timeframe of a project because they are pre-developed and pre-tested.

Summary

This post definitely came off sounded biased toward the outsourced development option and quite honestly I think it is for a good reason.  I think in many cases outsourced development shops are better positioned with resources, experience, and their development processes to complete projects more efficiently than many businesses are.  This is mainly because most businesses are not development shops.  It is not their focus.  It is no different that outsourcing your printing, marketing, cleaning, lawn care, or whatever.  In most cases the companies that focus on a specific task can acheive the desired result cheaper, faster, and easier.  This is simply due to having the necessary resources and the necessary experience.

I hope that helps.

Advertisements

Build vs. Buy July 10, 2008

Posted by Jeremy in Development Process.
Tags: , , , ,
add a comment

**8/18/2008: I have added an update to this article: Build Vs. Buy Revisited

This is an article that I wrote some time ago.  I hope that it helps.

Software is becoming a more and more important part of every business as the needs for data become larger and larger. The software that you run also can make you more efficient thus more profitable if it suits your needs. It sounds simple but how do I make that happen?

Should I build or buy my software solution? It is a question that has divided IT and management at businesses for years. The question has people standing on both sides of the fence and many who sit right in the middle. Most companies at some point have to make the decision.
This is not a simple decision to make, but it is much easier if you can understand the factors that go into the decision. Each project is unique and will require some thought to make the decision that best suits your company’s needs.

Definitions
Turn-Key Solution – Solutions that you can take out of the package, install, and begin using.
Buy – Purchase a turn-key solution from a third party vendor to meet your needs. This process usually entails finding vendors, interviewing them, watching demonstrations of their products and wading through the promises of features.
Internal Custom Build – Hire development resources that can build and implement a solution based on your customized needs. This process can involve either hiring resources directly as full-time employees or sub-contracting resources. Directly employing the resources can include searching through resumes, interviewing candidates, offering jobs, and all of the human resources issues that go along with employment. Sub-contracting can be every bit as challenging due to having to find reputable sub-contractors or contracting companies to provide resources.
Outsourced Custom Build – Employing a third party to build and implement a customized solution to suit your needs. Much of this is very similar to the buy option. You will need to find and interview vendors and then sort through information to determine if they will meet your needs.

Questions about your needs
In order to determine which solution best fits your needs you will need to answer a few questions about your company’s needs. A list of the questions to begin your decision making:

What is our timeframe?
What is our budget?
How much customization is necessary? (Now and in the future)
How much oversight do we need to have?
How would we like to deal with system upgrades?
Can we create detailed specifications of how our business runs?
Do we need control over the software?
Obviously, this is a subset of the questions that you would need to ask in order to define which solution but they are quite important ones to consider. Each one will help make the determination easier.

What should I do?
I can’t answer this question for you but I can assist you. Some of the key pros and cons for each type of solution include:

Pros for Buy:
Usually can have the software running in short timeframe
Lower initial cost
No need for development staff
Support typically provided by third-party

Cons for Buy:
Lack of customization to your needs
Updates are on third party’s schedule and priority
Typically no onsite support
Your prioritized against other client’s needs
Pros for Internal Build:
Solution is customized to your needs
On-site support
Oversight
Updates on your priority and schedule

Cons for Internal Build:
Need for development staff
HR issues
Hiring technical staff can be difficult
Longer deployment timeframe than buy

Pros for Outsourced Build:
Solution is customized to your needs
Possibly on-site support
Typically updates based on your priority and schedule
Oversight
No HR or hiring issues
Specialized Resources

Cons for Outsourced Build:
Typically highest cost
May compete with other client’s for resources
Longer deployment timeframe than buy
Dependence on third-party

Summary
The buy vs. build decision is a decision that causes headaches for many companies. This is due to the fact that there are many competing interests that affect the decision. Another thing that makes this decision difficult is that each project has different factors to consider. This means that each project will require that you analyze each project and make the decision that best suits the project’s unique needs.
It is my hope that this article can assist you in at least starting the decision-making process in the future.”