Success in software projects

article

A successful software project requires thorough planning and testing

Software creation and purchasing have become increasingly common in Estonian companies. At the same time, however, there are more and more stories about deviations in software development, systems not being completed in time, and considerably higher costs for the entire process than initially planned. According to Andres Aavik, CEO of Flowit, ensuring the success of your project requires considering the following factors.

Analyse whether software creation is economically sound

Before purchasing software, it is worth carrying out a thorough analysis of which processes the software should replace, change or create. Consider whether the software is meant to create new capabilities, new business opportunities, or to make an existing process more efficient. Run calculations on expected financial costs and profits, how quickly you should be able to recoup the cost of the project, and how your investments will create value. Do not forget to include invisible costs in your calculations, such as maintenance costs, future additions, security measures, technological developments and the need for updating your software platforms.

Include your employees and appoint project managers

Company employees should be included in any software development project and must be made aware that the project is a priority for the company.

From the business side of things, you should also appoint a project manager, who will be responsible for the project and have the right to make substantive decisions. If the project involves different fields of business, responsible persons should be designated for each field. It is also worth setting up a working group of all parties who can provide input to the project or whose work will be affected by the software – only in this way will the process and its results deliver tangible benefits.

Draw up the terms of reference and perform a risk analysis

Before software acquisition, it is a good idea to draw up the terms of reference, i.e. background information with a list of requirements detailing your expectations with regard to business functionality, security, performance, usability, etc.

Performing a risk analysis is equally important – this should list the greatest internal and external weaknesses that could endanger the project, as well as the means for risk mitigation. The risk analysis should be kept up to date throughout the duration of the project.

During development, prioritise usability

During the software development stage, your main focus should be usability – the easier it is to use the software, the more efficient the user (employee) will be.

As such, it is important to consider and answer the developer’s questions carefully, because what may seem obvious to you at first glance, might not be so to an outsider. Demo sessions are also crucial during software development. The more detailed your feedback is during demo sessions, the better the developer will be able to meet your expectations. Demo sessions should be held at least once every two weeks.

You should also be prepared to devote some time and resources to acceptance testing, which involves testing the functionality of the software to verify that it meets your business requirements. Non-functional factors such as load capacity and usability should be tested in the presence of an expert. Additionally, consider involving future users in software testing, to allow them to acquaint themselves with the programme in the early stages and provide more comprehensive feedback to the developer.

Request the developer to follow the best development practices

In order to ensure the success of your project, ask the developer to provide a detailed development schedule to allow you to monitor the progress of the project and become aware of any deviations as early as possible. The developer should also perform a risk analysis, in order to map potential problems that could endanger the project, as well as the means for risk mitigation.

In addition, we recommend requesting phased delivery, as early access to the software will enable you to provide more comprehensive feedback and spread acceptance-related workload over a longer period. The developer should also follow good development practices in code writing, code management and project management, as well as be actively engaged in quality management. The sooner an error is discovered, the easier and cheaper it is to fix it.

Another important facet is documentation, which should be of high quality and provide a short and accurate overview of how the system is structured, because this will be the basis of any future updates and improvements. Documentation also helps prevent being held “hostage” by the supplier, wherein only that single developer knows how your software solution is built up, how it can be upgraded, and how bugs can be fixed. After all, when having a house built, for example, no one in their right mind would agree to order all maintenance work throughout its lifetime from a single company.

If your business does not have any prior software development experience, consider involving a third party to monitor the project, protect your rights and needs, and offer support in finding a common language. And, of course, ensuring that everything is technically correct.