5 Questions to Answer Before Starting a 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? For example, do you need to control the software requirements and implementation of your accounting software? Most companies don’t, and therefore, they purchase an accounting package. This is because as a SaaS provider, accounting software isn’t part of your core business, it just makes your accounting easier and more accurate; so you build your accounting practices and processes around the features and functions of your chosen accounting software.
Control over your software is important, but only exercise it where you need it. Imagine the cost of trying to manage a software development project for accounting software, when you are not an accounting software provider. Don’t let the abilities of your software development team dictate whether you need control or not, let the business requirement dictate the need.
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).
You will find, however, that there are instances and circumstances that require “reinventing” in your own solution. Every company has unique “tweaks” and process preferences where management is unwilling to compromise and, therefore, must be accommodated in their software solutions.
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. As time passes and knowledge about the software solution is lost, “band aids” and “quick fixes” are usually introduced to keep the technology current with evolving processes, but those too can begin to turn the original software project into a conglomeration of several smaller projects bolted onto the original.
To avoid irrelevancy, evaluate how long the solution will be used for, identify timeframes for reviews and refreshes, and frequently speak with the end user pool to see if you’ve achieved a solution that works with them, not against them. Always remember, just because a software development project was finished on time and on budget does not mean it was a success.
4. Is This The Best Use Of Our 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. Is A Hybrid Solution The Right Way To Go?
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. Consider this:
Looking around for a 3rd party solution, might only cost $1,500 per web server. That’s over 20 server licenses for the same cost as developing your own.
In other words, you’ve just saved 500 hours of cost that can be realized as savings or shifted to other projects
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.
© 2018 Steve Lauer