At Geomotiv, we generally 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. It 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. It keeps going until the software is launched. We also provide support and maintenance operations of the product after its release.
Project Planning Stage
Project planning stage starts after negotiating an extensive estimate with our Business Enabler. This specialist is responsible for business analysis, predictive modeling and fact-based management. At this stage we build initial relationships, define the process, and discuss budget and deadlines. At the project planning stage we also introduce an early vision of the product (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:
- Development team
- MVP vision
- Design draft
- Project documentation and supporting materials.
All in all, the project planning stage shows a detailed estimation and a complete picture of the future product.
The Development Process
After the planning stage we approach the development process which is divided in a series of iterations:
- 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. It also helps to foresee the possible scenario of each consequent iteration. - Development.
The development process represents a smoothly running workflow. It is 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. - 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. It 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, QAs make an extra review of the fixed bugs. Futhermore, they hold a smoke test to identify if the system is stable enough to continue with further testing. - 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 remaining 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. Its 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
Agile methodology model wins in:
- Flexibility. This model allows to adapt to frequently changing circumstances and make changes in the requirements;
- Transparency. An Agile approach offers 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. It allows us to manage tasks as quickly as possible.