Agile Engineering - ODU ACM

23
Agile Development November 3 rd , 2011 Justin F. Brunelle
  • date post

    21-Oct-2014
  • Category

    Technology

  • view

    824
  • download

    1

description

 

Transcript of Agile Engineering - ODU ACM

Page 1: Agile Engineering - ODU ACM

Agile Development

November 3rd, 2011

Justin F. Brunelle

Page 2: Agile Engineering - ODU ACM

Purpose

• Introduction to Agile methodologies

– Who what where when why

• Introduction to SCRUM

– Implementation of Agile in Sprints

Page 3: Agile Engineering - ODU ACM

Surprise!

• Most programmers already implement agile

engineering!

– Rapid Prototyping

– Cyclic development cycles

– Stakeholder feedback

– Ever-growing queue of requirements

Page 4: Agile Engineering - ODU ACM

Waterfall

• Traditional Development

• Incremental

• Linear

• What happens if

you fail at

Verification?

http://en.wikipedia.org/wiki/File:Waterfall_model_%281%29.svg

Page 5: Agile Engineering - ODU ACM

Daily Trivia

• First presentation on Waterfall Model?

• MITRE!

– Development of SAGE (Semi-Automated Ground

Environment)

• Messages to bomber aircraft

– 1950s

Page 6: Agile Engineering - ODU ACM

Goal of Agile Development

• Continuous delivery of working software

– Iterative

– User feedback driven

• Iterations produce releasable product

• Goal is not speed!

Page 7: Agile Engineering - ODU ACM

Agile Approach

• Adaptive, empirical process

– Small repeating cycles

– Short-term planning with constant feedback, inspection and adaptation

• Fail-early lifecycle

– Iterative development

brings most of the risk

and difficult work

forward to the early

part of a project

Page 8: Agile Engineering - ODU ACM

Agile Manifesto • Our highest priority is to satisfy the customer

through early and continuous delivery of

valuable software.

• 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.

• Business people and developers must work

together daily throughout the project.

• Build projects around motivated 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.

Working software is the primary measure of

progress.

Agile processes promote sustainable 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.

Simplicity--the art of maximizing the amount

of work not done--is essential.

The best architectures, requirements, and 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 9: Agile Engineering - ODU ACM

User Role in Agile

9

Release

Plan

Design

Code Test

Assess

Plan

Design

Code Test

Assess

Plan

Design

Code Test

Assess

Plan

Design

Code Test

Assess

Plan

Design

Code Test

Assess The User is involved in all

aspects of the iteration –

this helps ensure true user

driven development

Shippable

Product

Page 10: Agile Engineering - ODU ACM

What is “Done”?

• At the end of every iteration, the only work

that is declared “Done” is work that has gone

through the proper engineering activities and

could be used by Clients

– Requirements

– Code

– Testing (unit, integration, user)

– Stakeholder feedback

Page 11: Agile Engineering - ODU ACM

SCRUM

• Type of Agile

• Self-organizing teams

• Product Backlog

• Sprints

• Releases/Retrospective

• Rinse and repeat

Page 12: Agile Engineering - ODU ACM

SCRUM

User

Feedback Incorporated Into Product Backlog

Storyboarding

Page 13: Agile Engineering - ODU ACM

Who SCRUMS?

• Defined roles

– Product Owner

– Scrum Master

– Scrum Team

• No “Bus Person”

Page 14: Agile Engineering - ODU ACM

Product Owner

• Define the features of the product

• Decide on release date and content

• Be responsible for the success of the product

• Prioritize features according to market value

• Adjust features and priority every iteration, as

needed

• Accept or reject work results

Page 15: Agile Engineering - ODU ACM

The ScrumMaster

• Represents management to the project

• Responsible for enacting Scrum values and practices

• Removes impediments

• Ensure that the team is fully functional and productive

• Enable close cooperation across all roles and functions

• Shield the team from external interferences

Page 16: Agile Engineering - ODU ACM

The Team

• Typically 5-9 people

• Cross-functional:

– Programmers, testers, user experience designers, etc.

• Everyone knows a little about a lot

• Teams are self-organizing

– Ideally, no titles but rarely a possibility

Page 17: Agile Engineering - ODU ACM

Storyboarding

• Creation of user stories

– Populates the backlog

– Multiple backlog entries per story

• Methods

– Whiteboard

– Photoshop

– Layout “Straw-men”

– Verbal Process

Page 18: Agile Engineering - ODU ACM

Backlog

• The requirements expressed as user stories – [COUGH – CRC Cards – COUGH]

• A list of all desired work

• Prioritized by the product owner

• Reprioritized at the start of each sprint

• “I want the product to do X”

Page 19: Agile Engineering - ODU ACM

SCRUM Sprints

• Scrum projects make progress in a series of

“sprints”

• 2–4 weeks

• “Byte”-sized chunk of the project is

designed, coded, and tested during the sprint

– Normally:

• Subset of backlog

• 2-3 stories

Page 20: Agile Engineering - ODU ACM

Sprint Review Process

• Review Process:

– Demo Software

• Entire team (remember the “Bus Person”)

– Get Feedback

– Update Backlog

• Reprioritize

• Entries not taken out until next sprint

Page 21: Agile Engineering - ODU ACM

Sprint Retrospective

• Retrospective (15-30 min. mtg):

– What went well?

– What went wrong?

– What will we do different?

Page 22: Agile Engineering - ODU ACM

“SCRUMmary”

• Incremental

• Iterative

• Fail early

• User involvement

Page 23: Agile Engineering - ODU ACM

Will it work for You?

• Shouldn’t be a “Big Bang”

– Phased implementation

• Identify Roles

• Create backlog

• Determine sprint length

• RUN!