What is agile development?
Agile development is a common
framework for iterative and incremental development. Some of commonly
used agile practices can be listed as XP (extreme programming), Scrum
and Crystal. We will mainly focused on Scrum. Even though may have
different viewpoints of agile development they all follow "Agile
Manifesto".In simple terms, agile development is a set of principles that can be used to incremental and iterative development of a product. Comparing to other development methodologies, this support changeability and integrity of the product. One can develop the more optimal solution using agile development frameworks.
Agile Manifesto
- Individuals and Interactions over processes and tools
- Working Software over comprehensive documentation
- Customer Collaboration over contract negotiation
- Responding to Change over following a plan
- Individuals and interactions
- Self-organization and motivation are important, such as co-location and pair programming are highly considered.
- Working software
- Prototyping and skeletons are used instead of documentations and report writing. Agile development more focused on the software itself than documentations.
- Customer collaboration
- In each cycle the the customer gives feedback and suggestions. Customer requirements also tend to change overtime. Since this is a iterative approach they will be handled effectively the support of customer.
- Responding to change
- Agile software development methods are focused on quick responses to change and continuous development.
"The Agile movement is not anti-methodology, in fact many of us want to restore credibility to the word methodology. We want to restore a balance. We embrace modeling, but not in order to file some diagram in a dusty corporate repository. We embrace documentation, but not hundreds of pages of never-maintained and rarely-used tomes. We plan, but recognize the limits of planning in a turbulent environment. Those who would brand proponents of XP or SCRUM or any of the other Agile Methodologies as "hackers" are ignorant of both the methodologies and the original definition of the term hacker."
— Jim Highsmith, History: The Agile Manifesto12 principles of agile development
Following are the main principles that considered in any agile development process.
- Customer satisfaction by early and continuous delivery of valuable software
- Welcome changing requirements, even in late development
- Working software is delivered frequently (weeks rather than months)
- Close, daily cooperation between business people and developers
- Projects are built around motivated individuals, who should be trusted
- Face-to-face conversation is the best form of communication (co-location)
- Working software is the principal measure of progress
- Sustainable development, able to maintain a constant pace
- Continuous attention to technical excellence and good design
- Simplicity—the art of maximizing the amount of work not done—is essential
- Best architectures, requirements, and designs emerge from self-organizing teams
- Regularly, the team reflects on how to become more effective, and adjusts accordingly.
Agile practices in summary
Following
practices are used to carry on development process. They may be
prioritized more or less according to the particular development method
and development organization.
- Acceptance test-driven development (ATDD)
- Agile modeling
- Agile testing
- Backlogs (Product and Sprint)
- Behavior-driven development (BDD)
- Business analyst designer method (BADM)
- Continuous integration (CI)
- Cross-functional team
- Domain-driven design (DDD)
- Information radiators (scrum board, task board, visual management board, burndown chart)
- Iterative and incremental development (IID)
- Pair programming
- Planning poker
- Refactoring
- Retrospective
- Scrum events (sprint planning, daily scrum, sprint review and retrospective)
- Story-driven modeling
- Test-driven development (TDD)
- Timeboxing
- User story
- User story mapping
- Velocity tracking
References
https://en.wikipedia.org/wiki/Agile_software_development
Hi,
ReplyDeleteIts a Great article according my issues i read your blog and i got information through your article and specially thanks for sharing your article i will use @ here laravel development
Regards,
Daniel