Internal Software Development – 5 Things To Consider



5 Things To Consider Before Creating An Internal Software Development Project

There are many reasons to “home-grow” your own software solutions. It seems the largest driving factor of home grown solutions is: control. Your company’s abilities to control the software requirements, design, implementation, support and maintenance of a software solution is a very compelling advantage to home grown solutions. Control is essential when creating software that drives the mission critical aspects of your business. We all want control, so why not always use a home grown solution? It isn’t really a question of why, but rather, when. In many cases companies don’t consider the full costs associated with a home grown solution. The cost of labor (IT and non-IT) and lost opportunities can quickly outpace the benefits of a software solution. Here are 5 things (besides direct costs) you should consider before embarking on a “home grown” internal software development project.

1. How Much Control Do I Need?

This is perhaps the most important question to ask yourself. As stated in the introduction, control over your software when it is the “secret sauce” of your business is essential. For example, if your company is a software-as-a-service (SaaS) provider, building your own software from scratch provides you the greatest chance for success, especially when trying to provide your customers with a competitive product and service. However, many say, “Since I already have software developers, I will have them address all my software needs.” But do you really need control over all your software needs?

2. Are We Reinventing the Wheel?

During the analysis phase of any software project, it is necessary to evaluate 3rd party solutions to determine if one already exists that can perform the same function of the project you are looking to undertake. In many cases, 3rd party options will exist, and the evaluation of cost, features, and function should help determine if it is more cost-effective to purchase a 3rd party solution. Many project managers discount this step or skip it altogether. Since most software developers like to control the software solutions, they often try and dissuade management from using 3rd party software or components. Good software developers will embrace 3rd party solutions if it means they don’t need to develop and maintain a particular component of their solution (even if it is an internal component).

3. How Long Will My Software Solution Be Relevant?

Keeping your software solutions relevant is a very difficult task. In many cases, after the completion of a software development project the developers move on and only address critical issues and bugs as they are reported. The assumption that the software must be functioning as expected if no bugs are being reported is a faulty one. End users often will change their behavior to compensate for system shortcomings and defects. This is known as the “workaround” and the software is considered to be running “fine” because there are no defects being reported. “Workarounds” tend to introduce inefficiency and cost to a process, and over time things begin to add up until these costs have essentially erased the benefits of the software.

4. Is This the Best Way to Use My Resources?

What resources are we talking about? Money. Everything that you use to create your product or service can (or should be) measured in money. This would include all your assets, equipment, time, and – as ruthless as it might sound – your people. Speaking specifically about your software development team; is it the best use of your money to have them reinventing software that already exists elsewhere, just so it can become irrelevant in a couple years? Obviously this question is loaded and doesn’t consider all the information when deciding how to spend your development dollars. To avoid missed opportunities, you should always consider what else your development dollars could be spent on. Could your developers be working on strengthening your core product and services?

5. The Hybrid Solution

The likelihood that a perfect 3rd party application exists that fits all your needs is pretty slim. Companies that properly manage their software development and evaluate 3rd party software providers typically fall into a hybrid model of using 3rd party software to enhance their own custom software development projects. Finding a 3rd party solution and recognizing that it can actually save you time and money is critical to controlling your software development costs.

Conclusion

Management has the responsibility and duty to set the direction and preferences for their software development teams. Keeping your eye focused on the end result while balancing the factors of control, best use of resources, and validity of your software takes a concentrated effort. Pulling in 3rd party software can and often is the best way to assist in achieving your goals.


This blog post is an abridgment. Download the full IAG white paper, Home Grown or 3rd Party Assist, below.

Download White Paper