Top Banner
AGILE PROCESS INTRODUCTION Author: Nguyen Phuc Hai Created date: 1/7/2008
61
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Agile Process Introduction

AGILE PROCESS INTRODUCTIONAuthor: Nguyen Phuc Hai

Created date: 1/7/2008

Page 2: Agile Process Introduction

Agenda

� Introduction

� Software Development Process

� Software Development Life Cycle

�Waterfall model�Waterfall model

� Iterative model

� Rational Unified Process (RUP)

� Agile Development Process (ADP)

� Scrum process

Page 3: Agile Process Introduction

Software Development Life CycleWaterfall model

Software Development Process

Waterfall model

Iterative model

Rational Unified Process (RUP)

Agile Development Process (ADP)

Page 4: Agile Process Introduction

Why we need process

Page 5: Agile Process Introduction

Software Development Life Cycle

Page 6: Agile Process Introduction

Software Development Life Cycle

Waterfall model

Software Development Process

Waterfall modelIterative model

Rational Unified Process (RUP)

Agile Development Process (ADP)

Page 7: Agile Process Introduction

Introduction

Page 8: Agile Process Introduction

Definitions

� The waterfall model is a sequential software development model (a process for the creation of software) in which development is seen as flowing steadily downwards through the phases of requirements, analysis, design, implementation, requirements, analysis, design, implementation, testing and maintenance.

Page 9: Agile Process Introduction

Waterfall usage

� Advantages

� High reliable product

� Reduce risk

� Clear scope and contract� Clear scope and contract

� Disadvantages

�Much over cost, resource and schedule

� Lack of product can apply Waterfall (except small and short-duration projects)

� Specific skill sets are required for each phase

Page 10: Agile Process Introduction

Software Development Life Cycle

Waterfall Model

Software Development Process

Iterative ModelRational Unified Process (RUP)

Agile Development Process (ADP)

Page 11: Agile Process Introduction

Introduction

Page 12: Agile Process Introduction

Definitions

� Iterative and Incremental development is a cyclical software development process developed in response to the weaknesses of the waterfall model.

� Iterative development slices the deliverable � Iterative development slices the deliverable

business value (system functionality) into

iterations. In each iteration a slice of functionality is delivered through cross-discipline work, starting from the model/requirements through to the testing/deployment

Page 13: Agile Process Introduction

Usage

� Advantages:

�Optimize cost, schedule and resource than waterfall model

� Incrementally delivery business value

� Continuously improve product quality (requirements, design, code, test) via regularly feedback and learning knowledge

Page 14: Agile Process Introduction

Software Development Life Cycle

Waterfall Model

Software Development Process

Iterative ModelRational Unified Process (RUP)Agile Development Process (ADP)

Page 15: Agile Process Introduction

Iterative Model Graph

Page 16: Agile Process Introduction

Phases and Iterations

� RUP life cycle organizes the tasks via phases and iterations.

� RUP has four phases:

� Inception� Inception

� Elaboration

� Construction

� Transition

Page 17: Agile Process Introduction

Static Structure of the Process

� The process describes who is doing what, when and how. RUP uses the 4 modeling elements:

�Workers, the ‘who’

� Artifacts, the ‘what’� Artifacts, the ‘what’

� Activities, the ‘how’

�Workflows, the ‘when’

Page 18: Agile Process Introduction

Software Development Life Cycle

Waterfall Model

Software Development Process

Iterative ModelRational Unified Process (RUP)

Agile Development Process (ADP)

Agile Manifesto

Agile Principles

Page 19: Agile Process Introduction

Manifesto of ADP

� Individuals and interactions over processes and tools

�Working software over comprehensive documentation documentation

� Customer collaboration over contract negotiation

� Responding to change over following a plan

Page 20: Agile Process Introduction

Principles of Agile

� Our highest priority is to satisfy the customerthrough early and continuous deliveryof valuable software.

� Welcome changing requirements, even � Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.

� Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

Page 21: Agile Process Introduction

Principles of Agile (continue)

� Business people and developers must

work together daily throughout the project.

� Build projects around motivated

individuals. Give them the environment and individuals. Give them the environment and

support they need, and trust them to get the job done.

� The most efficient and effective method of conveying information to and within a development

team is face-to-face conversation.

Page 22: Agile Process Introduction

Principles of Agile

� Working software is the primary measure of progress.

� Agile processes promote sustainable

development. The sponsors, developers, and users development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

� Continuous attention to technical excellence

and good design enhances agility.

Page 23: Agile Process Introduction

Principles of Agile

� Simplicity--the art of maximizing the amount of work not done--is essential.

� The best architectures, requirements, and

designs emerge from self-organizing teams. designs emerge from self-organizing teams.

� At regular intervals, the team reflects on how

to become more effective, then tunes and adjusts

its behavior accordingly.

Page 24: Agile Process Introduction

Sequence of iterations

Page 25: Agile Process Introduction

What is ScrumIntroduction

Scrum Process

Introduction

Applying Scrum

Preconditions to Scrum

Scrum roles

How to scrum

Page 26: Agile Process Introduction

What is Scrum

Page 27: Agile Process Introduction

Applying Scrum

� Scrum is not silver bullet

Page 28: Agile Process Introduction

Applying Scrum

� Adopt all Scrum practices

Page 29: Agile Process Introduction

Applying Scrum

� Top-Bottom or Bottom-Up? Combine both approaches properly

Page 30: Agile Process Introduction

What is Scrum

Preconditions to Scrum

Scrum Process

Preconditions to ScrumScrum roles

Scrum ceremonies

Page 31: Agile Process Introduction

Transparency

Page 32: Agile Process Introduction

Ethics

Page 33: Agile Process Introduction

Team work

Page 34: Agile Process Introduction

Freedom

Page 35: Agile Process Introduction

Open communication

Page 36: Agile Process Introduction

Stakeholder engagement

Page 37: Agile Process Introduction

Maturity

Page 38: Agile Process Introduction

What is Scrum

Preconditions to Scrum

Scrum Process

Scrum rolesProduct Owner

Scrum Master

Team

Scrum ceremonies

Scrum artifacts

Page 39: Agile Process Introduction

Product Owner

� Product owner has the following responsibilities:

� Define the features of the product;

� Decide on release date and content;

� Be responsible for the profitability of the product (ROI); � Be responsible for the profitability of the product (ROI);

� Prioritize features according to market value;

� Adjust features and priority every 30 days, as needed;

� Accept or reject work results.

Page 40: Agile Process Introduction

Scrum Master

� The Scrum Master is a facilitative team leader working closing with the Product Owner. He must:

� Ensure that the team is fully functional and productive;

� Enable close cooperation across all roles and functions; � Enable close cooperation across all roles and functions;

� Remove barriers;

� Shield the team from external interferences; and

� Ensure that the process is followed, including issuing invitations to Daily Scrum, Sprint Review and Sprint Planning meetings.

Page 41: Agile Process Introduction

Scrum Master (continue)

� The Scrum Master has three primary responsibilities in addition to leading the Daily Scrum meeting:

� Needs to know what tasks have been completed, what tasks have started, any new tasks that have been discovered, and any estimates that may have changed. discovered, and any estimates that may have changed. The Scrum Master must also look carefully at the number of open tasks in progress.

� Needs to surface dependencies and blocks which are impediments to the Scrum. They need to be prioritized and tracked.

Page 42: Agile Process Introduction

Scrum Master (continue)

� Last but not least, the Scrum Master may notice personal problems or conflicts within the Scrum that need resolution. These need to be clarified by the Scrum Master and be resolved by dialogue within the team, or the Scrum Master may need help from management or the Scrum Master may need help from management or the Human Resources.

Page 43: Agile Process Introduction

Team

� Is cross-functional, with seven (plus/minus two) members;

� Selects the Sprint goal and specifies work results;

� Has the right to do everything within the � Has the right to do everything within the

boundaries of the project guidelines to reach the Sprint goal; Organizes itself and its work; and

� Demos work results to the Product Owner

Page 44: Agile Process Introduction

What is Scrum

Preconditions to Scrum

Scrum Process

Scrum roles

Scrum ceremoniesSprint Planning Meeting

Daily Scrum Meeting

Sprint Review Meeting

Scrum artifacts

Page 45: Agile Process Introduction

Sprint Planning Meeting

� Preparation for a Scrum sprint begins when the Product Owner develops a plan for a product or a project.

� The team reviews the estimates for features on the � The team reviews the estimates for features on the Product Backlog and confirms that they are as accurate as possible

� Be used to develop a detailed plan for the iteration

� Be time-boxed to a maximum of four hours.

Page 46: Agile Process Introduction

Daily Scrum Meeting

� Be the fifteen-minute meeting designed to clarify the state of the Scrum.

� Each team member speaks to three questions: � What did I do yesterday� What did I do today, and � What did I do today, and � What impediments got in my way?

� Only team members who have committed to deliver work to the Scrum are allowed to speak. The goal is to get a global snapshot of the project, discover any new dependencies, address any personal needs of committed individuals, and adjust the work plan in real time to the needs of the day.

Page 47: Agile Process Introduction

Daily Scrum Meeting

� Pig and chicken issue in Scrum

Page 48: Agile Process Introduction

Sprint Review Meeting

� Be held at the end of each Sprint.

� Product Owner determines which items on the Product Backlog have been completed in the Sprint, and discusses with the Scrum team and stakeholders and discusses with the Scrum team and stakeholders how best to reprioritize the Product Backlog for the next sprint

� Be time-boxed to a maximum of four hours.

Page 49: Agile Process Introduction

What is Scrum

Preconditions to Scrum

Scrum Process

Scrum roles

Scrum ceremonies

Scrum artifactsProduct Backlog

Sprint Backlog

Burn-down Chart

Page 50: Agile Process Introduction

Product Backlog

� A single list of features prioritized by value delivered to the customer.

� The Product Backlog includes business and technical requirements needed to build the technical requirements needed to build the product. The highest priority items in the Product Backlog need to be broken down into small enough chunks to be estimable and testable. Features that will be implemented further out in time can be less detailed.

Page 51: Agile Process Introduction

Product Backlog

� Sprint Backlog may change for several reasons: � The development team gains a better understanding of work to be done as time progresses and may find that they need to add new tasks to the Sprint Backlog.

� Defects may be identified and logged as additional � Defects may be identified and logged as additional tasks.

� The Product Owner may work with the team during the Sprint to help refine team understanding of the Sprint goal. The Scrum Master and Team may decide that minor adjustments that do not lengthen the Sprint are appropriate to optimize customer value.

Page 52: Agile Process Introduction

Product Backlog

� Example

Page 53: Agile Process Introduction

Sprint Backlog

� The list of tasks that the Scrum team is

committing that they will complete in the current

sprint. Items on the sprint backlog are drawn from the Product Backlog, by the team based on the priorities set by the Product Owner and the team's priorities set by the Product Owner and the team's perception of the time it will take to complete the various features.

Page 54: Agile Process Introduction

Sprint Backlog

� Example

Page 55: Agile Process Introduction

Burn-down Chart

� The Burn-down Chart is used as a tool to guide the development team to successful completion of a Sprint on time.

� Shows the cumulative work remaining in a Sprint, day-by-day.

The total of all Sprint Backlog estimates of work � The total of all Sprint Backlog estimates of work remaining to be completed is the cumulative backlog. When tasks are completed as the Sprint proceeds, the Scrum Master recalculates the remaining work to be done and the Sprint Backlog decreases, or burns down over time. It the cumulative Sprint Backlog is zero at the end of the Sprint, the Sprint is successful.

Page 56: Agile Process Introduction

Burn-down Chart

� Example

Page 57: Agile Process Introduction

References

Page 58: Agile Process Introduction

References

� Software Development Process, http://en.wikipedia.org/wiki/Software_development_process

� Waterfall Model, http://en.wikipedia.org/wiki/Waterfall_modelhttp://en.wikipedia.org/wiki/Waterfall_model

� RUP, Best Practices for Software Development Team, http://www.ibm.com/developerworks/rational/library/content/03July/1000/1251/1251_bestpractices_TP026B.pdf

� Agile Manifesto, http://agilemanifesto.org/

Page 59: Agile Process Introduction

References

� Darrel Norton, Scrum overview http://codebetter.com/blogs/darrell.norton/pages/50339.aspx

� ScrumAlliance, http://www.scrumalliance.org/� ScrumAlliance, http://www.scrumalliance.org/

� Implementing Scrum, http://www.implementingscrum.com

Page 60: Agile Process Introduction

References

� Pictures are gotten from:

� http://www.agileadvice.com/archives/2006/09/yet_another_big.html

� http://www.agilemodeling.com/essays/agileModelingRUP.htm

� http://www.notetech.com/images/software_lifecycle.jpg

Page 61: Agile Process Introduction