There is always a lot of work behind successful software development projects. Planning, development and maintenance - these are the three pillars that sustain that success.
And behind each of these serious processes there are people - interested parties. At least two. Product owner (Client) and development team (Supplier). With that, everyone has their own interests.
In an ideal world, the scenario is as follows. The product owner gets a quality product and profit, the development team performs the project on time (without loss of quality) and receive a fee. This can be called a successful software development.
But the world is not perfect. And more often than we would like, such a scenario occurs in life.
A Client applies with a software development Supplier to create a custom software product. This Client is a non-technical person, very busy and can’t dedicate much time to a software development management. The Supplier ensures the Client that everything will be done successfully, so the Client trusts and relies totally on the technical competence of the Supplier.
Time passes by...
The supplier shows delivery packages to the Client from time to time. The Client tests them, all looks good and the functionality that the Supplier mentioned works.
Some more time passes by...
The Client finances the development and the Supplier confirms that all is well, but the software is not ready for launching yet.
Some more months pass by, but the situation doesn’t change much in general. The Client then becomes worried and decides to get an objective overview of the state of the software development. The Client then involves an independent tech consultant to carry out an evaluation of the existing software.
The independent tech consultant then brings to light that the functionality that was reported as complete has plenty of bugs and the approach to creating it was not optimal. The solution is hardly scalable and the programmers did not follow the core principles of software engineering.
The result is that the Client has wasted money and time, cannot trust the current Supplier and cannot continue development in this way.
Because of the software’s poor quality, it does not make sense to develop it further or to fix the existing bugs, as it will cost more than to develop it from scratch. In addition, there is no option to launch it soon.
To avoid this kind of situation we offer to use effective practices managing software development projects.
- Trust but verify
It is fine to be a non tech person, but at the same time, it is better to add basic software requirements specification for your future product in the agreement. You can create it yourself, write it with your software development team or simply find a professional and pay him for it. This will help both sides to understand the project scope, goals and define clear KPI.
- Business logic above all
Main goal is not developing software, but creating reliable business tool. Even if it isn’t ideal from a technical point of view, it should still fulfill its main business goal.
That is why it’s crucial to describe the whole logic (ideally in relational schemas) and make sure that your tech team understands exactly what you want. You can always ask the team to summarise your requirements and evaluate their understanding based on the answers
Important: you should keep track of all requirements and descriptions of your software’s logic in emails or live documents, or via a task management system
- Make a detailed and clear plan
For a non tech person the best plan is a clear and simple set of steps that are easy to understand. It is important that every step in the plan should have a uniquely defined indicator of its completion.
For example an unclear completion indication would look something like this:
- Functioning System of push notifications
While a clear completion indicator would look something like this:
- Functioning System of push notifications, i.e. every user (when he is logged in on iOS & Android devices) on the platform will receive notifications on his device about new added activities for a news (articles) list for each category separately. In a settings menu there will be the possibility to turn notifications on/off for each category separately or for all categories at once. If a user clicks on a notification it will automatically redirect him to that particular article’s screen.
- Request reports and set up risk alerts
Implement a system of reports, which allows progress tracking and evaluates the readiness of the plan.There is a simple rule - if work time was spent on something, there should be visible progress.It is better if reports correspond to an appropriate plan (daily, weekly, monthly).
Important: agree with your tech team that it is their responsibility to check and give you notice of any risk (possible development time increases, possible additional expenses for 3rd party services and basically about anything that may impact cost, timing and quality of the solution).
- Communicate and receive feedback on regular basis
It is crucial to have meetings at least once a week for at least an hour. Remember that you are the person who cares most about your project. Make sure you are communicating often enough to guarantee that both sides understand what, when and how should be done.
- Ensure your intellectual rights are protected and you have access to the code
Quite often a Supplier develops a software product using their resources (laptops, servers, cloud, git repo). It is important to remember that every paid part of the software product should be the Client’s intellectual property if it was not stated differently in the agreement.
At the same time it is better for you to have an archived copy of each version of the product. In the case of any force-majeure this will make it possible to continue any activities with the software quickly.
Of course real situations could be way more complicated and require more detailed work in various aspects. But if your main goal is to get best results in software development project, you should have in mind this main aspects:
- Consider SRS
- Connect business logic
- Make a work plan
- Request reports and set up risk alerts
- Take care of regular communication and feedback
- Ensure intellectual property protection
We hope that using of our practical advice gives you a good chance to create your own success formula of managing software development projects with fewer risks.