The Development Process at Geomotiv
We split the development process into equal cycles called iterations. Each Iteration lasts from 2 to 4 weeks depending on the project’s requirements. The iterations includes certain scope of functionality accomplished through the development, testing, bug fixing, design and deployment. Thanks to Agile principles, the clients are more likely to get releases early at hand, which allows to receive client’s feedback as soon as possible, helps to introduce new changes to the project and adjust work in a more relevant direction.
Today many companies neglect the prospect of working with a remote team. Such companies do have specific product development needs, but the fear that the development process will be out of their control and the feeling that there may be a misunderstanding between the parties, make them shut out even the slightest idea of that kind of cooperation.
We will destroy this hackneyed stereotype. In the series of articles we show how we implement the development processes when remote teams are involved. Once you’ve finished reading the series, you will see that managing a remote team is not that hard.
We split the development process into equal cycles called iterations. Each Iteration lasts from 2 to 4 weeks depending on the project’s requirements. The iterations includes certain scope of functionality accomplished through the development, testing, bug fixing, design and deployment.
Thanks to Agile principles, the clients are more likely to get releases early at hand, which allows to receive client’s feedback as soon as possible, helps to introduce new changes to the project and adjust work in a more relevant direction.
Naturally the work at Geomotiv starts with the project planning stage and keeps going until the software is launched. We also provide support and maintenance operations of the product after its entry to the market.
Project planning stage
Project planning stage starts after negotiating an extensive estimate with our Business Enabler, who is responsible for business analysis, predictive modeling and fact-based management. At this stage we build initial relationship, define the process, and discuss budget and deadlines. At the project planning stage we also introduce an early vision of the product or MVP. It helps to test a product hypothesis with minimal resources, optimize time limits, and get the product to the client as soon as possible.
So, the customer gets:
1) Development team
2) MVP vision
4) Design draft
5) Project documentation and supporting materials
All in all, the project planning stage shows a detailed estimation and a complete picture of the future product. After the planning stage we approach the development process which is divided in a series of iterations:
1) Specifying requirements. Product requirements specification is developed in close cooperation with the customer. It is predicated on the comprehensive estimation of the project and product backlog. Our Business Analyst transforms a part of functionality for each iteration into smaller tasks, including testing and bug fixing. This step allows to outline the result of the iteration and foresee the possible scenario of each consequent iteration.
2) Development. The development process represents a smoothly running workflow and a tight collaboration between the team and the client. The standard size for an average project usually counts from five to seven team members. The allocated team consists of at least 2-3 seasoned developers, a QA specialist, a designer, a project manager, and a business analyst (if necessary). Such cocktail of skilled experts guarantees a great delivery of the product, enhances efficiency and productivity.
3) Testing and Bug fixing. Software testing is carried out straight after a part of functionality is completed. The testing implies the investigation of the product quality and identification of software bugs (errors). Thus, the QA engineer verifies if the software remains usable in its intended environment. Besides, to achieve a better delivery of the product we resort to the regression testing, which is done after fresh changes and modification were introduced to the system.
All results of testing are documented and are referred to the developers for further fixing. Once the bug fixing is performed, QA engineer makes an extra review of the fixed bugs and holds a smoke test to identify if the system is stable enough to continue with further testing.
4) Build delivery.
Each iteration is completed with a build submitted to the customer. For this our team makes a demo to show the existing functionality of the product. In addition, we submit a report about the initial estimate of the iteration, its timescale and our expectations for the remained scope of the project. If the client wants to bring some changes to the project, we carry them over to the following iteration.
Who manages the process?
Managing a remote team may seem to be a real headache for a customer. For that reason we engage into the process a project manager, whose primary responsibility is to take care of the customer. He deals with the developers, manages the team, checks deadlines, and controls the budget. He is the client’s right hand.
Our project manager supervises development activities from the start till the very end. He helps to define the product concept more detailed, evaluates the project’s feasibility, provides a project plan, and controls the delivery of the project on time within the budget and scope. He also divides the work amongst the developers and delegates responsibilities to the team. This smoothly running process allows our clients not to waste their time on coordination of working processes.
During the product development, the project manager keeps track of the deadlines and makes sure each iteration is completed correctly according to the plan.
Agile methodology model wins in:
– Flexibility. This model allows to adapt to frequently changing circumstances and make late changes in the requirements;
– Transparency. An Agile approach offer transparency. Clients actively participate in discussion throughout the project;
– High productivity. Better delivery of the software;
– Close communication between the team on daily basis;
– Agile model minimizes the risks, saves time and budget.
Our PM is in constant availability for the client, which allows to manage tasks as quick as possible.
We are aimed at creating great things which will lead the world to a new era of technologically smart products.