Tarkvaratehnika Agile Methods Väledad meetodid · Tarkvaratehnika Agile Methods Väledad meetodid...
Transcript of Tarkvaratehnika Agile Methods Väledad meetodid · Tarkvaratehnika Agile Methods Väledad meetodid...
© Swedbank
Tarkvaraarenduse protsess?
© Swedbank
“Traditsiooniline” tarkvaraarendus
Understanding and writing specifications that define how the software will look and what it will do
Performing in-depth analysis and design work before estimating development costs
Ensuring software developers follow the specifications
Testing the software after implementation to make sure it works as specified
Delivering the finished result to the user
That is if the specifications is of sufficient detail then the software will be written such that it will satisfy the customer, will be within budget and will be delivered on time.
© 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
© Swedbank
Agile!
© Swedbank
Veidi ajalugu
~1950
Toyota Production System
Just-in-Time Flow – Nonstock Production
Autonomation – Stop-the-Line Culture
Lean Manufacturing/Lean Operation
© Swedbank
Tarkvaraarenduse areng
1995-2001
eXtreme Programming – XP
Scrum
Lean
Crystal
DSDM
Pragmatic
FDD
© Swedbank
Manifesto for Agile Software Developmentwww.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
Principles behind the Agile Manifesto1/4Our 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
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.
© 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.
© 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.
© Swedbank
Adaptive vs. Predictive
Adaptive methods focus on adapting quickly to changing realities. When the needs of a project change, an adaptive team changes with it. An adaptive team will have difficulty describing exactly what will happen in the future. The further away a date is, the more vague an adaptive method will be about what will happen on that date. An adaptive team can report exactly what tasks are being done next week, but only which features are planned for next month.
© Swedbank
Adaptive vs. Predictive
Predictive methods focus on planning the future in detail. A predictive team can report exactly what features and tasks are planned for the entire length of the development process. Predictive teams have difficulty changing direction. The plan is typically optimized for the original destination and changing direction can cause completed work to be thrown away and done over differently. Predictive teams will often institute a change control board to ensure that only the most valuable changes are considered.
© Swedbank
Communication
© Swedbank
eXtreme Programming – XP
© Swedbank
eXtreme Programming – XP
Embrace change – arvesta muutustega
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
Communication leads to valuable feedback which encourages simplicity which allows for courage to change.
© Swedbank
XP Practices
On-Site Customer
Co-located
Open workspace
Informative workspace
One team
We belong
We are in this together
We support each others’ work, growth and learning
© Swedbank
XP Practices
User stories
Storytelling
Story wall
Short iterations (1 or 2 weeks)
Short release cycles(1-3 months)
Planning game
Programmers give estimations
Customer prioritizes stories
© Swedbank
XP Practices
Daily stand-ups
Programmers sign up for stories
Pair programming
Test-driven development
Simple design (precisely enough design)
Refactoring
Collective code ownership
© Swedbank
XP Practices
Automated acceptance tests
UI level tests
Specified together with customer
Continuous integration
Automated build/deploy
Frequent commits
© Swedbank
XP Practices
Velocity metricsBurndown charts
RetrospectivesKPT - Keep/Problem/Try
Continuous learning
Sustainable paceSlack
© Swedbank
XP Myths
There’s no Design in XPZero DocumentsAll these tests have to slow down developmentSimple Design is only for simple problemsPairing can’t be faster/betterCollective Code Ownership makes all code worse
Corollary: No code reviews = bad code
Team environment is too distractingShould not be used for mission critical projects
© Swedbank
What XP Isn’t
Cowboy Heaven
Bureaucratic
Simplistic/Trivial
Informal
Static
The Silver Bullet
For Everybody
© Swedbank
Be Agile!