is usually divided into several stages:
- data collection, analysis and assessment
- architecture and design planning
- product development and quality assurance
- production launch and support
Each stage may undergo changes depending on the project specifics, but generally this scheme applies to all projects and products.
New project initialization (data collection, analysis and assessment)
As we start to work on any project, we try to figure out and understand the project goals and tasks that need to be solved as best as possible.
These are the basic questions that need to be answered in order to implement a product that would be truly beneficial.
As a result of discussing the project with the product owner, we collect available information on the project and create a concept, i.e. a document that briefly describes the goals and objectives and the ways to achieve them.
At the end of this stage, we can provide an indicative estimation of the project development, so that all parties would have an idea what to expect in terms of timelines and budgets.
Architecture and design planning
The next stage of our work is the design of the overall architecture of the project.
Even though we work both in waterfall and in agile methodologies, under no circumstances should this stage of development be skipped. We have to answer the questions of what technologies to use in the project, how it will be built, in large blocks and so on.
This stage usually results in the following:
- project documentation
- project flowchart
- main user stories
In addition to these documents, once these tasks have been completed, we usually try to provide a more accurate assessment of the entire project.
Product development and quality assurance
In developing different projectswe use different approaches.
One of the most effective, in our opinion, is Kanban. It allows one to carry out projects exactly as required by the end user of the product and using the available resources as efficiently as possible.
Usually the development is iterated in sprints of about 2-3 weeks each. The result of each sprint is available to the customer.
Throughout all stages of development, we conduct quality control and are open to a certain number of refinements and changes in the initialproject plan, as this allows us to eliminate misunderstandings and deliver exactly what the users need.
After each subsequent sprint, we do regression testing of the modules implemented, as well as end-to-end testing.
We often recommend trying to launch the product into use by real users already at early stages of development, as this allows for obtaining their feedback and making the necessary adjustments in the development at the subsequent stages. The correction of such errors at the end of development is usually more complicated, and early project launch saves a significant amount of resources.
Throughout the work on the project, we engage the product owner in the work and discussions. Continuous interaction also improves the standard of the result as delivered.
Production launch and support
At the end of project development, once everything has been tested and is working properly, we facilitate the implementation of deployment on production.
Prior to this, a deployment plan and a roll-back plan are always developed, if necessary (no matter how much we would like to,everything can happen and it is better to be prepared and to know what to do).
After the project has been launched, we offer further support and can sign service-level agreements (SLA), which will allow any product to perform as stably as possible and to successfully address its problems.
To evaluate our work, we use simple and transparent approaches. After analyzing a task, we make an assessment of the time required for its implementation and, depending on the assessment, calculate the cost.
We use both approaches of Fixed Price, and Time and Materials.