Software Processes
Download
Report
Transcript Software Processes
Agile Process: Overview
Agile software engineering represents a
reasonable compromise to conventional
software engineering for certain classes of
software
Agile development processes can deliver
successful systems quickly
Agile development stresses continuous
communication and collaboration among
developers and customers
Manifesto for Agile Software Development
Better to value:
Individuals and interactions over processes and
tools
Working software over comprehensive
documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
While the items on the right are still important
the items on the left are more valuable under
this philosophy
What is “Agility”?
Rapid and adaptive response to change
Effective communication among all
stakeholders
Drawing the customer onto the team
Organizing a team so that it is in control of
the work performed
Yielding …
Rapid, incremental delivery of software
Agile Teams
are responsive to changes during project
development
recognize that project plans must be flexible
eliminates the separation between customers
and developers
Agility
encourages team structures that make
communication among developers and
customers easier
emphasizes importance of rapid delivery of
operational software and de-emphasizes
importance of intermediate work products
can be applied to any software process as
long as the project team is allowed to
streamline tasks and conduct planning in way
that eliminate non-essential work products
An Agile Process
Is driven by customer descriptions of what is
required (scenarios)
Recognizes that plans are short-lived
Develops software iteratively with a heavy
emphasis on implementation
Delivers multiple ‘software increments’
Adapts as changes occur
Human Factors
Traits that need to exist in members of agile
development teams:
Competence
Common focus
Collaboration
Decision-making ability
Fuzzy-problem solving ability
Mutual trust and respect
Self-organization
Agile Process Models
Extreme Programming (XP)
Adaptive Software Development (ASD)
Dynamic Systems Development Method
(DSDM)
Scrum
Crystal
Feature Driven Development (FDD)
Agile Modeling (AM)