17
Agiilne tarkvaraarendus kui tarkvara kvaliteedi tõstmise vahend Erik Jõgi [email protected]

Agiilne tarkvaraarendus kui tarkvara kvaliteedi tõstmise vahend

  • Upload
    barbra

  • View
    97

  • Download
    5

Embed Size (px)

DESCRIPTION

Agiilne tarkvaraarendus kui tarkvara kvaliteedi tõstmise vahend. Erik Jõgi [email protected]. Lühike eelvaade. Mis on agile? The Chaos Report Agile Manifesto Erinevad agile metoodikad Kuidas agile metoodikad tagavad kvaliteedi? Quality is built-in Funktsionaalne kvaliteet - PowerPoint PPT Presentation

Citation preview

Page 1: Agiilne tarkvaraarendus  kui tarkvara kvaliteedi  tõstmise vahend

Agiilne tarkvaraarendus kui tarkvara kvaliteedi tõstmise vahend

Erik Jõ[email protected]

Page 2: Agiilne tarkvaraarendus  kui tarkvara kvaliteedi  tõstmise vahend

© Swedbank 2

Lühike eelvaade

• Mis on agile?– The Chaos Report– Agile Manifesto– Erinevad agile metoodikad

• Kuidas agile metoodikad tagavad kvaliteedi?– Quality is built-in– Funktsionaalne kvaliteet– Koodi kvaliteet– Tööprotsessi kvaliteet

• Kokkuvõte, küsimused

Page 3: Agiilne tarkvaraarendus  kui tarkvara kvaliteedi  tõstmise vahend

Mis on agile?

Page 4: Agiilne tarkvaraarendus  kui tarkvara kvaliteedi  tõstmise vahend

© Swedbank

The Standish Group Report – 1995“The Chaos Report”• 31.1% of projects will be cancelled before they ever get

completed• 52.7% of projects will cost 189% of their original estimates• The failure to produce reliable software to handle baggage at

the new Denver airport is costing the city $1.1 million per day• In 1995 American companies and government agencies will

spend $81 billion for cancelled software projects• Only 16.2% of software projects are completed on-time and

on-budget• Projects completed by the largest American companies have

only approximately 42% of the originally-proposed features and functions

4

Page 5: Agiilne tarkvaraarendus  kui tarkvara kvaliteedi  tõstmise vahend

© Swedbank

Manifesto for Agile Software Developmentwww.agilemanifesto.org

We are uncovering better ways of developingsoftware by doing it and helping others do it.Through this work we have come to value:

Individuals and interactions over processes and toolsWorking software over comprehensive documentation

Customer collaboration over contract negotiationResponding to change over following a plan

That is, while there is value in the items onthe right, we value the items on the left more.

5

Page 6: Agiilne tarkvaraarendus  kui tarkvara kvaliteedi  tõstmise vahend

© Swedbank

Principles behind the Agile Manifesto1/4

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

6

Page 7: Agiilne tarkvaraarendus  kui tarkvara kvaliteedi  tõstmise vahend

© Swedbank

Principles behind the Agile Manifesto2/4

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

7

Page 8: Agiilne tarkvaraarendus  kui tarkvara kvaliteedi  tõstmise vahend

© Swedbank

Principles behind the Agile Manifesto3/4

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

8

Page 9: Agiilne tarkvaraarendus  kui tarkvara kvaliteedi  tõstmise vahend

© Swedbank

Principles behind the Agile Manifesto4/4

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

9

Page 10: Agiilne tarkvaraarendus  kui tarkvara kvaliteedi  tõstmise vahend

© Swedbank

Agile metoodikad

• eXtreme Programming – XP• Scrum• Lean• Crystal• DSDM• Pragmatic• FDD• ...

10

Page 11: Agiilne tarkvaraarendus  kui tarkvara kvaliteedi  tõstmise vahend

Kuidas agile metoodikad tagavad kvaliteedi?

11

Page 12: Agiilne tarkvaraarendus  kui tarkvara kvaliteedi  tõstmise vahend

© Swedbank

Quality is built-in

• Kõigi tegevuste koosmõjul sünnib kvaliteetne tulemus

• Pole tarvis eraldi Quality Assurance (QA) tegevusi – kvaliteet tagatakse läbi üldise protsessi

12

Page 13: Agiilne tarkvaraarendus  kui tarkvara kvaliteedi  tõstmise vahend

© Swedbank

Funktsionaalne kvaliteet

Kuidas kindlustada, et tarkvara vastab kliendi reaalsetele vajadustele ning toob kliendile olulist lisaväärtust?

Tihe suhtlus kliendiga• Storytelling: räägitakse läbi kogu funktsionaalsus

– Klient saab tagasisidet erinevate soovide keerukusest

• On-site customer– Vahetu suhtlus soodustab detailide selgeks rääkimist

• Klient osaleb test-case’ide loomises• Lühikesed iteratsioonid (1-2 nädalat) ja reliisitsükkel (1-3

kuud)– Kliendil on võimalik iga iteratsiooni lõpus suunda muuta

13

Page 14: Agiilne tarkvaraarendus  kui tarkvara kvaliteedi  tõstmise vahend

© Swedbank

Koodi kvaliteet

Testing: early, often and automated• Teste uuesti käivitades saab alati lihtsalt veenduda, kas

süsteem toimib õigesti

• Unit tests • UI tests

• Testid on oluline osa rakendusest• Testid on nagu dokumentatsioon• Testid kirjutatakse samal ajal kui kood

14

Page 15: Agiilne tarkvaraarendus  kui tarkvara kvaliteedi  tõstmise vahend

© Swedbank

Koodi kvaliteet

Programmeerijate tegevused, mis aitavad suurendada koodi kvaliteeti

• Collective code ownership: väldime ühe inimese riski• Simple design: YAGNI – you ain’t gonna need it• Pair programming:

– kahekesi ei kao fookus ära, toimub teadmiste jagamine

• Continuous integration: paneme kogu tiimi muudatused kokku

• Refactoring: parandame koodi struktuuri (arusaadavust) ilma funktsionaalust mõjutamata

15

Page 16: Agiilne tarkvaraarendus  kui tarkvara kvaliteedi  tõstmise vahend

© Swedbank

Tööprotsessi kvaliteet

• Retrospective: regulaarne tagasivaade ja korrigeerimine– Keep/Problem/Try

• Continuous learning: pidev enesetäiendamine tagab jätkuvalt kvaliteetse tulemuse

• Sustainable pace: väsinud inimesed ei tee head tööd

16

Page 17: Agiilne tarkvaraarendus  kui tarkvara kvaliteedi  tõstmise vahend

© Swedbank

Kokkuvõte

eXtreme Programming 4 values:• You need to improve communication• You need to seek simplicity• You need to get feedback on how well you are doing• You need to always proceed with courage

Kõigi tegevuste koosmõjul sünnib kvaliteetne tulemus

17