5 Steps to reap the benefits of custom applications

Get started the right way to eliminate the risk of running into challenges down the road

Tempted by the benefits of custom applications but hesitant to get started? You’re not alone.

When it comes to automation and custom applications, opinions and experiences run the gamut from “best decision ever!” to “never again!”

On the one hand, many organizations have embraced the benefits of being able to tailor off-the-shelf applications to their specific needs. They are reaping the value of having captured corporate IP and have locked it into their processes, gaining a competitive edge that their competitors can’t buy. Recent data shows that as much as 75% of companies use some form of custom application code.

At the other end of the spectrum are those companies who won’t consider using custom applications. “Never again!” they say. They had tried to implement a custom application in the past and were burned by the experience. But at one point, they too saw the potential value of a custom application. In fact, at Maya HTT, we’ve not yet heard from anyone who thought that using an application suited specifically to their needs would be a bad idea – although some consider it too difficult or costly to try.

Automation speeds up processes by saving time. That much is clear. So what would cause these companies to shy away?

Typically, it boils down to the following:

  • The upfront of cost of writing a custom application is too high.
  • Maintaining custom code is costly and slows down off-the-shelf updates.
  • The belief that only software companies can write custom applications.

Let’s explore and address these potential challenges to ensure they do not outweight the obvious benefits of custom applications.

Step 1: ROI analysis

Before starting a project, always perform a return-on-investment (ROI) analysis.

It’s one thing to see a clear need and a potential solution, but you must also understand the true cost of the complete solution. If the ROI analysis doesn’t show a clear benefit, then it doesn’t make sense to move ahead with the project.

Pro tip: Don’t forget to factor your own time into the equation. If you will have to spend months coding, you need to account for it in the ROI analysis.

Step 2: Develop to MVP

Do just enough to satisfy the need with a minimum viable product (MVP).

It can be tempting to keep developing once the initial concept has been created, but before adding new bells and whistles, go back to step one. Take another look at the ROI and update it as more features are identified and planned.

Step 3: Plan to maintain

Doubly important is planning to maintain the code.

These days, if you buy an out-of-the box application, it will likely be either subscription based or it will have an annual maintenance cost.

Software must keep up with the environment it is running in – and this is constantly changing. Whether the OS changes, other applications are updated, or security vulnerabilities are discovered, you will need to make changes to keep your applications in synch.

For example, a software upgrade or an OS change could break the application and cause delays while a fix is found. How can you reduce this risk?

Step 4: Anticipate and prevent

Upgrades and OS changes are a fact of life, so plan for them.

Make sure that the IT department knows about any custom application code and conducts an impact analysis for future upgrade planning. If a custom application is going to be affected by software upgrades, knowing early gives your team the time needed to test, update and re-test.

Step 5: Automate your automation

Most of the effort that goes into maintaining an application is spent on testing and fault finding. Reducing the need for these tasks, can save significant effort and cost. Writing robust tests for the application code at multiple levels will save you time and expense down the road.

Integration tests

At a high level you can write integration tests, an automated version of what might also be called user acceptance tests (UATs). This testing takes a set of input information, perhaps files or table data, setting any user controllable settings and options, and then runs the application. After that, you must check the output against what was expected. If you already have a UAT test, planning to automate this is usually the easiest step when adding tests retrospectively.

The test framework you build should allow you to set up a scenario with the correct input data, to store and action the user options, and then to verify the output. Typically, the easiest way to perform that final output verification step is to compare a known initial output with the latest test run, ensuring they are the same or close enough to be considered the same.

With integration tests in place, if the OS or another application being interfaced with is updated, you can run the integration test suite to find out very quickly whether the change created any issues. However, the results from integration tests are black and white. They will tell you if a scenario ran correctly or if it failed. Finding where the fault lies requires further digging. That’s where unit testing comes in.

Unit testing

In this context, a unit is the smallest measure of functionality of your application, or a basic function within the code. The function, given a set of known inputs, is expected to give certain outputs or behaviors.

Unit testing is very similar to the integration tests but at a micro level. If your tests are well structured, you should see an integration test fail and then one or more unit tests fail. You will gain a better understanding of why the scenario had a problem, and then you can concentrate on that area of the code to fix it.

Retroactively adding testing to a project is seldom easy. It helps if developers structure the code in a way that makes testing easier.

Testing should be part of any project from the get-go. Therefore, it should be factored into the initial ROI. This will generate more up-front costs, but you will save time and money in the long run.

By performing an ROI analysis, planning for maintenance, and integrating an automated testing framework, you can keep your custom application projects under control.

Following these steps, you will have a clear view on the costs and benefits of your project, and you will be sure to avoid that traps that have led others to declare “never again!”

If you need help anywhere along the way, reach out to a Maya HTT expert. We’re here to help.

Contact a Maya HTT expert

Subscribe to our Newsletter