Sepm Module 3
Sepm Module 3
Sepm Module 3
AGILE DEVELOPMENT
WHAT IS AGILITY?
AGILITY AND THE COST OF CHANGES
WHAT IS AN AGILE PROCESS?
• Any agile Software process is characterized in a manner that addresses a number of key
assumption about the majority of Software Project:
It is the difficult to predict in advance which software requirement will persist and
which will change.
For many types of software, design and construction are interleaved.
Analysis, design, construction and testing are not as predictable as we might like.
AGILITY PRINCIPLES:
The agile alliance defines 12 agility principles for those who want to achieve agility:
• Our highest priority is to satisfy the customer through early and continuous delivery
valuable software.
• Deliver working software frequently, from a couple of weeks to a couple of months, with
• Business people and developers must work together daily throughout the Project.
• Build Project around motivated individuals, Give them the environment and support they need and trust
• Agile Processes promote sustainable development. The sponsors, developers, and users should be able
• The best architectures, requirements and design emerge from self- Organizing Teams.
• At regular intervals, the team reflects on how to become more effective, then tunes and adjust its
behavior accordingly.
•
THE POLITICS OF AGILE DEVELOPMENT
• Human Factor
• Competence
• Common Focus
• Collaboration
• Decision Making Ability
• Fuzzy Problem Solving Ability
• Mutual Trust and Respect
• Self Organization: Implies 3 things
The agile team organizes itself for work to be done.
The team Organizes the process to best accommodate its local environment.
The team organizes the work schedule to best achieve delivery of software increment.
EXTREME PROGRAMMING(XP)
Extreme Programming(XP), the most widely used approach to agail software
development.
• Define set of FIVE Values.
1. Communication
2. Simplicity
3. Feedback
4. Courage
5. Respect
THE XP Process :
Four framework activities:
1. Planning
2. Design
3. Coding
4.Testing
Industrial XP(IXP):
IXP is an organic evolution of XP. It is imbued with XP’s minimalist, customer-centric, test-
driven spirit.
IXP incorporates six new practice that are designed to help ensure that an XP project works
successfully.
Readiness assessment
Project community
Project chartering
Test-driven management
Retrospective
Continuous learning
The XP Debate:
Issues that continue to trouble some critics of XP are:
Requirement volatility
Conflicting customer needs
Requirements are expressed informally
Lack of formal design
OTHER AGILE PROCESS MODELS:
The most widely used of all agile process models is Extreme Programming(XP).
But many other agile process models have been proposed:
Adaptive Software Development(ASD)
Scrum
Dynamic System Development Method(DSDM)
Crystal
Feature Drive Development(FDD)
Lean Software Development(LSD)
Agile Modeling(AM)
Agile Unified Process(AUP)
Adaptive Software Development(ASD):
Adaptive Software Development(ASD) as been proposed by Jim Highsmith as a technique
for building complex software.
SCRUM:
Scrum is an agile software development method that was proposed by Jeff Sutherland in 1990’s.
DYNAMIC SYSTEM DEVELOPMENT METHOD(DSDM):
• DSDM provides a framework for building and maintaining system which meet tight time
constraint through the use of incremental prototyping.
• The DSDM life cycle that defines three different iterative cycles, proceed by two
additional life cycle activities:
Feasibility Study
Business Study
Functional Model Iteration
Design and Build Iteration
Implementation
CRYSTAL:
• Alistair Cockburn and Jim Highsmith created the Crystal family of agile method.
• Each core elements that are common to all roles, process patterns, work products and
practice that are unique to each.
In the context of FDD, a feature “is a client-valued function that can be implemented in
two weeks or less”.
The emphasis on the definition of features provides the following benefits:
• Because features are small blocks of deliverable functionality, users can describe
them more easily
• Features can be organized in to a hierarchical business-related grouping.
• The team develops operational features every two weeks, Because features are
small.
• Project planning, scheduling and tracking are driven by the feature hierarchy.
Agile Unified Process(AUP):
The Agile Unified Process(AUP) adopts a “serial in the large” and “iterative in the small”
philosophy for building computer-based systems.
AUP provides a serial overlay that enables a team to visualize the overall process flow for
a software project.
Each AUP iteration addresses the following activities:
Modeling
Implementation
Testing
Deployment
Configuration and project management
Environment management
PRINCIPLES THAT GUIDE PRACTICE
Communication Principles:
Programming principles:
• Understand the software architecture and create interfaces that are consistent with it.
• Keep conditional logic as simple as possible.
• Create nested loops in a way that makes them easily testable.
• Select meaningful variable names and follow other local coding standards.
• Write code that is self-documenting.
• Create a visual layout (e.g., indentation and blank lines) that aids understanding.
Validation Principles:
• Conduct a code walkthrough when appropriate.
• Perform unit tests and correct errors you’ve uncovered.
• Re-factor the code.
Testing Principles:
• Testing is a process of executing a program with the intent of finding an error.
• A good test case is one that has a high probability of finding an as-yet-undiscovered error.
• A successful test is one that uncovers an as-yet-undiscovered error.
Deployment Principles:
• Customer expectations for the software must be managed.
• A complete delivery package should be assembled and tested.
• A support regime must be established before the software is delivered.
• Appropriate instructional materials must be provided to end users.
• Buggy software should be fixed first, delivered later.