Lecture Notes of SE –1: Chapter-4, An Agile View of Process
Chapter – 4
An Agile View of Process
Agile:
‘Agile’ can be simply defined as ‘lively’.
What is Agile software development?
In terms of software engineering, an agile software
process can be defined as ‘a process able to appropriately respond to changes’.
Agile methods were developed to overcome the actual
weakness (in many situations, we no longer able to define requirements fully before the project begins) in conventional software engineering. So the software engineer must be agile enough to responds to changes.
Agile is an interactive and incremental (evolutionary)
approach to software development to produce high quality software in a cost effective and timely manner.
Instructor: Dr. M. Yousuf Khan Ch 4 # 1 SE by Pressman 6th edit
Lecture Notes of SE –1: Chapter-4, An Agile View of Process
Some characteristics are:
- Agile methods are not applicable to all
projects, people and situations.
- It is also not ever changing.
- It represents a reasonable alternative to
conventional software engineering for certain classes of software.
- It delivers successful system quickly (pp-104).
Some basic principles for agility are: (pp-105)
Satisfy the customer through early and continuous
delivery of valuable software with welcoming the changing requirements even in late developments.
Deliver working software frequently from a couple
of weeks to a couple of months. Try to keep this time scale shorter. Remember that working software is the primary measure of progress.
Effective method of conveying information to and
within a development team is face to face. The customer, developer and user must maintain a constant pace indefinitely.
Instructor: Dr. M. Yousuf Khan Ch 4 # 2 SE by Pressman 6th edit
Lecture Notes of SE –1: Chapter-4, An Agile View of Process
An agile software process addresses three key
assumptions about a software project.
1. Prediction: How to predict which SW
requirement will persist, which will change and how customer priorities will change as project proceeds.
2. Design & construction are interleaved: How
much design is necessary before construction, which will prove the design.
3. Analysis, design, construction and testing: are
not predictable from planning point of view.
The above three assumptions focuses that an agile
software process must be adaptable incrementally.
For an incremental adaptivity, customer’s feed back is
very important for an operational prototype model.
There are many proposed agile process models each
containing a set of ‘ideas’, which separates it from the conventional software engineering.
Examples of agile process models are: Extreme
Programming (XP), Adaptive Software Development (ASD), and Dynamic System Development Method (DSDM) etc. These models will be discussed in an advanced level of software engineering course.
Instructor: Dr. M. Yousuf Khan Ch 4 # 3 SE by Pressman 6th edit