Application development is a complex process that involves analysis, program and design development, testing and putting it to work. All our works go through the same cycle of tasks, which we will familiarize you with now.
All work begins after signing a framework Contract, which specifies important conditions – confidentiality, transfer of exclusive rights, responsibility, etc. Cost and terms are not specified, as they are fixed in the Annex to the Contract for each stage.
The first thing we do is to analyze the task, describe the whole logic of work and interconnections, think about the appearance. This stage is called Discovery. It is an important part of mobile application and web systems development, moreover, without it development is simply impossible.
Imagine that you are taking on something new, unknown to you. Development of a customized application for business tasks is always a creation of a unique product. Thus, it is the Discovery that allows us to foresee all the nuances of the conceived product, reduce the development time and save on mistakes. Here we find weaknesses in the beginning and come up with solutions.
At this stage, together with the Customer, we define the goals and tasks that we are going to solve with the help of the application and the target audience. Usually, the customer comes with a problem, and our job is to find and propose optimal methods to achieve the goal. We study similar solutions, write out successful examples. We study the services with which we need to integrate (we understand how it should be done, what data is needed, what needs to be prepared, etc.).
What we get at the Discovery:
1. Description of the full functionality of the program – Terms of Reference;
2. Ability to immediately identify “bottlenecks”/complex places and plan risks;
3. Determination of approximate development cost and work schedule for budget planning.
Which specialists are involved in Discovery?
Several specialists work on Discovery. A marketer studies the specifics of the niche and competitors, an analyst selects options for solving the problem. When we find the right path, it’s time to adapt the ideas we’ve developed to the program requirements and come up with the design concept of the application, its architecture. The designer prepares layouts of the main pages, the most interesting and complex ones.
Then we organize all the collected information and create the structure of the future application. We think through the screens, where pages should go from and to. We study the user map, where certain elements come from. Then we work out each screen and function separately. And we describe how fields and forms should work, what data should be entered, what are the requirements for them, positive and negative scenarios for each action. All this is fixed in the final Terms of Reference. This is a legal document, and in case of disputes, both parties can rely on it.
Here, the Customer needs to scrutinize the Terms of Reference and make sure that exactly what was discussed and presented is written. If after the application is launched, you point out refinements that were not envisioned in the Terms of Reference, they are not covered by the warranty. That’s why we pay so much attention to the Discovery and approval of the ToR.
Estimation of the project cost according to the Terms of Reference
Based on the final Terms of Reference, an estimate of the approximate cost and timing of the project is prepared. For this purpose, each specialist who participates in the work estimates separately how much time he will need for each task.
It may turn out that the cost of work turned out to be more than the Customer expected. Then at this stage alternatives are considered, some functions are revised or simplified, and ToR are adjusted.
Why is it impossible to calculate the real final cost?
Of course, this estimate is close to the real forecasts, but it is still not the final one, as it is impossible to estimate how much the work will actually be. Application development is every time a new product is created, even if the application may be similar to the existing ones, the final product is unique – different interconnections of work and its logic. All this affects the estimation and cost. Moreover, in the course of work the Customer may change requirements or new solutions and technologies for solving the tasks will appear. According to statistics, if the conditions of the task in the process of development do not change, the cost remains within 15% of the estimate.
When the Discovery is approved, a tentative work plan is drawn up – the order of stages-sprints. A sprint is a time period for which a part of the program is prepared. To be effective, all sprints last from 2 to 4 weeks. A new sprint usually starts after the previous one is completed, but in some cases two or more sprints can be worked on in parallel. This is a concept from Scrum development, a project management methodology and one of the Agile Software Development techniques. You can read more about these techniques here.
Starting the sprint
Before the start of the sprint, we check everything together with the Customer once again – if there are no questions on the ToR, if there is enough data, evaluation and timing of the sprint. If everything is correct, we sign the Annex to the Contract. Everything is fixed in it, and work on the sprint begins.
Division of work into design, development and testing goes inside each sprint. Sometimes there are exceptions, if the Customer wants to see the whole application design first. In this case, a separate sprint is launched to develop the whole design. But it may not be quite cost-effective, because the development process is flexible, and in the course of work changes may be made, which partially change the design. That’s why we usually don’t do the entire design at once but do it within each sprint. Sometimes a little ahead of the development work, so as not to delay it.
At the end of each sprint, error and usability testing is done. We fix the bugs and finalize the sprint.
Don’t let the word bugs scare you – there is no way without them, remember that we are developing a unique product.
When a sprint is finalized, the Сustomer evaluates it and may make some revisions and improvements. Therefore, when the sprint is approved, we move on to a new one. And so on until the entire scope of work is completed.
Release and launch the project
When all sprints are completed and the app is built, it’s time to release the project. If the application is planned to be distributed in Google Play and App Store, you need to prepare materials for publication – texts, screenshots, customization of subscriptions and internal purchases, and all this must pass moderation.
If it is a web application or a server part (responsible for processing and controlling data transfer and is launched together with the application), we deploy the application on the server. The server is provided by the Customer, if necessary, we will help to select and choose it.
The job is done. What’s next?
If product refinements and improvements are needed after the project is launched, you can always put together a task list and start a new sprint. Don’t worry about the fact that after the project is launched, bugs may appear in its work. There is a warranty for such cases. You report a bug – we promptly respond and fix it.
Now you are familiar with the process of building web services and applications. It is a very exciting process for both us and the Customer. Send a request, we will work with you to create something unique and useful!