How to make sure you will get the software you need
To get IT solutions that will exactly fit specific business needs, companies often gamble on custom-made software. However, this journey is often challenged with various issues on both vendors’ and customers’ sides, which all can end up with a disappointing outcome.
These pitfalls in the custom software development process are examined one by one below and coupled with our suggestions of how the customer can address them.
Time-consuming clarification of requirements to vendors
Some customers are reluctant to answer multiple vendors’ queries because of a lack of either resources or desire to ‘do the vendor’s job’. Indeed, a customer can avoid being asked too many questions if their custom software development vendor has enough expertise in horizontal and vertical domains of the project to be completed.
For example, an FMCG company can look to update its Supply Chain Management (SCM) System to improve this business function and obtain a better traceability of goods. When selecting a vendor, it checks out the candidates’ completed SCM projects and references from their customers (the horizontal domain). The customer also makes sure the vendor-to-be understands management processes in retail (even better, in FMCG) that have to do with orders, inventory, import and export, warehousing, suppliers, transportation and so on (the vertical domain). Finally, it selects the software company that meets both sets of requirements.
Still, however savvy the vendor’s project team is, they will require some clarifications in relation with the customer’s unique business processes, objectives and priorities. Therefore, some extra time and budget on the customer’s side should be allocated for communication with the vendor. Going back to the example above, such resources can include several working hours (or even dedicated work days) of the FMCG company’s supply chain director or manager (key manager), purchasing specialist, marketing specialist and finance specialist (end users), as well as premises for daily or weekly calls/meetings. A truly professional vendor will make good use of these resources.
So, the customer can respond to this challenge by:
- choosing the 'right' vendor that is able to dive into the project details faster and easier. The software developer of choice should have both expertise in the customer's industry and technological proficiency, as well as, preferably, similar solutions in its portfolio.
- still planning a part of the worktime of its managers and power users for providing specific information regarding the customer’s procedures, objectives and priorities, as well as for validating software requirements drafted by the vendor.
Misunderstood requirements
The ability to catch on to business requirements and effectively convert them into software can be considered as a key competence of a software development company. At the pre-development stages of an IT project, the vendor's business analysts elicit requirements by studying the customer’s documentation (e.g., supply chain policies and standards specifying the procurement limits and bidding principles) and interviewing the customer’s representatives in group or in person.
When processed by the vendor’s specialists, information received from the customer can be distorted to some degree, which can obviously result in errors in interim or final project deliverables. The customer can handle possible misunderstandings by
- verifying and approving the software requirements specification (SRS) provided by the vendor. This detailed document enables to ‘synchronize watches’ at further project stages and reflects understanding of the customer’s vision, including the project scope, business processes to be automated or supported, as well as business specifics.
- approving the project changes to avoid misunderstanding of any customer’s amendments to the requirements.
Changing objectives and requirements
The longer a project, the more probable its requirements will modify. The reasons for it can be both external (e.g., some competitors’ activities or new business-related regulations on the market) and internal (update of the customer’s business strategy, changes in the organization structure and so on). Whatever the reasons, changes should be managed to ensure a safe development process, especially for projects with very strict deadlines.
This challenge can be solved by
- an iterative development process. It stands for defining an initial set of requirements which are worked out in detail collectively on the go, with the vendor’s delivering working software and the customer’s feedback.
- presenting software prototypes (such as UI mock-ups).
- communicating both actual and possible changes to the vendor promptly.
- reflecting the possibility of changes in the contract so that the vendor is prepared.
Clashes between different departments
Sometimes, two or more departments of the customer can put in conflicting objectives or requirements. For instance, the head of the Sales department can insist on providing its employees with the same user rights that the accounting department has, which can be unacceptable for the latter.
This challenge can be solved by
- developing a formal or informal ‘conflict management’ procedure (e.g., conflict identification that is a detailed description of positions by all parties that defines prioritization and decision-making).
- identifying and addressing contradictions at earlier stages (however unpleasant it can be) to decrease the probability of further major changes in software.
- considering the development of some ‘lighter’ functionality in contradictive areas in the first version of the software. These features can be detailed after further feedback, which can save project efforts considerably at its current stage.
Summary
To minimize risks of disappointing outcomes of tailor-made software projects, the customers should be aware that project issues are likely to arise due to inefficient communication with the vendor as well as changes in the external or internal business environment. In communication, it’s essential to ensure the vendor gets enough information and understands it correctly. Also, external events and conflicting interests within the customer’s organization may result in requirement changes and contradictions, which should be identified and handled by the customer in due time.