Agiilne tarkvaraarendus kui tarkvara kvaliteedi tõstmise vahend

advertisement

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

– Koodi kvaliteet

– Tööprotsessi kvaliteet

• Kokkuvõte, küsimused

© Swedbank 2

Mis on agile?

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 onbudget

• Projects completed by the largest American companies have only approximately 42% of the originally-proposed features and functions

© Swedbank 4

Manifesto for Agile Software Development www.agilemanifesto.org

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.

© Swedbank 5

Principles behind the Agile Manifesto

1/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.

© Swedbank 6

Principles behind the Agile Manifesto

2/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 .

© Swedbank 7

Principles behind the Agile Manifesto

3/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.

© Swedbank 8

Principles behind the Agile Manifesto

4/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 reflect s on how to become more effective, then tune s and adjusts its behavior accordingly.

© Swedbank 9

Agile metoodikad

• eXtreme Programming – XP

• Scrum

• Lean

• Crystal

• DSDM

• Pragmatic

• FDD

• ...

© Swedbank 10

Kuidas agile metoodikad tagavad kvaliteedi?

11

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

© Swedbank 12

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

© Swedbank 13

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

© Swedbank 14

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

© Swedbank 15

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

© Swedbank 16

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

© Swedbank 17

Download