the agile process

34
AGILE SOFTWARE DEVELOPMENT References: 1. R.S. Pressman & Associates, Inc. Software Engineering: A Practitioner’s Approach, 6/e .copyright © 1996, 2001, 2005. 2. http://www.comp.lancs.ac.uk/computing/resources/IanS/

Upload: phamphutuctu

Post on 03-Oct-2015

27 views

Category:

Documents


2 download

DESCRIPTION

Quy trình phát triển phần mềm Agile

TRANSCRIPT

  • AGILE SOFTWARE DEVELOPMENT

    References:

    1. R.S. Pressman & Associates, Inc. Software Engineering: A Practitioners

    Approach, 6/e .copyright 1996, 2001, 2005.

    2. http://www.comp.lancs.ac.uk/computing/resources/IanS/

  • Nhu cu Pht trin PM nhanh

    C th xc nh tt c cc yu cu ca h thng phn

    mm thi im bt u d n khng?

    Pht trin v chuyn giao nhanh l nhng yu cu quan

    trng ca cc h thng PM hin nay?

    Cc yu cu nghip v nhanh thay i

    PM phi nhanh chng phn nh c nhu cu thay i

    nghip v.

  • Nhu cu Pht trin PM nhanh

    Pht trin PM nhanh

    c t, thit k v hin thc l xen k nhau.

    H thng c pht trin l mt dy cc phin bn.

    Cc bn lin quan tham gia vo qu trnh nh gi cc

    phin bn.

    GUI thng pht trin dng cc IDE hay cc cng c

    ha.

  • Cc phng php Agile

    Chi ph ca nhng PP pht trin PM trong nhng nm 80s, 90s

    pht trin cc PP Agile.

    Tp trung vo codes hn l thit k.

    Da trn tip cn pht trin PM theo phng php lp.

    D kin chuyn giao nhanh v tin ha nhanh, p ng thay

    i yu cu.

    Mc ch cc PP Agile: gim chi ph trong qui trnh pht trin PM

    (vd. Hn ch documentation). p ng nhanh nhng thay i yu

    cu m khng phi lm li qu nhiu.

  • Agile l g?

    Tip cn ca nhng ngi lm thc t (Practitioners).

    Tp cc phng php pht trin PM m yu cu v gii php s tin

    ha thng qua tng tc gia cc nhm tham gia. Agile mun thc

    y:

    Lp k hoch ty bin,

    Pht trin tin ha,

    Chuyn giao sm,

    Ci tin lin tc

    Phn hi nhanh i vi cc thay i.

    Ref: http://en.wikipedia.org/wiki/Agile_software_development

  • Tuyn ngn (Manifesto) cho Agile Software Development

    We are uncovering better ways of developing software by doing it and

    helping others do it. Through this work we have come 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

    That is, while there is value in the items on the right, we value the

    items on the left more.

    Ref: http://en.wikipedia.org/wiki/Agile_software_development

  • Cc nguyn tc ca cc phng php Agile

    The Agile Manifesto is based on twelve principles:

    1. Customer satisfaction by rapid delivery of useful software

    2. Welcome changing requirements, even late in development

    3. Working software is delivered frequently (weeks rather than months)

    4. Close, daily cooperation between business people and developers

    5. Projects are built around motivated individuals, who should be trusted

    6. Face-to-face conversation is the best form of communication (co-

    location)

  • Cc nguyn tc ca cc phng php Agile

    7. Working software is the principal measure of progress.

    8. Sustainable development, able to maintain a constant pace

    9. Continuous attention to technical excellence and good design

    10. Simplicitythe art of maximizing the amount of work not doneis

    essential

    11. Self-organizing teams

    12. Regular adaptation to changing circumstances

  • Kh nng ng dng Agile

    Pht trin sn phm: mt cng ty PM ang pht trin mt

    sn phm qui m nh v va bn.

    Pht trin PM theo nhu cu cho mt t chc m t chc

    cam kt tham gia vo qu trnh pht trin. T chc khng nn

    c qu nhiu qui tc, qui nh nh hng n phn mm.

    V tp trung vo nhng team nh, kt hp cht ch nn s c

    nhiu vn khi scale nhng phng php agile cho nhng h

    thng ln.

  • Vn vi cc phng php Agile

    Kh gi c s quan tm ca khch hng khi tham gia vo qui trnh.

    Thnh vin trong team c th khng ph hp vi nhng phng php

    agile.

    Xc nh u tin cho nhng thay i c th kh v c nhiu bn lin

    quan.

    Duy tr s n gin ha yu cu thm cng vic.

    Vn k kt hp ng?

  • Pht trin Agile v Pht trin nh hng k hoch

    Pht trin hng k hoch (Plan-driven development)

    Tip cn hng k hoch cho CNPM da trn nhng bc pht trin

    tch bit vi u ra mi bc c lp k hoch trc.

    Iteration xut hin trong nhng hat ng (Specification, Design,

    Implement, )

    Agile Development

    Specification, Design, Implementation and Testing l xen k.

    u ra t qu trnh pht trin c quyt nh thng qua qu trnh m

    phn trong sut qu trnh pht trin.

  • Pht trin Agile v Pht trin nh hng k hoch

  • Vn v t chc, con ngi, k thut

    Nhiu project kt hp c tip cn agile v nh hng k hoch.

    Cn c specification v design chi tit trc khi implementation hay

    khng? Nu cn, th dng tip cn nh hng k hoch.

    Cn thit chuyn giao tng cng cho khch hng v ly kin phn

    hi? Nu cn, th xem xt dng Agile.

    Qui m h thng c ln khng? Agile hiu qun khi pht trin vi

    team nh, gn nhau. iu ny khng ph hp vi cc h thng ln

    i hi team ln. Tip cn nh hng k hoch c th c

    dng.

  • Vn v t chc, con ngi, k thut

    Kiu h thng pht trin (Type of system)?

    Tip cn nh hng k hoch c th cn cho cc h thng m

    i hi nhiu phn tch trc khi hin thc.

    Thi gian sng (Lifetime)?

    Long-lifetime systems cn nhiu ti liu thit k chuyn giao

    nh ban u ca nhng developer cho team h tr.

    Development team t chc ntn?

    Development team l phn tn hay mt phn l outsourced, cn pht trin

    cc ti liu thit k giao tip qua gia cc nhm trong team pht trin.

    C vn v t chc & vn ha c th nh hng n pht trin h

    thng

  • Vn v t chc, con ngi, k thut

    C vn v t chc & vn ha c th nh hng n pht trin

    h thng?

    Mt s t chc c vn ha pht trin hng k hoch.

    Trnh Developver v Programmer trong team ntn?

    Agile thng thng i hi mc k nng cao hn plan-driven. Vi

    Plan-driven, i khi programmer ch dch t thit k chi tit qua codes.

  • Iteration

    L heartbeat ca Agile development.

    Chuyn giao nhng on m c test, c trong mt khong

    thi gian ngn

    Thi gian cho mt Iteration: 2 tun?

    Thi gian cho mi Iteration nn c nh trong sut qu trnh

    i vi cc long Iteration, team c th built mt water-fall

    prcocess cho mt Iteration

    XP xut 1 4 tun

    Scrum xut sprints 30 ngy

    RUP xut t 2 6 tun

  • Iteration

  • Iteration

    Lp k hoch (Iteration planning)

    Pht trin (Iteration Execution)

    Chuyn giao (Deliver & accept)

  • Iteration Planning

    Xem v xc nh u tin cho tng items trong backblog.

    nh ngha v c lng nhng tasks cn thit deliver.

    Tho lun, dn xp v chi tit yu cu, c lng.

    Tt c team members phi c trch nhim chun b cho Iteration planning

    Iteration planning: t hn 1 ngy

    Agile team leader/Scrum Master; product owner/business analyst; developer; test, QA, and documentation personnel; and architect.

  • Iteration Planning

    Trch nhim ca Product Owner Trch nhim ca Development team

    Review v chp nhn k hoch Iteration, m bo quan im v mc tiu vn thch hp.

    Review li cc items c u tin cao trong backblog v chun b cc cu hi

    Xem li cc items trong backblog xc nh li u tin trng hp cn thit.

    Xem xt cc technical issues, rng buc, ph thuc, v chia s vi team.

    Hiu c nhu cu khch hng, gi tr business m mi iteration mang li.

    Suy ngh v cc cng vic chun b estimate trong cuc hp

    Chun b k lng hn trn chi tit ca cc yu cu

  • Iteration Execution

    Iteration cycle s lp n khi tt c backblog items hon thnh

  • Iteration Execution

    Tng developer hoc pair of developers:

    Nhn trch nhim cho mi backblog item.

    Develop mi backblog item (design, code, integrate, and test).

    Chuyn giao, tch hp tng backblog item vo h thng

    Cho bit backblog item lm xong v sn sng cho test.

  • Accepting Iteration

    Hp chp nhp Iteration

    Trnh by kt qu

    Tho lun, nhn phn hi t customer

    Product owners quyt nh trng thi accept cho nhng vic lm v nhng vic cn li, tip theo cho Iteration sau

  • Daily stand-ups

    Have the meeting at the same time every day; the team decides when this should be.

    Have the meeting in the same location every day; this avoids the frustration of having to secure a room, find the room, and communicate room shifts to team members.

    Make sure everyone stands up; sitting promotes problem solving, discussions that should be held after the stand-up.

    Limit the meeting to a 15-minute time box; stick to 1 to 2 minutes per report.

    Start on time; late-comers can adversely affect your ability to keep the meeting to 15 minutes.

    Participants should include all members of the development team: the folks who have their hands on the keyboards and the folks who understand the details behind the user stories

  • Daily stand-ups

    What I did yesterday

    What I am doing today.

    What is getting in my way? (Am I blocked?)

  • Extreme Programming - XP

    The most widely used agile process, originally proposed by Kent Beck

    XP Planning

    Begins with the creation of user stories (Features & Functionalities)

    Agile team assesses each story and assigns a cost

    Stories are grouped to for a deliverable increment

    A commitment is made on delivery date Order the stories (all, riskiest, highest value)

    After the first increment project velocity is used to help define subsequent delivery dates for other increments

  • Extreme Programming - XP

    unit t est

    cont inuous int egrat ion

    accept ance t est ing

    pair

    programming

    Release

    user st ories

    values

    accept ance t est crit eria

    it erat ion plan

    simple design

    CRC cards

    spike solut ions

    prot ot ypes

    refact oring

    sof tware increment

    project velocity computed

  • Pair programming

  • Pair programming

  • Scrum Process

    "Pig" roles: Pigs are the ones committed to the project and the Scrum process

    Product Owner

    ScrumMaster

    Team: A small team of 5-9 people with cross-functional skills to do the actual work (designer, developer etc.).

    "Chicken" roles

    ideas, needs, desires

    planning of each sprint

    Review, feedback

    Users

    Stakeholders (Customers, Vendors)

    Managers: people that will set up the environment for the product development organizations.

  • Scrum Process

    Schwaber & Beedle: 1986

  • Scrum Process

  • T hc

    Xem li bi ging

    c thm bi ging ca Ian Sommerville: chapter

    3: Agile Software Development.

    (http://www.softwareengineering-9.com/)