Agile development

Agile development is less of a process or methodology and more of a way of working for software developers. It focuses on adaptive planning, evolution of development, self-organized and cross-functional teams, continuous integration, and, above all, flexibility. The unofficial motto of agile development can summed up as "release early, release often" as stated by Eric S. Raymond in his seminal essay The Cathedral, and The Bazaar.

Though a variety of lightweight development methods and framework were in existence for many years, agile development could be said to have formally started in 2001, when the Manifesto for Agile Software Development was published. The Manifesto stipulated the following:

  • People and their interactions are more important than tools and processes.
  • Software should work as intended, while documentation should support the software. In other words, while comprehensive documentation is ideal, development should be applied toward the software, rather than documentation.
  • Customer interaction is more important than contract negotiation.
  • Adaptability and willingness to change are better than uncompromisingly sticking to a plan.

Based on these proclaimed values, the principles of agile development are as follows:

  • Customer satisfaction through early and continuous delivery of software
  • Welcoming changing requirements, even late in development
  • Working software is delivered frequently; the shorter the time frame, the better
  • Daily interaction between business people and developers
  • Include motivated individuals in the project, and provide them with the tools and support necessary for success
  • Face-to-face conversation is the best form of communication, both between developers and with leadership
  • Working software is the primary measure of progress
  • Sustainable development with the ability to maintain a constant pace
  • Continuous attention to technical excellence and good design principles
  • Simplicity, through the art of maximizing the amount of work not done, is essential
  • The best architectures, requirements, and designs come from self-organizing teams
  • On a regular basis, the development team reflects on how to become more effective, and adjusts their behavior accordingly

A number of agile development methods have developed over the years. While some concentrate on development practices, others focus on workflow management. Here is a list of some of the more popular practices and frameworks used in agile development:

  • Scrum
  • Kanban
  • Extreme programming
  • Feature-driven development
  • Dynamic systems development method
  • Agile testing
  • Agile modeling
  • Backlogs
  • Behavior-driven development
  • Continuous integration
  • Pair programming
  • Refactoring
  • Retrospective
  • Test-driven development
  • User stories
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.145.186.83