Download presentation
Presentation is loading. Please wait.
1
Agile Software Development
Agile Software Development QWANtify, Inc. Patterning Solutions for your Success
2
Agenda Introducing Agile Agile Practices Agile Environment
Agile Toolset Agile Transition
3
What if... You'd say I was crazy?
600 years ago, I told you the world was round! 20 years ago, I told you money could be made by selling water! 10 years ago, I told you that software could be delivered in half the time at half the cost with twice the quality and one third the artifacts...and you could have a ton of fun developing it! Oh...and your clients would actually appreciate the system! You'd say I was crazy?
4
Well... I am a bit crazy...but... The world is not flat
Billions are made each year selling water Agile practices help you deliver higher quality software in less time at less cost with less waste...and your users will love the system. Imagine: 75 developers producing 500,000 loc in 12 months with minimal defects.
5
The Great Mistake Winston Royce and the “birth” of waterfall development.
6
Agile and “Non-Agile Iterative”
Agile is Iterative, but Iterative is not always Agile
7
What is “Agile” Ability to respond to change quickly
Technological, Resources, Requirements Ability to drive change Emphasizes software delivery Why is this bad? Do you really want to be “un-agile”?
8
Why Agile? Predictive approaches do not work.
Requirements will always change. Original Chaos Report Software is invisible and considered infinitely malleable. Specification and Design of software is an essentially complex activity. The only constant is change.
9
History 2001 – Snowbird, Utah
Leading industry experts converged to discuss state of software development process. Explore alternatives to heavy, document driven, process centric development methods. Favored people oriented, communication based method of development.
10
Agile Manifesto Manifesto for Agile Software Development
Individuals and interactions over processes and tools. Working software over comprehensive documentation. Customer collaboration over contract negotiation. Responding to change over following a plan This is, while there is value in the items on the right, we value the items on the left more.
11
Principle #1 Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Strong correlation between quality and early delivery of partial functionality. * Strong correlation between final quality and frequent delivery. * Delivery != Release Feedback through demos and partially functional prototypes * MIT Sloan Management Review
12
Principle #2 Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Statement of attitude about the team. Change is good Strong design – using object oriented techniques correctly – help.
13
Principle #3 Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Continuous Integration Constant attention to a functional product.
14
Principle #4 Business people and developers must work together daily throughout the project. All too often, the software team and the client team work against each other. Not an “us vs. them” mentality. PM work very hard to build strong rapport with clients. Involve developers to avoid “telephone game” style of communication.
15
Principle #5 Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. People are the most valuable asset. Form process to people, not people to process. Remove obstacles that slow people down. Culture, environment, procedures.
16
Principle #6 The most efficient and effective method of conveying information to and within a development team is face-to-face communication. Favor face-to-face communication over documentation. Only document it it serves an immediate need. Requirements specification Design model
17
Principle #7 Working software is the primary measure of progress.
Progress not measured by phase of the project. Progress not measured by volume of documentation. Project not measured by project plan. Project measured by amount of functional code.
18
Principle #8 Agile processes promote sustainable development. The sponsors, developers and users should be able to maintain a constant pace indefinitely. Pace yourself – it's a long haul. Software development is very hard work. Move at the fastest, sustainable, pace.
19
Principle #9 Continuous attention to technical excellence and good design enhances agility. Keep the software clean and defect free – always. Clean up problems as soon as they arise – always. At the end of the day, ensure you have a clean product.
20
Principle #10 Simplicity – the art of maximizing the amount of work not done – is essential. Take the simplest path that allows you to achieve your goals. Architecturally, Functionally Simple is easier to change than complex.
21
Principle #11 The best architectures, requirements, and designs emerge from self-organizing teams. Empower team members to make decisions. No single indvidual responsible for any one aspect. All have input. Allow most qualified individuals to influence individual decisions.
22
Principle #12 At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. Continuous process improvement. Practice to make yourself, and your team, better...more productive. Reflect on what went wrong immediately, then fix it.
23
Statistics Early release shows decrease in defect rate of 10
Testing at code check-in shows decrease in defect rate of 13 88% of organizations adopting agile cited improved productivity. 84% cited improved quality. Continuous Integration increased productivity by 17
24
Agenda Introducing Agile Agile Practices Agile Environment
Agile Toolset Agile Transition
25
Agile Practices Continuous Integration Constant Feedback
Test-Driven Development Eliminate Waste Refactoring
26
Continuous Integration
Automated and Repeatable Build Compile most recent version of source Execute all unit tests
27
Constant Feedback Frequent Prototypes Usability Prototypes
Coverage, Design, and Code Quality Metrics
28
Test-Driven Development
Test Early. Unit Tests, Integration Tests, Performance Tests, Load Tests, Acceptance Tests Regression Test Suite Automated Testing
29
Eliminate Waste DRY – Don't Repeat Yourself
Single Source of Information Automate Redundant Tasks Build Deployment
30
Refactoring Improve Design and Architecture Driven by Peer reviews
Metrics
31
Agenda Introducing Agile Agile Practices Agile Environment
Agile Toolset Agile Transition
32
General Agile Benefits
Nimbleness Speedier delivery of software Lower defect software Software with more business value Increased team productivity More enjoyable development experience
33
Agenda Introducing Agile Agile Practices Agile Environment
Agile Toolset Agile Transition
34
Agenda Introducing Agile Agile Practices Agile Environment
Agile Toolset Agile Transition
35
Agile Attitude Embrace Change Callaborate Minimize Contracts
36
Adopting Practices Identify Gaps Grass Roots
Automated and Repeatable Build Project Management Callaboration
37
Agile Mentor
38
General Traditional software development processes place competence on the process. Agile processes places competence on the people. A team of incompetent people will not succeed with even the most defined process. A team of competent people will succeed with little or no process. Agile development directly addresses the problem of rapid change.
39
SEE AgilITy Happen
40
Organizations which design systems are constrained to produce systems which are copies of the communication structures of these organizations. -- M.E. Conway the structure of the system will mirror the structure of the team that built it Any piece of software reflects the organizational structure that produced it
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.