agile software development
DESCRIPTION
I normally teach Introduction to Agile and Scrum over a 2 day session to teams. Here is a highly condensed 2-hour version of it that covers agile thinking and introduces scrum as a framework without getting into details. I use it as a course material for teaching to teams or groups looking to get a perspective on "why" as opposed to "how" aspect of agile.TRANSCRIPT
![Page 1: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/1.jpg)
Tathagat Varma http://managewell.net
Pic: http://www.seas.harvard.edu/news/2014/08/self-organizing-thousand-robot-swarm
Agile Software Development
![Page 2: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/2.jpg)
The changing nature of work…
http://www.jarche.com/wp-content/uploads/2013/01/changing-nature-of-work.png
![Page 3: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/3.jpg)
The Work Spectrum
http://performancexdesign.wordpress.com/2011/05/04/mapping-informal-and-formal-learning-strategies-to-real-work/
![Page 4: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/4.jpg)
Not all Knowledge Work is same!
http://www.mckinsey.com/insights/organization/rethinking_knowledge_work_a_strategic_approach
![Page 5: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/5.jpg)
Types of Problems
![Page 6: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/6.jpg)
http://www.emilianosoldipmp.info/wp-content/uploads/2012/08/Stacey.png
That’s the problem we need
to solve!
And these are the methods we
are using!!!
![Page 7: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/7.jpg)
Predictive vs. Adaptive
![Page 8: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/8.jpg)
Predictive vs. Adaptive • Development methods exist on a continuum from adaptive to predictive.[15] • Agile methods lie on the adaptive side of this continuum. One key of adaptive
development methods is a "Rolling Wave" approach to schedule planning, which identifies milestones but leaves flexibility in the path to reach them, and also allows for the milestones themselves to change.[16] Adaptive methods focus on adapting quickly to changing realities. When the needs of a project change, an adaptive team changes as well. 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 cannot report exactly what tasks they will do next week, but only which features they plan for next month. When asked about a release six months from now, an adaptive team might be able to report only the mission statement for the release, or a statement of expected value vs. cost.
• Predictive methods, in contrast, focus on analysing and planning the future in detail and cater for known risks. In the extremes, a predictive team can report exactly what features and tasks are planned for the entire length of the development process. Predictive methods rely on effective early phase analysis and if this goes very wrong, the project may have difficulty changing direction. Predictive teams will often institute a Change Control Board to ensure that only the most valuable changes are considered.
https://en.wikipedia.org/wiki/Agile_software_development
![Page 9: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/9.jpg)
What is the most important part in these two machines?
“The Brakes!!!” They let you go faster…
![Page 10: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/10.jpg)
Agility vs. Discipline?
http://www.ibm.com/developerworks/rational/library/edge/08/feb08/lines_barnes_holmes_ambler/
![Page 11: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/11.jpg)
Process Spectrum…
http://www.crisp.se/file-uploads/Kanban-vs-Scrum.pdf
![Page 12: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/12.jpg)
Waterfall Software Development
Picture from http://damonpoole.blogspot.in/2009/07/traditional-development-game-of.html
Limitations and Assumptions 1. Wrong analogy: Software development ≠ Production 2. Customers know EVERYTHING upfront and that requirement won’t change 3. Legacy from the past: implicitly assumes CPU time is costly, so focuses on doing everything
upfront to minimize ‘machine time’ for trial and error 4. “Wicked Problem”: Designers and developers know how exactly how to build 5. Very long feedback cycles not suitable for today’s pace of innovation
![Page 13: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/13.jpg)
Waterfall challenges: Poor Visibility
http://www.agilenutshell.com/agile_vs_waterfall
![Page 14: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/14.jpg)
Waterfall challenges: Poor Risk Management
http://www.agilenutshell.com/agile_vs_waterfall
![Page 15: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/15.jpg)
Waterfall challenges: Poor Quality
http://www.agilenutshell.com/agile_vs_waterfall
![Page 16: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/16.jpg)
Waterfall challenges: Poor Change Management
http://www.agilenutshell.com/agile_vs_waterfall
![Page 17: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/17.jpg)
“V” Model
http://www.testingexcellence.com/v-model/
![Page 18: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/18.jpg)
“W” Model of Testing
http://gerrardconsulting.com/?q=node/531
![Page 19: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/19.jpg)
Spiral
http://en.wikipedia.org/wiki/File:Spiral_model_%28Boehm,_1988%29.svg
![Page 20: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/20.jpg)
Incremental Development
• Incremental development – is a scheduling and staging strategy – in which the various parts of the system are developed at different
times or rates, – and integrated as they are completed. – It does not imply, require nor preclude iterative development or
waterfall development - both of those are rework strategies.
• The alternative to incremental development is to develop the entire system with a "big bang" integration
![Page 21: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/21.jpg)
Iterative Development
• Iterative development – is a rework scheduling strategy – in which time is set aside to revise and improve parts of the
system. – It does not presuppose incremental development, but works
very well with it. A typical difference is that the output from an increment is not necessarily subject to further refinement, and its' testing or user feedback is not used as input for revising the plans or specifications of the successive increments. On the contrary, the output from an iteration is examined for modification, and especially for revising the targets of the successive iterations.
![Page 22: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/22.jpg)
Incremental vs. Iterative
http://www.planetgeek.ch/wp-content/uploads/2011/01/Slide7.png
![Page 23: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/23.jpg)
Incremental vs. Iterative
http://www.infoq.com/resource/news/2008/01/iterating-and-incrementing/en/resources/Patton_Incremental_Iterative_MnaLisa.jpg
![Page 24: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/24.jpg)
http://itsadeliverything.com/wordpress/images//iterative-incremental-mona-lisa.png
Incremental and Iterative
![Page 25: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/25.jpg)
![Page 26: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/26.jpg)
12 Agile Principles
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.
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.
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.
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.
![Page 27: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/27.jpg)
Waterfall vs. Agile
http://www.isixsigma.com/new-to-six-sigma/design-for-six-sigma-dfss/doing-some-software-six-sigma-and-agile-%E2%90%98mythbusting%E2%90%99/
![Page 28: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/28.jpg)
Waterfall vs. Agile
http://www.agilenutshell.com/agile_vs_waterfall
By doing them continuously: • Quality improves because
testing starts from day one. • Visibility improves because
you are 1/2 way through the project when you have built 1/2 the features.
• Risk is reduced because you are getting feedback early, and
• Customers are happy because they can make changes without paying exorbitant costs.
![Page 29: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/29.jpg)
http://www.targetprocess.com/blog/wp-content/uploads/2009/06/agile_waterfall-792810.png
![Page 30: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/30.jpg)
Waterfall vs. Agile
https://en.wikipedia.org/wiki/File:Agile-vs-iterative-flow.jpg
![Page 31: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/31.jpg)
Waterfall vs. Agile: Constraints
![Page 32: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/32.jpg)
Waterfall Vs. Agile: Managing Changes
http://www.agileenterprises.com/agile-development/advantages-of-agile-development
![Page 33: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/33.jpg)
Waterfall vs. Agile: Risk vs. Value Delivered
http://www.testingthefuture.net/wp-content/uploads/2011/12/waterfall_versus_agile_development.png
![Page 34: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/34.jpg)
Agile ROI
http://www.agileload.com/agileload//blog/2012/10/22/agile-performance-testing-process---whitepaper
![Page 35: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/35.jpg)
agile lifecycle – big picture
![Page 36: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/36.jpg)
http://blogs.salesforce.com/company/2012/06/agile-approach-to-talent-management.html
Agile lifecycle – small picture
![Page 37: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/37.jpg)
So, what happens in each increment?
Increment
≠
Mini-waterfall
![Page 38: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/38.jpg)
feedback loop in agile lifecycles
![Page 39: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/39.jpg)
test-code-refactor loop
![Page 40: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/40.jpg)
http://blog.grazitti.com/testing-in-the-agile-world/
QA in Agile
![Page 41: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/41.jpg)
from daily builds to project
![Page 42: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/42.jpg)
Feedback Loops in Traditional Techniques vs. Agile Techniques
![Page 43: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/43.jpg)
XP Feedback Loops
http://www.ssa-outsourcing.com/services/project-management/
![Page 44: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/44.jpg)
![Page 45: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/45.jpg)
Schneider Culture Model
http://www.infoq.com/articles/organizational-culture-and-agile
![Page 46: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/46.jpg)
Agile Culture
http://collectiveedgecoaching.com/wp-content/uploads/2010/07/Agile-Culture-Quad-diagram-results2.png
![Page 47: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/47.jpg)
Role of Management
http://www.thoughtworks-studios.com/sites/default/files/assets/agile_leadership.png
![Page 48: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/48.jpg)
![Page 49: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/49.jpg)
What is Scrum?
• "Scrum is a team of eight individuals in Rugby. Everyone in the pack acts together with everyone else to move the ball down the field in small incremental steps. Teams work as tight, integrated units with whole team focusing on a single goal.“
• "The relay race approach to product development may conflict with the goals of maximum speed and flexibility. Instead, a holistic or ‘rugby’ approach – where a team tries to go the distance as a unit, passing the ball back and forth – may better serve today’s competitive requirements.”-The New New Product Development Game” by Hirotaka Takeuchi and Ikujiro Nonaka.
![Page 50: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/50.jpg)
What is Scrum? • Scrum is an iterative, incremental process for developing any product or managing any work. • It produces a potentially shippable set of functionality at the end of every iteration. • It's attributes are:
– Scrum is an agile process to manage and control development work. – Scrum is a wrapper for existing engineering practices. – Scrum is a team-based approach to iteratively, incrementally develop systems and products when
requirements are rapidly changing – Scrum is a process that controls the chaos of conflicting interests and needs. – Scrum is a way to improve communications and maximize co-operation. – Scrum is a way to detect and cause the removal of anything that gets in the way of developing
and delivering products.
– Scrum is a way to maximize productivity. – Scrum is scalable from single projects to entire organizations. Scrum has controlled and organized
development and implementation for multiple interrelated products and projects with over a thousand developers and implementers.
– Scrum is a way for everyone to feel good about their job, their contributions, and that they have done the very best they possibly could.
![Page 51: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/51.jpg)
Scrum
![Page 52: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/52.jpg)
http://www.flickr.com/photos/magia3e/6233729753/
![Page 53: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/53.jpg)
Roles, Ceremonies and Artifacts Scrum Team is small (5-9), cross-functional team members from Dev, UX, QA (excluding Product Owner) to ship complete feature(s) end to end
Scrum Master is the servant leader responsible for supporting team
Product Owner owns Product Backlog and sets appropriate priority for team to act upon
Roles
Product Owner
Scrum Master
Scrum Team
Ceremonies
Sprint Planning Meeting
Daily Stand-ups
Backlog Grooming
Product Demo
Sprint Retrospective
Artifacts
Product Backlog
Sprint Backlog
Increment
Release Burn-down Chart
Sprint Burn-down Chart
![Page 54: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/54.jpg)
Scrum Roles
![Page 55: Agile Software Development](https://reader033.vdocuments.us/reader033/viewer/2022060108/554f48dfb4c905524c8b4805/html5/thumbnails/55.jpg)
References
• http://agilemanifesto.org • http://agilealliance.org • http://scrumalliance.org • http://scrum.org • http://www.extremeprogramming.org/ • http://www.dsdm.org/dig-deeper/book/dsdm-
atern-handbook