Software Engineering (2160701)

BE | Semester-6   Winter-2017 | 11/03/2017

Q1) (b)

Explain Agile Development in detail.

Agility:

  • Agility is ability to move quickly and easily.
  • It is a property consisting of quickness, lightness, & ease of movement
  • The ability to create and respond to change in order to profit in a turbulent global business environment
  • The ability to quickly reprioritize use of resources when requirements, technology, and knowledge shift
  • A very fast response to sudden market changes and emerging threats by intensive customer interaction
  • Use of evolutionary, incremental, and iterative delivery to converge on an optimal customer solution
  • Maximizing BUSINESS VALUE with right sized, just- enough, and just-in-time processes and documentation

Agile Process

  • Agile software process addresses few assumptions
    • Difficulty in predicting changes of requirements and customer priorities.
    • For many types of software; design and construction are interleaved (mixed).
    • Analysis, design, construction and testing are not as predictable as we might like.
  • An agile process must be adaptable
  • Requires customer feedback

Agility Principles

  • Highest priority is to satisfy the customer through early & continuous delivery if software
  • Welcome changing requirements
  • Deliver working software frequently
  • Business people and developers must work together
  • Build projects around motivated individuals
  • Emphasize face-to-face conversation
  • Working software is the measure of progress
  • Continuous attention to technical excellence and good design
  • Simplicity – the art of maximizing the amount of work done
  • The best designs emerge from self-organizing teams
  • The team tunes and adjusts its behavior to become more effective

Agile Process Models

  • Extreme Programming (XP)
  • Adaptive Software Development (ASD)
  • Dynamic Systems Development Method (DSDM)
  • Scrum
  • Feature Driven Development (FDD)
  • Crystal
  • Agile Modelling (AM)