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:
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