In this topic, we described about the Agile Characteristics in detail.
Characteristics of Agile Methodology in software Development -
- Scrum - Scrum is the most commonly used way of introducing Agility due to its simplicity and flexibility. Scrum focuses on empirical feedback, team Self-management. It strives to build thoroughly tested product increments within short iterations. Benefits include increased visibility of project goals and how to achieve them.
- Quality - Testing is integrated throughout the lifecycle allowing regular inspection process of the work product as it develops. This would allow the product owner to make necessary changes giving the product team an Early sight of any quality issues.
- Visibility - Agile development principles would encourage the client's active involvement throughout the product's development process. This would provide particularly good visibility for the key stakeholders both the project's progress and the product itself which in turn would help to make sure that expectations are managed in an effective way.
- Early Identification and Issue Resolution - Small incremental releases are made visible to the product owner and product team through its development in order to identify the issues early and make it easier to respond to changes. Visibility in the Agile development would help to make sure that any necessary decisions could be taken at the earliest possible opportunity. While, there would still be time to make a difference to the output.
- Flexibility/ Agility - In Agile Development method, changes are accepted at even later stage of development. Timelines would be fixed, and requirements would still evolve and add on as the product is developing.
- Iterative releases, communication, and continuous Integration - User Involvement would be considered as highly visible for the product and progress. Flexibility to change when needed would create a better business engagement and customer satisfaction. This could be considered as a positive and durable working relationships.
- More Enjoyable - Teams involvement, cooperation and collaboration would make agile development teams a much enjoyable place for most of the people. Rather than preparing big reports, team would all gather and discuss about the progress on a task-board.Rather than long project plans and change management team, better to discuss on what would be right for the product and project. Team would be permitted to make decisions.
- Transparency - Agile method would provide the opportunity for end users to look at the progress of the product at every stage they want. This would require the client to understand that they are seeing a work in progress in exchange for this added benefit of transparency.
- Early and predictable delivery - Time boxed and fixed scheduled sprints of 1-4 weeks would help in delivering new features of the product quickly and frequently with a higher level of guessing things which would offer to perform beta testing on the product earlier than it was actually planned to do so if there is sufficient business value.
- Predictable costs and schedule - As every sprint are of a fixed duration, the cost would be predictable and limited to the amount of work that could be performed by the team in the fixed-schedule time frame. Based on the merged estimates that are provided to the client prior to each Sprint, the client would more readily understand the approximate cost of each feature, which could improve decision making about the priority of features and the need for additional iterations.
- Iterative/ incremental and ready to evolve - In Agile development method, a program would be broken down into smaller chunks. Requirements will not be planned in an exceptionally long term. Requirements are planned only for shorter periods. The result at the end of each iteration would be a working product. It would be demonstrated to the stakeholders at the end of every iteration. Once the demo is completed, end user would give feedback as review comments on the same. These review comments would be incorporated on the working product as the client requires.
- Face–to-face communication - Every Agile team must have a customer representative such as the product owner in the scrum methodology. This representative would be authorized to act on the stakeholders, and he could answer all the queries thrown by the developers in between every iteration.
- Feedback Loop - Daily stand up meeting would be a part of the Agile/Scrum development methodology. It is termed as a "Daily Scrum". It is a brief session where in each team member would report to each other about the status of what each one has done, what they must do next and issues if any.