October 1, 2013 by On-Site Magazine
In a diverse field like construction, it’s very difficult for software vendors to provide features that meet the needs of every company. This leaves many contractors with functionality gaps as they conduct their day-to-day business.
Perhaps a job-scheduling module is awkward to use for certain types of projects. Maybe some payments have to be made manually. When these shortfalls get out of hand, many contractors will consider engaging the programming trade to customize their applications, or in extreme cases, build new ones from scratch.
There are some projects, particularly those that are peripheral to the corporate systems, that are relatively straightforward. Building a special web page or creating a mobile app that gives supervisors access to the scheduling system, has become almost routine.
“A lot of development tools out there are getting so easy to use that they almost don’t require a developer’s skill anymore,” says Randy Hearn, senior research analyst at London, Ont.–based Info-Tech Research.
Core applications that handle corporate data are a different matter. Bringing in programmers here calls for a much greater commitment from IT and the management team commissioning the software. Programmers need a very thorough understanding of the company’s requirements, objectives and existing environment.
“When we work with clients, we start with a high-level roadmap,” says Greg Betty, CEO of Toronto-based Intelliware Software Development.
One of the keys is eliminating all options for using software that’s readily available before selecting the build option. “We look at the functions they need to support and what is available, and then we help them prioritize their requirements,” says Betty.
Integration, or getting diverse software components to work together as a seamless system, is the most common challenge.
While custom interfaces look simple on a block diagram, they need to be managed on an ongoing basis. For example, if a company creates a custom interface between a scheduling module and the accounting system, that interface may need to be updated whenever either system changes.
“Your hand is forced in many circumstances, maybe due to an operating system upgrade, compliance with some legislative requirement, or some other event. Integration points break very easily,” says Betty.
It’s essential to have an internal team charged with the stewardship of the code once the project is completed. “They’d know where the code is, the nature of the integration points, and how the software interacts with the organization,” says Betty.
For smaller firms, solution providers can provide virtual staff to execute this function on a contract basis.
The key is ensuring the code is easily accessible. “You don’t know if developer ‘A’ is going to be with you, so you have to make sure your developers are following standards and known best practices.” says Hearn.”
One of the most commonly discussed issues is the offshore option.
However, while this talent pool is well-trained and capable, managing a project halfway across the globe can have hidden costs. Because communication around requirements has to be very precise, language issues or the need to accommodate different time zones can cause potential errors and delays.
Ensuring that the same programmers stay on the project is another issue. “Every outsourcer will prioritize according to their schedule, unless you’re a huge fish,” says Hearn.
There’s also a need for at least some local expertise for testing and validation of the final product. “It’s not usual that you get a system and can throw it straight into production,” says Hearn.
Many offshore development firms address this by keeping local project managers on staff in the cities where their customers are located.
Another important enabler is that the programmer’s toolkit has become far more powerful.
“The cloud gives you a much more viable starting point for projects today than in the past,” says Betty. “It’s also astounding how much is available in the open source world, and how easy it is to stitch things together. Overall, it’s much easier to put together large production systems than it was even five years ago.”
Nevertheless, the easiest route by far is buying software that a vendor tests, maintains, updates and supports for thousands of users.
When faced with significant functionality gaps, companies should turn to custom programming only if all other options—including upgrading to an integrated suite—have been carefully weighed.
Jacob Stoller is principal of Toronto-based consultancy Stoller Strategies. Send comments to email@example.com.