The benefits of Agile Development are many-fold:
- reduced cost and time to market
- rapid delivery of high-quality software
- developed with the end user in mind
- testing integrated through the life of the project
- flexible production leads to happier clients
- encourages open communication
- increased project transparency
What is Agile?
Agile is a project management process that is commonly used in software development companies, instead of older more traditional methods like Waterfall. At Chepri®, we prefer to use the Agile process because it allows for flexibility and adaptation throughout the course of a project, in ways that more traditional methods do not, resulting in a more efficient process and generally higher-quality products. Agile is centered around self-organizing, cross-functional teams. The team is self-organizing in that there is not one leader, but multiple roles filled by the team members, holding each person accountable for the success of the project. The team is cross-functional in that it works together on all stages of the sprint cycle, from planning to design, coding, and testing. The team openly communicates with the client throughout the course of the project – keeping the needs of the client in mind – thus, aligning development with the needs of the customer and company goals. Unlike traditional methods that require regimented planning and documentation entirely up-front, Agile works in incremental iterations, (while planning the whole project on a high-level) breaking the project up into cadences, called sprints, which are treated as steps within the project with their own planning, development and testing phases. This allows for flexibility, regular adaptations to changing circumstances, and testing throughout the course of the project – not just at the end. The benefit of the repetition of these abbreviated work cycles in Agile is that every aspect of the project can be revisited and redirected during the project; with traditional methods, you basically have one shot to get it right. Agile allows the team to assess the direction of a project throughout the development lifecycle.
Sprints are the iterations that make up the development process in Agile. Typically, a sprint lasts anywhere from one week to four weeks, depending on a number of factors including (but not limited to) the size and scope of your project, your budget, and your timeline. The team works cross-functionally on all aspects of the sprint from idea to end product.
- Vision Meeting: The vision meeting is held with all the stakeholders for the project from the development team and the client (and other interested parties) to determine the vision for that sprint. The goals and features are defined, outlined and prioritized accordingly, as the team prepares for development.
- Development Phase: In development, the team works together to design/develop the features that had been prioritized for the sprint in the vision meeting, as well as tests and debugs any issues that surface in the development portion of the sprint.
- Review Meeting: A review meeting is held to present the resulting product of the sprint to the client and to determine next steps.
- Retrospective Meeting: A retrospective meeting is held by the team to discuss what went well and not so well with the sprint in order to draw from the positives and improve on the negatives in the next sprint.
Every project is different, so there is no set number of sprints a project needs before completion. In fact, you may think your project is complete and some time later, determine that you want to add an additional feature to your website or app. You would need an another sprint (or two or three) to add the feature.
The idea is that your product, like the ever-changing technological world we live in, is constantly evolving and advancing.