So, you have a need to create an IT product, and you want to understand how to start software development in order to do it right and get a quality result.
Let’s assume that you have already received preliminary estimates on your brief and decided on the executor of the task. What should be the very first stage of creating a program?
Discovery
One of Murphy’s Law appendices says, “If you can be misunderstood, you will be misunderstood!” It applies not only to interpersonal communication but also to software development. The customer wanted a second “Shazam” and was given a completely different one. The developer did not understand the Customer’s wishes and dreams and wasted his time.
To avoid such an outcome, before starting software development, you need to synchronize with the Customer – to conduct discovery and prepare the Terms of Reference.
The preparation stage is comparable to the work of an architect who designs a building from scratch, develops a master plan, and calculates the cost of materials. Before we start the development, we need to clearly understand what we want to get as a result, what kind of “building” is going to be built, how long it will take and how much money we need.
It is a common practice when a Customer comes to a developer with a specific problem or request, but does not yet have an understanding of how to solve it. The developer’s task is to study the problem and offer a solution with a clear description of what and how it will be done and how much time and resources it will take.
Let us consider an example. There is a request from the customer to automate the operation of the furniture manufacturer. Now new requests are loaded into Excel, employees are confused in them or forget to call back customers; drawing up standard documents (offer, contract, invoice) takes a lot of time. This request needs to be transferred to the production department later and to be monitored and analyzed through its entire life cycle.
There is a problem and a request for a certain functions of the software. We need to evaluate its terms and cost. Even if the task is clear, it is not specific enough. We need to think about the number and functionality of pages, the interaction between data and calculations to understand the scale and cost of work. It is important to consider the specifics of furniture manufacturing and delve into business processes and learn from the experience of competitors.
The feature is probably that the production department specialists hardly sit in front of a computer, and the request should be transferred not in the web application but to a mobile device. Or the request price depends on a dozen different factors, which generates the same number of possible offers. It is possible that it is enough to replace the complex functionality in CRM with reminders for managers, requests to the mail of the production department and one report for the director at the end of the month – and this will solve the set tasks.
The discovery makes it possible to foresee all the ins and outs of the conceived product, reduce development time and save on mistakes. The scope of work for this stage may vary from company to company. We include the following:
- We define with you the goals and objectives of the software;
- The market researcher studies your competitors and your industry;
- The analyst finds the optimal way to achieve the objective;
- We adapt the idea to software requirements, work through software algorithms;
- We develop the project architecture;
- The designer thinks over the appearance and prepares layouts;
- We reveal vulnerabilities and find ways to eliminate them.
Following preparation, you receive detailed terms of reference for software development, an estimate with project cost and terms, options for splitting work and payments into stages. The document is a guarantee that the final result will meet your expectations.
Once you have the ToR, you can:
- Understand what you are paying money for, see the structure of the future product, and adjust it even before the start of development.
- Assess the expertise of the contractor. The way the document is drawn up reflects the performer’s understanding of the task and its logic.
- Get the product you ordered because it is checked against the ToR. If something doesn’t match, the performer must correct it.
- Know the full development cost, how many stages are planned, and how long it will take.
- Save your money by reducing the risk of errors.
- You can simply change the contractor if you are not satisfied with something about the team during the discovery. And you can pass the finished ToR to other developers – this will allow them to get involved in the work faster.
With the ToR, the performer:
- Understands what you want. He has already asked you dozens of questions, discussed all possible options for the project, and agreed on all items. Misunderstanding is excluded.
How much does the TOR cost
Good ToR for software development is the result of comprehensive efforts of the team and the foundation of the future product. Drafting ToR takes weeks of work of specialists, which should be paid for. The cost of Pre-design Preparation is calculated on the case-by-case basis and is up to 10% of the estimated project cost.
What if you don’t pay for the ToR? Performers will not be able to spend enough time on analytics, and the document will be unfinished. When a team takes up development, it is interested to lay a solid foundation for their product. If you want to save on development, there are more humane ways.
Remaining stages of software development
Once you have the ToR in hand, you can start the development process. There are different approaches to organizing work, but most companies (including us) prefer to divide the entire process into stages: this allows you to build efficient processes, simplify control and get a better result.
The number, duration and composition of stages are individual for each project. But every sprint follows the same life cycle, read more about it in the next article 👇