Q&A: What is custom software development?

software development

Here Aplana’s technical team shares its answers to some frequently asked questions that companies ask when they start to consider outsource of some of their software development tasks to a third party, when selecting a software development partner, and when thinking how to ensure the success of outsourced development process

Why do we need custom software development when there are hundreds of off-the-shelf solutions for all kinds of company needs?

It goes without saying that most purchasers of information services are already automating their business processes using off-the-shelf ERP, CRM, CMS solutions and other 3 letter acronym business automation systems. However, there are several challenges that companies are facing even having all these canonic systems in place.

First of all, there is often a task of extending the out-of-the-box functionality of those systems, especially nowadays when new devices and new tools are emerging in the market. Example of such additional functionality are accessing corporate information systems from mobile devices, reports building and data visualization that are in great demand now.

Another challenge is how to integrate stand-alone corporate information systems, to increase efficiency of internal processes, to avoid mistakes due to multiple entries of the same data in several systems, and to decrease manual labor. Unfortunately, there aren’t many out-of-the-box integration solutions just yet, and that’s the job for custom software developers.

Making use of corporate data is another big challenge for companies nowadays. To optimize their internal business processes, companies need to analyze terabytes of accumulated operational data, understand its trends and learn how to make intelligent decisions based on the flow of operational data of the company. There is one more very important area where a technology partner can help – that’s about improving the relationship with clients and partners via providing more open and transparent information to them, by integrating with them or, alternatively, publishing information from their own internal systems.

Why can’t we build the software ourselves?

If you’ve got a great IT team including administrators and programmers who know your business inside out, you may well ask, why not develop your systems in-house? The answer will be negative because it’s a huge risk for a business to start a software development project on their own: the project may go way over the budget and the time schedule, or it may just fall apart without any result. A company can reduce such risks and at the same time lower costs by delegating software development to teams that have been doing it all their lives. First of all, the partner like Aplana will bear all the technological risks and will be responsible for the outcome, and secondly, a project fulfilled with a third party will be more “disciplined” and most likely finished on time, without delays and procrastination that is typical for in-house development projects, that tend to be longer, as a company keeps introducing changes and adding new requirements.

Doesn’t the development partner need to understand our business intimately?

It’s a mistake to think that your in-house team know all your business processes. For example, developers, even if they are your employees, are experts in development tools and technologies, and not in your business processes. Starting a project with you, a development partner might not know them either, but that’s not necessary. As an offshore software development company with experience in various business areas, the partner has own means to receive the required business knowledge promptly and efficiently. This is the task for business and system analysts, who specialize in business processes and have the knack for wording requirements so they are clear both to the business and to the development team. First of all, they:

  1. establish communication exchange with the client, understand client’s roles and responsibilities;
  2. conduct interviews with the right people and collect all business requirements;
  3. turn business requirements into software requirements that the development team uses;
  4. present development results to the client;
  5. continuously collect and process feedback from the client and ensure the team works on improvement of both the process and the outcome.
Summarizing the above, the partner is ready to obtain new business knowledge at the initial stage of work with a new client, and they have resources, tools and processes to do that.

Our in-house software development team is well aware of all our business processes – why outsourcing partner is still important?

Even thorough knowledge by the internal team of in-house processes and subject matter expertise may not eliminate the risks of project failure. There is a number of non-functional requirements, such as system performance, security, infrastructure that may affect the success of the project, and only a technology partner with broader technology expertise that they got in other projects can help here.

Here is an example: a requirement to the system to support thousands of simultaneous connections means a lot to a professional team, but it might say nothing to in-house specialists who, due to lack of experience, simply do not understand what consequences this requirement may bring. The results can be fatal – if the in-house team doesn’t pay attention to this requirement, then at the final stage of the project you will find out that the system does not perform as required – sometimes it means that you have to rewrite half of the system to improve performance.

What necessary prerequisites a company must have when considering outsourcing?

It’s crucial that the client has a full understanding before launching an outsourced project of what they want to develop and what results they want to achieve. If the client does not fully understand what they need, decision-making on any issue is delayed and the result may not be what they expect, provided that the project does not fall apart before its completion.

If the project is big and complex then it is possible that the client has trouble imagining the future information system in all details. But in this case the client must have the will and the power to make quick decisions along the project once the development team comes with the questions. A good outsourcing partner does some preliminary work and provides several options of answers to the question together with the question, so the client just needs to choose the best one promptly. This approach ensures that even without initial detailed specification the project should be moving in the selected direction with clockwork precision.