We have made the product owner an active member of the team. The owner of the product participates in daily stand-ups, sprint planning, sprint review. Throughout the process, the product owner conducts active communication with the team, which allows us to work clearly and smoothly, having a concrete understanding of what the client wants to get on the release. We have gotten priorities, thanks to which we began to release precisely the functionality needed "here and now" faster. The product owner now always knows what the developers are working on or plans to work on and can adjust the process based on his current tasks.
This is followed by the evaluation phase, in which developers and the team manager work closely. This stage aims to discuss solutions for each task and evaluate them in a temporary equivalent. We have already described this process in more detail in this
article.
When tasks are set, tickets are described, and there are specific requirements for implementation, the development phase begins. The main task at this stage lies with the developers. In my case, these are three developers - a front-end developer, a full-stack developer, and a team lead, who helps us with the code review and verification of pool requests. Each of them works on one of the tickets described by me, follows the time estimations made by them, deploys, and views the result in the local environment.
After writing new functionality, it is necessary to cover it with tests. Tests are the next stage of development. Our team's developers write automated unit tests that check the code's performance, identify errors, and inconsistencies in the code. When the developer completes all the tests, he draws up a pool request and sends it to the team leader for verification. Since the team leader has another project in which he is engaged on an ongoing basis, once a day, he checks all the accumulated requests, gives comments on them, writes where the errors occurred, and approves the delivery of this functionality, after code correction by his remarks.
The final stage is the integration of the new version (deploy). For this, we use Jenkins and the CI | CD method. If you paint it in stages, then the deployment in our case looks like this: