To Code or Not to Code: Is Custom Software Development the Right Answer?
Nearly every innovative company faces this decision as they grow: Do you stick with off-the-shelf (OTS) software for your enterprise and business process needs, or do you invest in custom software development? Do you deal with the daily workarounds to get OTS software to work for you, or do you sink resources into getting some snazzy program that includes fancy analytics and business intelligence data?
What makes companies consider custom software development in the first place? Developing your own custom software might actually make better business sense for your company if you:
- Have business needs that cannot be completely answered with a commercially-available product
- Need features other software products do not offer
- Have tried existing software, and the complications created by trying to force OTS software to fit your business needs outweigh the advantages
For all these reasons, a custom software application can be a promising alternative to what’s available on the market for your business today.
What is custom software – and what are the advantages?
Custom software development is the creation of specialized software applications that fulfill a specific request or task. An application like this could be used to fulfill one purpose for your organization, or it could encompass all your business processes and integrate them together. It can be as comprehensive as you like. Custom software is typically designed to meet the specialized requirements of a group of users or an organization better than what traditional or off-the-shelf software can.
For example, imagine using a flat-head screwdriver to tighten hex-shaped bolts. The short answer is that you can’t, but sometimes you’re forced to use a flat-head screwdriver because a hex-shaped tool isn’t available. With enough jury-rigging and bruised knuckles, you might be able to secure the bolt with the flat-head screwdriver. But is the bolt really secure? How do you save time and effort (and skin) the next time? The solution is to use the right tool for the exact task. Sure, it might be expensive at first to have to go out and find (or make) the right tool, but in the long run, the task will be easier every time you do it.
That, in a nutshell, describes the advantage of creating your own custom programs.
[optin-monster-shortcode id=”mjoyl9uclfzo8nin”]
How do people use custom software?
What are some real-life ways people apply custom software solutions? How do you know when what you do is different enough to warrant taking the plunge?
Take this case study of a scientific company we worked with at RTS Labs. An application like Microsoft Word is a well-known tool for writing, editing and document preparation. Word has features that make many tasks easier: spelling and grammar checking, printing labels and envelopes, and even producing professional-looking publications.
However, when our client wanted to produce medical reports for its customers, none of the word processing features of Microsoft Word or similar products could help in this particular instance. They had very specific needs for how the reports needed to pull information and how they needed to look in order to make sense to the end users. Rather than adapting commercial software to complete this task, this company worked closely with RTS Labs to come up with a custom solution that securely takes its medical file data and produces the reports directly in Acrobat PDF format.
Another example is an investment banking firm that came to RTS Labs, because gathering the data they needed was taking too long. There were at least three major pain points:
- It took a long time for the banking analysts who were in charge of the data to aggregate the information from so many different sources and then compile the information in Excel.
- Working with the data in Excel was a cumbersome process that used up even more time.
- Moving the data from Excel into an easy-to-read pitch deck that could be presented and easily understood by VPs and other executives took more time still and often yielded unsatisfactory results. Reports often didn’t make sense, because the underlying data would be disconnected from the reports, or the format of the reports was confusing.
In short, getting data was taking way too long, and higher-ups still weren’t getting the information they needed to make important decisions.
There were additional challenges, too. This firm was subject to extra privacy constraints and regulations, because they are in the financial industry. So, our business intelligence and data analysis solution had to work within the confines of the security software and protocols that the firm already had in place, as well as within certain federal regulations. Proper onboarding and adoption of the new system by everyone in the company was important, too. Humans tend to be resistant to change, adding a behavioral challenge to overcome in addition to any technical challenges.
RTS Labs created a customized system that employees could access using their existing single sign-on log-in information. The new dashboard gives them the business intelligence they need nearly instantaneously. Data can be updated with a click of the mouse. Business analysts can still get the data in Excel if they choose – and they can still update the information in Excel with the click of a button, if they need to. The dashboard is integrated for use with self-service business intelligence visualization tools, such as PowerView and Tableau. That means anyone in the company can now create beautiful, easy-to-understand, and, most importantly, accurate reports and presentations.
In both these examples, the companies decided to develop and implement specialized software, because commercially-available software products:
- Did not fulfill their specific requirements
- Would have proven too costly or too cumbersome to adapt
- Were not designed to meet the business needs of a specific entity or organization
When correctly implemented, custom software development provides an advantage that off-the-shelf software does not: It fulfills a business’s exact needs while saving time and money in the long run. Once the software is in place, you can complete your tasks, run your reports, or do whatever the software is meant to do with more efficiency without sacrificing quality.
How does the development process work?
In custom software development, the software developer and the client work closely together to decide what the planned software’s purpose is, who its intended users are, and what the exact business requirements are that the program should meet.
First, you have to carefully consider if what you want to do truly requires custom software development (which is what this guide is intended to help you with). Is it really going to be worth the investment, or do you just want to be able to say that your company has custom software? (Because in some start-up circles, having custom software is almost a status symbol of sorts.)
Decision-making factors include:
- What business or industry are you in?
- Do you have specialized information security and privacy concerns
- How much data is involved, and how complex is it?
- What are the existing commercial software products already in use? Are they rigid and lack scalability?
- What are your budgetary and financial constraints?
As difficult as these factors can be to weigh, as you go through the decision-making process, at some point, the benefits should be clear. Your investment in custom software development should:
- Connect your employees, customers and partners.
- Manage your key processes and clear bottlenecks.
- Leverage your business’s assets and products.
- Reduce cost, reduce time needed to complete tasks, and increase overall efficiency.
- Help your business discover – and handle – new opportunities for revenue and growth.
Once you decide to take the plunge, custom software development uses a multi-tier, multi-platform approach that encompasses your business operations and can touch more than a single piece of software. Your entire environment is under scrutiny in this process, from any online forms completed by your customers to data collection to invoice and remittance processing to producing a financial statement mailed out by a commercial printing operation. Working with a software developer, the entire business process is mapped end to end.
Conversely, a custom software application could end up being anything from a small piece of your process to an enterprise-wide program. It could include a self-contained website, a mobile application or an improved business process. For example, you could end up developing a new way to compare prices and apply for auto insurance using a mobile phone app.
Custom software development versus OTS products – the real difference
Custom software development is not the same as taking an existing piece of commercial software, say Microsoft Excel, and adding script code or macros so the program can handle a specific form or automate a process. There are many commercial applications that handle generalized tasks, from databases to data analysis to report writing. General applications are tools for generalized processes and either have to be used “as-is,” forcing you and your business to adapt to their functionality, or be adapted, involving custom coding to fit your requirements. These can be expensive routes, since the purchase of OTS products requires licensing, and customization of these products are often a separate expense (and can sometimes also void warranties or be illegal).
Take our earlier example of using a flat-head screwdriver to tighten a hex-shaped bolt. Taping popsicle sticks to the end of the screwdriver might make the tool resemble a hex nut driver, but it’s still a modification – and a poor one at that – to an existing tool. Wood does not have the same strength as steel, and your modification will result in wasted time and splinters.
Custom software development is exactly as the term implies: software designed to fit your business, your needs and your process. It’s better to invest in a product that works with your business requirements, saving your company time and money, instead of adapting a flat-head screwdriver to fit a hex-shaped bolt.
When you develop custom software, that software is created to fit a specific business need, fulfills defined requirements, operates within certain parameters, and is designed with a specific user audience in mind. You and your stakeholders sit down with the software developer to determine scope, requirements, testing, and what ultimately the product will accomplish.
Delivery of the finished software tool or package is not the end of the story either. A custom software developer does not drop off a CD-ROM or email a file and walk away. Usually, you keep your developer on contract with you as you implement and start using your new software. Once you see how the program is actually used, the developer can make updates and tweaks. The product becomes more useful through the delivery of enhancements and improvements. These changes come from communication between the software developer and you. Just as Microsoft Word has improved through its numerous releases, so too does custom software.
Custom software development is tailored specifically to your business requirements. The project can connect many different processes, integrate with existing software, and scale as your business demands increase. The expense of custom software development is based on careful consideration of measurable savings in your time and money.
[optin-monster-shortcode id=”mjoyl9uclfzo8nin”]
Who needs custom software development?
Some industries are more likely to need customer software than others. Consider the following questions.
Is your business in an industry that must closely adhere to government regulations or is concerned with security and information privacy? Healthcare, education, e-commerce and financial industries are good examples in this category.
Does your business have specialized requirements, business processes, industry standards or internal procedures that OTS products cannot fulfill? Healthcare is one example of an industry that must adhere to rigorous standards for patient privacy and the preservation of medical records. They also must follow standards for accuracy.
Does your business use different components that share data or communicate with each other, or does important data have to be moved from one shared environment to another? A legacy system that stores data files in FileMakerPro, connects to a mainframe banking system written in COBOL, and must deliver financial statements to thousands of account holders online and in the mail is a recipe for complexity. This is a great example of where one seamless custom program could connect all these business processes and make the process easier – and probably more accurate, too.
Who generally doesn’t need custom software development?
On the other hand, you don’t want to jump the gun and sink a lot of money into development when there are simpler solutions.
You’re looking for a “magic pill,” because your company’s data is out of control, your business processes are disorganized, and your staff is overwhelmed or not adequately trained. The problem here could be your organization or your onboarding processes. Custom software development won’t fix that. Consider isolating difficult processes, focus on solving recurring problems, and investing in the right training for your staff. If you still find holes in your process, then you could start looking at custom software development. However, as mentioned above, your entire organization and your business processes will be under scrutiny. Make sure your house is in order before turning to custom software to solve your problems.
Your company wants a branded software product that announces to the rest of the industry, “We’ve arrived!” when an OTS product will do the same thing at less cost. Consider conducting a cost-basis comparison analysis. Buying an OTS product and customizing it could improve your company’s efficiency and bottom line.
You want to circumvent purchasing several OTS products by commissioning the creation of a single software product that does everything. Sometimes, if you have a lot of moving parts in your business, it makes sense to create an overarching ERP program for your company. However, you may be able to forgo large, expensive, all-encompassing software development efforts by breaking down business processes into smaller blocks of work that are much more easily tamed. If OTS software is handling the processes without a lot of rework by humans in between steps, then that might be the better choice.
You have an idea for the next Twitter, Slack or similar “killer app.” This isn’t custom software development, but custom software application development. Look to RTS Labs to help differentiate between the two, to help develop the right approach, and to partner with you in the creation of these products.
Questions to ask yourself as you make the decision
As you go through the process of comparing custom software development versus OTS software solutions, ask yourself:
Am I in an industry that typically relies on custom software and application development?
If you are, that should tell you something right there. There may be something about your industry that makes developing custom software a better option. Find out what your competitors are doing and why.
If others in your industry don’t typically use custom software applications, think about looking into it for yourself to see if it would give you an edge over your competitors.
Do I have specialized, industry-specific needs that are required to run my company properly?
If you have higher-than-usual security and privacy concerns, or you simply have unusual needs that aren’t found across many other industries or organizations, custom software development could save you a lot of time, money – and most of all, aggravation. Why waste your precious resources on workarounds trying to force OTS software to fit your needs when you could take the same time and money (or less in many cases) and have what you need from the very beginning?
On the subject of security, keep in mind that many security breaches happen as the result of hackers taking advantage of known weaknesses in OTS software. Customized software development could help address your security concerns – if you choose the right developers to create your software.
That’s why many companies within specialized industries, such as finance, real estate, healthcare, education, e-commerce, and retail, to name a few, often end up working with someone to produce custom software.
Am I already using a lot of different programs in my daily operations?
Having multiple programs that may or may not be compatible with each other to handle your day-to-day business processes is usually a sign that it’s time to look into custom software development.
Think of all the time it takes for someone to take information from one program and re-enter it into another program. How much greater is the risk for human error and security weaknesses when humans are the ones connecting the many different processes across your organization?
Now, imagine if many of those transactions could be automated and your entire business could run through one program? Think of all the extra employee productivity you could tap into simply by freeing them from the burdens of unnecessary data entry, to name just one immediate perk. An integrated system would also give you more transparency into how efficiently your business operates, as well as better data from across your organization. That data could drive your business intelligence efforts and tell you everything from weaknesses in your processes to customer trends – in other words, information that will help you make better day-to-day business decisions. Which brings us to our next question …
What kind of data am I using – or would I like to use?
Depending on what kind of data you collect (or would like to start collecting) and what your data sources are, custom software could solve a lot of problems for you. From aggregating to storage to analysis, a custom software program developed specifically with your needs in mind will integrate all the pieces of your data puzzle. The software can also be designed to create attractive reports in a fraction of the time for the times when you have to present numbers to stakeholders.
Is scalability going to become an issue for us?
Are you growing – or about to hit a growth spurt? Or, on the flip side, are you in a fickle industry that goes up and down with some frequency, requiring you to scale back operations from time to time? If OTS can’t grow with you or be as responsive as you need it to be, then custom software development may be the way to go.
How dependent are my daily operations on this software?
If you need your software solution to be bulletproof and reliable, not only is that a good sign that custom software development may offer you better solutions – at least you know you’ll get your money’s worth out of it.
How much does custom software development cost?
Budget is always a concern, but we’re not just talking money. How much time will it take to develop the software and then implement versus implementing an OTS solution? How many people will you need to put on the project? What will training look like?
Also, OTS software often has licensing fees. What are those fees? Is it a one-time fee, or do you pay the fee annually? How many people would you need the software for? Where is your break even point when comparing OTS software and customized software? If the money comes out close to even, look back at the previous questions to determine if you want to invest your money in an OTS software program or in developing custom software for your organization.
Additional reading:
How is custom software development applied?
Custom software development can be used for internal business processes or for external customer-facing purposes. Take the healthcare industry, for example.
When a medical laboratory company came to RTS Labs, they were looking for a new way to connect patients and providers. They wanted a portal that patients could use to track their lab results over time for everything from basic blood tests, such as glucose and cholesterol, to more specialized lab tests. That way, patients could get a better snapshot of their health. The company also wanted the software to be accessible by mobile devices.
Some of the tricky things this software had to include were specialized security and encryption, since HIPPA regulations dictate that providers keep patients’ personal health information secure. RTS Labs also had to think about the user experience (including how patients might do with medical terms), how labs would be tracked over time, and how to present the data (i.e, charts, graphs, etc.) to make it easy to read for everyone.
They came up with a mobile-accessible program that allowed lab technicians to input lab results and send automated messages to patients who had signed up for the service. Patients could get their results faster without having to make additional phone calls to their doctors’ offices. The result was that patients became more engaged in their own health outcomes, which is a huge indicator in determining how well a patient will do during follow-up care.
The transportation and logistics industry also provides great examples of how custom software can create a competitive edge. RTS Labs did work for a fleet management company that provides maintenance for service and delivery vehicles. This transportation company was getting requests from customers for a better way to see the status of their fleets at a glance. These trucks had GPS tracking already, which meant clients could see when trucks were in a repair hanger location. However, customers wanted a way to see at any moment how many trucks were down due to mechanical maintenance and approximately how long they were expected to be out of commission, instead of looking up individual vehicles. This information could then help the clients track their own assets (the trucks) and make important day-to-day operating decisions, such as planning delivery and service routes.
In the end, RTS Labs helped this company create a tracking, logistics, and business intelligence tool, so clients can log in at any moment, set their parameters, and get a snapshot of where their fleet stands. By being able to see the status of their assets, the dispatchers at the company and their clients can:
- See which trucks are in maintenance and which are on the road
- Plan service and delivery routes better
- Track fleet downtime and then use that information to calculate lost revenue while trucks are in maintenance
- Drill down to minute details, such as why a specific truck has been stuck in one area for an extended period of time
After rolling out this new tracking dashboard for customers, customer loyalty and satisfaction soared. This new self-service tool improved customer engagement. Customers got the information they needed faster, and customer service reps could focus on other areas. This logistics company also gained a business intelligence tool for themselves for tracking their own performance and customer engagement.
Entrepreneurs with new ideas often find themselves looking at developing custom software early in their startup phase. Speaking of transportation and logistics, take Uber, for example. Uber was a startup in that industry once. They had new ideas of a better way to connect drivers with passengers, while letting drivers make some extra money in their spare time. Since no one had done this before, there wasn’t any software that could handle what Uber needed – an app for the passengers to get in touch with the drivers, a way to collect fares, and a way for the company to split the profits with their drivers, among other logistical challenges.
Given how fast Uber grew, they had the added challenge of needing something that could scale up quickly. Scalability is a really important factor for entrepreneurs. While you might be able to get away with OTS software for a little while when it’s 5 or 10 people in your garage, what’s going to happen when your company takes off? By developing custom software early to handle the logistical and process challenges you have in your new company, you can account for things like scalability in the design. It takes off some of the pressure of future growth – you know your custom software is ready for it!
For example, take our case study of a non-profit we worked with that also had a retail component to it. While this organization wasn’t a startup, the business intelligence (BI) work we did for them could apply to any new service or retail startup.
This non-profit wasn’t tracking memberships that had expired. Therefore, they weren’t contacting previous members to ask them to renew – one of the easiest ways to increase membership numbers. They also weren’t tracking gift shop sales. They knew sales went up during certain shows, but they couldn’t track their receipts in enough detail to prove the exact correlation between the special exhibitions and increased sales. That means they also couldn’t include those numbers when demonstrating their return on investment (ROI) for each show.
RTS Labs designed a data-gathering and business intelligence tool that not only linked all these pieces of data – the software also creates beautiful charts and graphs, so that the numbers are easy to understand for stakeholders.
These same benefits can apply to any startup that needs to track customer engagement in order to plan for future growth. From help desk issues, so you can track bugs in your new app or service, to retail sales to supply chain oversight, putting custom software in place early can help you make better day-to-day business decisions. And that can help you grow your business faster in the long run.
How to get started with custom software development
When you’re trying to decide which route to go – developing custom software applications or using OTS software programs – your decision basically boils down to:
- Is there anything on the market that can do what I need it to do? (Is OTS software even an option?)
- How long will that OTS software be able to handle what I need it to do? Is scalability going to be an issue later?
- How much does licensing cost compared to the cost of creating and maintaining custom software for my organization? Are the prices comparable? (Make sure to include updates to OTS software and service contracts with your developers in your calculations.)
- How volatile are my industry and the business climate? Are things likely to change drastically as I grow?
Once you’ve weighed the pros, the cons, and the cost of OTS software compared to custom software development, if you decide custom software development is the way to go, it’s time to choose a vendor to help you develop the program you need.
Vetting a vendor or agency for Custom Software Development
A lot of developers and agencies, eager for your business, may promise you the moon. That means it’s up to you to ask the right questions to determine if the agency is actually a good fit for you. Here are questions to ask of any potential developer you might work with, tips for getting the information you need, and red flags to look for.
Do they have the right skills for what you need?
If you’re looking for an ERP application and they specialize in mobile development, you already have a mismatch. It’s fine for agencies to have multiple specialties – and some of their extra skills may come in handy later if it turns you need something you didn’t know you needed. However, make sure in that list of specialties and case studies that they’ve done work similar to what you want to have done.
Write the right request for proposal (RFP)
Believe it or not, we see a lot of RFPs that don’t truly reflect the work that needs to be done. We see other RFPs that are too vague and don’t give us a good idea of the true scope of the project. When you write a strong, detailed RFP, potential agencies can give you a more accurate idea of whether or not they can do the work and how much it will cost.
Best advice – don’t tell the agency what you want to have done and how (e.g., we want a new program for tracking orders, and we want it written in this language with this many modules, etc.). Instead, describe in detail the problem you’re trying to solve and why you’re trying to solve it. It’s fine to offer a few suggestions for solutions or what your vision is for what will work best in your company. However, by leading with the problem, developers may see a solution you haven’t thought of based on their skills and experience. They could end up thinking of something even better than what you were thinking of.
Additional reading: 9 Essential Pieces Every Successful RFP for Tech Projects Should Include
Will their teamwork with my team?
Companies often hire developers to fill in knowledge gaps on their own development teams. However, not all agencies will work like that. They’d rather keep the work in house with the people whose work they know. Other agencies are flexible and even welcome the opportunity to work with new people in a specific industry. If you already have a team of developers and just need to free up some of their time or round out their skill base, let the agency know that up front.
Personality: Is your consultant a know-it-all or a teacher?
Consultants are supposed to know more than you do in certain areas. That’s why you’re hiring them. However, if they seem to act like they know more than you do about your own business – or they aren’t really listening to you when you’re describing key aspects of your business and what you need – then you may have a difficult working relationship.
Good consultants are often teachers, too. They’ll offer fresh solutions you hadn’t thought of, and they’ll be able to explain why they think their approach may be the answer. As long as communication is good between you, and they’re listening as much as they’re talking, that’s a sign that you’ll have a good working relationship.
Do they have experience in your industry?
This question is a tricky one. On one hand, you definitely want someone who knows your industry well enough to understand the nuances within your field, as well as any specialized concerns, such as security or specialized customer service expectations.
On the other hand, having someone who is new to your industry can also yield a fresh perspective and fresh solutions that no one has thought of yet. So, make sure they have at least some related or transferable experience. Then, gauge how quickly and easily they seem to become familiar with your industry and your needs. If you like what you see and hear, they could be a good fit.
Is the right work getting done, and are you confident in the final product?
Don’t stop vetting them once you’ve chosen them. As you check in on the progress that’s being made, are you satisfied that even when one of the test versions isn’t right, it’s getting better and closer with each iteration? Is their work leading you to the right outcome? If at any point you’re unsure, it’s fine to stop, re-evaluate, and sit down to communicate before moving forward. Or, if you need to find another consultant, that’s fine, too, as long as you give the one you’re working with a chance to make things right. Switching consultants or developers mid-project can be difficult, so do what you can to make things work with the developers you’ve chosen. However, if simple tasks are taking too long, they really don’t seem to get what you’re describing no matter how you explain it, or things are going down a wrong path, it’s still cheaper and easier in the long run to correct course earlier on than to have to go back and fix things later.
Additional reading: Most Costly Business Mistakes: 6 Red Flags to Look for When Vetting Consultants
In the end, do what’s right for you
Custom software development is great, because it presents an opportunity for you to get exactly what you want and need for your business. However, it also requires a significant investment of time and money – like so many worthwhile things in business. So, you want to make sure you do it right to increase your ROI and your overall satisfaction with the final product.
Whether you’re about to take the plunge and are ready to vet developers, or you just want someone to talk through the decision-making process with, reach out to RTS Labs to start the conversation. Take advantage of the diversity of experience on our team to gain some objective perspective on your own projects – no matter where you are in the process. Just as we hope this article has been helpful to you as you make this important decision, RTS Labs is here to be a resource for you. Contact us anytime.