Download presentation
Presentation is loading. Please wait.
1
Chapter 3 An Agile view of process
2
Agile Software Engineering
Combines A philosophy A set of development guidelines Software engineers and other project stake holders work together on an agile team. Software product is fast paced and ever changing that’s why agile process is important today. Framework activities: customer communication planning modeling construction delivery evaluation
3
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
4
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
5
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
6
Agile Teams are responsive to changes during project development
recognize that project plans must be flexible eliminates the separation between customers and developers
7
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
8
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
9
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
10
Agile Process Models Extreme Programming (XP)
Adaptive Software Development (ASD) Dynamic Systems Development Method (DSDM) Scrum Crystal Feature Driven Development (FDD) Agile Modeling (AM)
11
Extreme Programming (XP) - 1
The most widely used agile process, originally proposed by Kent Beck [BEC99] XP uses an object-oriented approach as its preferred development paradigm Defines four (4) framework activities Planning Design Coding Testing
12
Extreme Programming (XP) - 2
spike solutions prototypes simple design CRC cards user stories values acceptance test criteria iteration plan design planning coding refactoring test pair programming Release unit test continuous integration software increment project velocity computed acceptance testing
13
XP - Planning Begins with the creation of a set of stories (also called user stories) Each story is written by the customer and is placed on an index card The customer assigns a value (i.e. a priority) to the story Agile team assesses each story and assigns a cost Stories are grouped to for a deliverable increment A commitment is made on delivery date After the first increment “project velocity” is used to help define subsequent delivery dates for other increments
14
XP - Design Follows the KIS (keep it simple) principle
Encourage the use of CRC (class-responsibility-collaborator) cards For difficult design problems, suggests the creation of “spike solutions”—a design prototype Encourages “refactoring”—an iterative refinement of the internal program design Design occurs both before and after coding commences
15
XP - Coding Recommends the construction of a series of unit tests for each of the stories before coding commences Encourages “pair programming” Mechanism for real-time problem solving and real-time quality assurance Keeps the developers focused on the problem at hand Needs continuous integration with other portions (stories) of the s/w, which provides a “smoke testing”(issues that lead to rejection of s/w) environment
16
XP - Testing Unit tests should be implemented using a framework to make testing automated. This encourages a regression testing strategy. Integration and validation testing can occur on a daily basis Acceptance tests, also called customer tests, are specified by the customer and executed to assess customer visible functionality Acceptance tests are derived from user stories
17
Adaptive Software Development (ASD)
Self-organization arises when independent agents cooperate to create a solution to a problem that is beyond the capability of any individual agent Adaptive cycle characteristics Mission-driven planning Component-based focus Uses “time-boxing” Explicit consideration of risks Emphasizes collaboration for requirements gathering Emphasizes “learning”
18
Joint Application Development
19
Speculation : Speculation Project is initiated. Adaptive cycle planning is conducted. Adaptive cycle planning uses project initiation information e.g The customer’s mission statement , project constraints & basic requirements , to define set of release cycle that will be required for the project Collaboration : Collaboration is a recurring theme in all agile methods Motivated people work together for more talent & creative output. It’s matter of trust People work together must trust one another to. Learning : Learning Software developer often overestimate their own understanding Learning will help to improve level of real understanding ASD teams learn in 3 ways Focus groups Formal technical reviews. Postmortems Customer or/and end-users feedback The ASD team becomes introspective
20
Dynamic Systems Development Method
Provides a framework for building and maintaining systems which meet tight time constraints using incremental prototyping in a controlled environment Uses Pareto principle (also known as the 80/20 rule, is a theory maintaining that 80 percent of the output from a given situation or system is determined by 20 percent of the input.) Each increment only delivers enough functionality to move to the next increment
21
Dynamic Systems Development Method
Guiding principles Active user involvement Teams empowered to make decisions Fitness for business purpose is criterion for deliverable acceptance Iterative and incremental development needed to converge on accurate business solution All changes made during development are reversible Requirements are baselined at a high level Testing throughout life-cycle
22
DSDM Life Cycle: Feasibility Study Business Study Functional Model Iteration Design and Build Iteration Implementation
23
SCRUM Definition from rugby football:
a scrum is a way to restart the game after an interruption, where the forwards of each side come together in a tight formation and struggle to gain possession of the ball when it is tossed in among them. SCRUM is an agile, lightweight process for managing and controlling software and product development in rapidly changing environments.
24
SCRUM Framework Activities: Requirements Analysis Design Evolution
Delivery Within Each framework activity, work tasks occur within a process pattern called a sprint.
26
Feature Driven Development
Original Creator: Jeff De Luca Singapore in late 1997 FDD is an agile software development process FDD uses a short-iteration model FDD combines key advantages of other popular agile approaches along with other industry-recognized best practices FDD was created to easily scale to much larger projects and teams
27
What is a Feature? Definition: small function expressed in client-valued terms FDD’s form of a customer requirement Feature naming template: <action> the <result> <by|for|of|to> a(n) <object> Examples: Calculate the total of a sale Add the product to a shopping cart Validate the password of a user Authorize the sales transaction of a customer
28
Features are to be “small” in the sense they will take no more than two weeks to complete
Features that appear to take longer are to be broken up into a set of smaller features Note: Two weeks is the maximum, most features take far less time (1 - 5 days)
29
Feature Driven Development Process
Process #1: Develop an Overall Model Process #2: Build a Features List Process #3: Plan By Feature Process #4: Design By Feature Process #5: Build By Feature
31
FDD combines many of the best practices of other agile models
FDD was initially created for and is more geared towards large project teams FDD puts less focus on initial design and quickly gets to the point where the team can deliver new functionality to the project feature by feature
32
Agile Modeling Practice-based methodology for effective modeling and documentation of software systems in a light-weight manner Modeling principles Model with a purpose Use multiple models Travel light (only keep models with long-term value) Content is more important than representation Know the models and tools you use to create them Adapt locally
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.