agile software development n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Agile Software Development PowerPoint Presentation
Download Presentation
Agile Software Development

Loading in 2 Seconds...

play fullscreen
1 / 33

Agile Software Development - PowerPoint PPT Presentation


  • 376 Views
  • Uploaded on

Agile Software Development. Junjie Hu 07/04/2014. The Agile Tide in the Industry. 2. Outline. What is agile software development? Two agile methods Scrum For process management Extreme programming (XP) For coding Conclusion. Agile Software Development .

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Agile Software Development' - ady


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
agile software development

Agile Software Development

Junjie Hu

07/04/2014

outline
Outline
  • What is agile software development?
  • Two agile methods
    • Scrum
      • For process management
    • Extreme programming (XP)
      • For coding
  • Conclusion
manifesto for agile software development

Agile Software Development

Rapid, incremental delivery of software

Manifesto for Agile Software Development
  • A statement of values
    • Individuals and interactions over processes and tools
    • Working software over comprehensive documentation
    • Customer collaboration over contract negotiation
    • Responding to change over following a plan

http://www.agilemanifesto.org

outline1
Outline
  • What is agile software development?
  • Two agile methods
    • Scrum
      • For process management
    • Extreme programming (XP)
      • For coding
  • Conclusion
agile methods
Agile Methods

Scrum

Extreme programming (XP)

Adaptive software development (ASD)

Dynamic system development method (DSDM)

Feature driven development (FDD)

Lean software development (LSD)

Process

Coding

http://www.agilealliance.org

6

requirements churn
Requirements Churn
  • Requirements churn
    • During a project the customers can change their minds about what they want and need
  • Software development is an empirical, unpredictable and non-repeatable process

Frederick P. Brooks, The Mythical Man-Month: Essays on Software Engineering, 1975

scrum
Scrum
  • An agile, lightweight software development framework
  • Scrum was intended to be for management of software development projects
    • Accepting that the problem cannot be fully understood or defined
    • Focusing instead on maximizing the team's ability to deliver quickly and respond to emerging requirements
definition of scrum
Definition of Scrum
  • 橄欖球Rugby術語:前鋒對陣爭球
  • A scrum is a way to restart the game after an interruption
    • 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
waterfall model vs scrum
Waterfall Model vs. Scrum

Requirements

Design

Implementation

Verification

Rather than doing all of one thing at a time...

Time

...Scrum teams do a little of everything all the time

Time

the scrum framework

Time-boxes

  • Sprint
  • Sprint planning
  • Daily scrum
  • Sprint demo
  • Sprint retrospective
The Scrum Framework

Roles

Artifacts

  • Product owner
  • Scrum master
  • Team
  • Product backlog
  • Sprint backlog
  • Burndown chart
role product owner

As a user, I want to cancel a reservation, so that I don’t have to pay for a room I won’t use.

Role: Product Owner
  • Provide product vision
  • Define the features of the product as items in the product backlog
    • Each item is a user story
      • A short, simple description of a feature told from the perspective of the person who desires the new capability, usually a user or customer of the system
  • Prioritize features according to business value
role scrum master
Role: Scrum Master
  • Act as the sheepdog for the team
    • Responsible for keeping the flock heading in the same direction and keeping the wolves away
  • Work with the management to remove impediments for the scrum team
  • Responsible for the scrum process
    • Ensure that the scrum team understands the scrum values, practices, and rules
role the team
Role: The Team
  • Turn product backlog items into increments of potentially shippable functionality every sprint
  • 5~9 members
  • Cross-functional
    • Team members must have all of the skills necessary to complete the selected product backlog items
time boxed activity sprint
Time-boxed Activity: Sprint
  • Scrum projects make progress in a series of “sprints”
    • 小步快跑 (iterations)
  • Product is designed, coded, and tested during the sprint
  • Ideally, selected work does not change during a Sprint
  • Typical duration is 2~4 weeks
    • A constant duration leads to a better rhythm

15

time boxed activity sprint planning

What?

  • Define sprint goal
  • Analyze and select product backlog
  • Estimate sprint backlog in story points
  • Define time and place for the daily scrum
  • Determine sprint demo date
Time-boxed Activity: Sprint Planning
time boxed activity daily scrum meeting
Time-boxed Activity: Daily Scrum Meeting
  • Timeboxed at 15 minutes regardless of the team's size
  • All attendees should stand
    • The daily standup
  • Each team member answers three questions
    • What have you done since yesterday?
    • What are you planning to do by tomorrow?
    • Do you have any problems preventing you from accomplishing your goal?
  • Not for problem solving
  • Only the team can speak
a daily scrum
A Daily Scrum

Henrik Kniberg, Scrum and XP from the Trenches, InfoQ Enterprise Software, 2007 Development Series, 2007

time boxed activity sprint demo
Time-boxed Activity: Sprint Demo
  • All sprints end with a demo
  • Team presents what it accomplished during the sprint
    • …and not done
  • Informal collaboration
  • Invite stakeholders and management
  • No slides show
  • 4-hour time-box for one month sprints
time boxed activity sprint retrospective
Time-boxed Activity: Sprint Retrospective
  • Inspect how the last sprint went in regards to people, relationships, process and tools
  • Identify actionable improvement measures for the team to implement in the next sprint
  • 3-hour time-box for one month sprints
visual management make things obvious
Visual Management: Make Things Obvious
  • Sprint info page
  • Burndown chart
  • Wall-based taskboard
  • Defect trend chart
  • The system anatomy (Ericsson)
    • Showing the dependencies between capabilities in the system
burndown chart
Burndown Chart
  • A publicly displayed chart showing the number of tasks remaining for the current sprint
outline2
Outline
  • Agile software development
  • Agile methods
    • Scrum
      • For process management
    • Extreme programming (XP)
      • For coding
  • Conclusion
extreme programming xp
Extreme Programming (XP)
  • Coding is the key activity throughout a software product
  • XP is extreme because commonsense practices taken to extreme levels
xp is extreme
XP is Extreme
  • Since design is good, everybody will design daily
    • Refactoring
  • Since code reviews are good, review code all the time
    • Pair programming
  • Since testing is good, everybody will test all the time
    • Testing driven development (TDD)
  • Since integration testing is important, build andintegrate test several times a day
    • Continuous integration (CI)
  • Since simplicity is good, keep the system in the simplest design that supports its current functionality
xp best practices
XP Best Practices

Simple design

Prototype

User stories

Design

Iteration plan

Refactoring

Coding

Planning

Pair programming

Testing

Unit test

Release

Acceptance test

Continuous integration

outline3
Outline
  • What is agile software development?
  • Two agile methods
    • Scrum
      • For process management
    • Extreme programming (XP)
      • For coding
  • Conclusion
conclusion
Conclusion
  • Agile software development is a trend
    • Adapting to quickly changed requirements
    • Iterative delivery
  • Scrum for process management
  • XP for coding