Agiilne tarkvaraarendus kui tarkvara kvaliteedi tõstmise vahend

Preview:

DESCRIPTION

Agiilne tarkvaraarendus kui tarkvara kvaliteedi tõstmise vahend. Erik Jõgi erik.jogi@swedbank.ee. 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

Agiilne tarkvaraarendus kui tarkvara kvaliteedi tõstmise vahend

Erik Jõgierik.jogi@swedbank.ee

© 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

Mis on agile?

© 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

© 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

© 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

© 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

© 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

© 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

© Swedbank

Agile metoodikad

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

10

Kuidas agile metoodikad tagavad kvaliteedi?

11

© 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

© 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

© 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

© 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

© 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

© 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

Recommended