Agile Development Overview
-
Upload
mark-kovacevich -
Category
Documents
-
view
1.060 -
download
0
description
Transcript of Agile Development Overview
Purpose
The purpose of this presentation is to
provide an overview of Agile Development
Agile Development Defined
An iterative and incremental (evolutionary) approach to software development
which is performed in a highly collaborative manner
by self-organizing teams within an effective governance framework
with "just enough" ceremony
that produces high quality software
in a cost effective and timely manner
which meets the changing needs of its stakeholders.
Principles Behind the Agile Manifesto
● 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.
Principles Behind the Agile Manifesto (Continued)
● 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.
Types of Agile Development
● Adaptive Software Development (ASD)● Agile Modeling● Crystal methods● Dynamic System Development Methodology
(DSDM)● eXtreme Programming (XP)● Feature Driven Development● Lean Development● Scrum
Which Projects are Suited to Agile?
Agile home ground:Low criticality Senior developers Requirements change very often Small number of developers Culture that thrives on chaos
Plan-driven home ground:High criticality Junior developers Requirements don't change too often Large number of developers Culture that demands order
Tools to Support Agile Development● Attributes
● Sprint Planning● Backlog Management ● Testing/ Coordination● Resource Planning● Documentation● Integration (Quality Center, Clearcase, etc.)
● Candidates● IBM Jazz● Microsoft Solutions Framework (MSF) for Agile● VersionOne● Rally Software
Resources/ More Information
● Agile Alliance: http://www.agilealliance.org/
● Agile Software Development: http://agilesoftwaredevelopment.com/
● Agile Manifesto: http://www.agilemanifesto.org/
● Agile University: http://www.agileuniversity.org/index.jsp
● Extreme Programming: http://www.extremeprogramming.org/
Appendix
Core Scrum Practices
● Backlog. Product, Release, Sprint Backlog - lists of all functionality in product, release and sprint respectively. Product Owner responsible for the backlog management and maintenance.
● Iterative development. The whole project gets divided into sprints usually 4 weeks duration each. Sprints have fixed duration (time boxing). Time boxing enables regular deliveries, supports project heart beats and helps development teams to focus on a shippable product in the end of each sprint.
● Scrum meetings. Daily meetings where team members answers the following questions: What have you done since the last scrum meeting? What has impeded your work? What do you plan on doing between now and the next scrum meeting?
● Burn Down Charts. Scrum Sprint Burn Down chart shows implementation progress during a single sprint. It provides answers on the following questions: When sprint could be completed based on previous progress? What is the most possible scrum team Velocity in future sprints?
● Sprint review meeting. Facilitated by Scrum Master and provides an inspection of project progress at the end of the every Sprint. The goal is to improve development process by introducing new practices, changing existing practices, etc.
Agile Software Development Lifecycle
Characteristics Agile Plan-driven
Application
Primary Goals Rapid value; responding to change Predictability, stability, high assurance
Size Smaller teams and projects Larger teams and projects
Environment Turbulent; high change; project-focused Stable; low-change; project/organization focused
Management
Customer Relations
Dedicated on-site customers, where feasible; focused on prioritized increments
As-needed customer interactions; focused on contract provisions; increasingly evolutionary
Planning/Control Internalized plans; qualitative control Documented plans, quantitative control
Communications Tacit interpersonal knowledge Explicit documented knowledge
Technical
Requirements Prioritized informal stories and test cases; undergoing unforseeable change
Formalized project, capability, interface, quality, forseeable evolution requirements
Development Simple design; short increments; refactoring assumed inexpensive
Architect for parallel development; longer increments; refactoring assumed expensive
Test Executable test cases define requirements Documented test plans and procedures
Personnel
Customers Dedicated, collocated CRACK* performers CRACK* performers, not always collocated
Developers At least 30% full-time Cockburn level 2 and 3 experts; no Level 1B or -1 personnel**
50% Cockburn Level 3s early; 10% throughout; 30% Level 1B’s workable; no Level -1s**
Culture Comfort and empowerment via many degrees of freedom (thriving on chaos)
Comfort and empowerment via framework of policies and procedures (thriving on order)
* Collaborative, Representative, Authorized, Committed, Knowledgeable** These numbers will particularly vary with the complexity of the application