Você está na página 1de 29

Presented by Sachin Jain

Topics
Introduction Terminology Terms Glossary Why Agile ? Agile Software Development Values of Agile Principles behind Manifesto Myths of Agile Agile Methods Conclusion References

What Is Agile
Agile - readiness for motion, nimbleness, activity, dexterity in motion Agility - The ability to both create and respond to change in order to
profit in a turbulent business environment

Chaordic
Exhibiting properties of both chaos and order
The blend of chaos and order inherent in the external environment and in people themselves, argues against the prevailing wisdom about predictability and planning Things get done because people adapt, not because they slavishly follow processes

Why we need Agile ?


Requirements Change Needs Change Priorities Change Schedule Change Technology Change Fashion Change How to deal with Change ?

Agile Software Development


Agile software development is a conceptual framework for software engineering that promotes development iterations throughout the life-cycle of the project. Software developed during one unit of time is referred to as an iteration, which may last from one to four weeks. Agile methods also emphasize working software as the primary measure of progress

Agile Software Development: Intro


Characteristics of Agile Software Development -- Light Weighted methodology -- Small to medium sized teams -- vague and/or changing requirements -- vague and/or changing techniques -- Simple design -- Minimal system into production

Terms Glossary
Impediments Anything that prevents a team member from performing work as efficiently as possible is an impediment. Each team member has an opportunity to announce impediments during the daily Scrum meeting. Product Owner Product owner is a a person who represents the business or user community and is responsible for working with the user group to determine what features will be in the product release. Story A story is a particular business need assigned to the software development team. Scrum Scrum is an iterative and incremental agile software development framework for managing software projects and product or application development. Its focus is on "a flexible, holistic product development strategy where a development team works as a unit to reach a common goal" as opposed to a "traditional, sequential approach ScrumMaster Scrum is facilitated by a ScrumMaster, who is accountable for removing impediments to the ability of the team to deliver the sprint goal/deliverables. Sprint A sprint is the basic unit of development in Scrum. The sprint is a "timeboxed" effort, i.e. it is restricted to a specific duration.The duration is fixed in advance for each sprint and is normally between one week and one month.

Terms Glossary
Daily Scrum Meeting A fifteen-minute daily meeting for each team member to answer three questions: "What have I done since the last Scrum meeting? (i.e. yesterday)" "What will I do before the next Scrum meeting? (i.e. today)" "What prevents me from performing my work as efficiently as possible? Release A release is a deployable software package that is culmination of several iterations of development. Product Backlog Prioritization of features of products with descriptions of functionality desired. Iterative Development: Iterative development is a way of breaking down the software development of a large application into smaller chunks. Product Owner: Product owner is a scrum development role for a person who represents the business or user community and is responsible for working with the user group to determine what features will be in the product release.

Values 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

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.

Principles behind the Agile Manifesto


Build projects around motivated individuals. 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.

Principles behind the Agile Manifesto


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 selforganizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Agile Myths
no design no testing no documentation no idea of progress poor quality no plan auditors wont allow it

Human Factors
Competence Common focus Collaboration Decision-making ability Fuzzy problem-solving ability Mutual trust and respect Self-organization

Agile Methods
Extreme Programming (XP) SCRUM Agile Modeling Agile Unified Process (AUP) Crystal Clear and Crystal Methods Dynamic Systems Development Method (DSDM) Feature Driven Development (FDD) GSD Kanban (development) Lean software development Velocity tracking Tailored

Extreme Programming
A system of practices that a community of software developers is evolving to address the problems of quickly delivering quality software, and then evolving it to meet changing business needs.

Agile Unified Process


AUP is a simplified version of RUP (Defined by IBM) Phases of AUP
Inception Elaboration Construction Transition

Scrum
Delivering the highest business value in the shortest time. Rapidly and repeatedly inspect actual working software (every two weeks to one month). The business sets the priorities. Our teams self-manage to determine the best way to deliver the highest priority features.

Process Comparison

Agile in Offshore Dev. - Challenges


Customers have limited budgets Customers do not understand agile development Customers do not engage as much as some of agile development frameworks demand Strict timelines and launch dates Teams not open to changes Agile is seen as unorganized process

Agile in Offshore Dev. - Solution


SOLUTION TAILORED AGILE METHODOLOGY Agile development is a concept and not a methodology XP, Scrum, AUP are examples of methodologies CMMi and other Engineering disciplines do not suggest a method. They provide guidelines for agile Basic planning, documentation and prototyping can upfront The purpose is to increase collaboration, deliver better quality, perform incremental development and become adaptive to feedback and features. Any tailored methodology with such characteristics is agile software development.

Agile in Offshore Dev. - Example


Sprint
Capture Initial Requirements Document Functional Requirements Prepare a Prototype Fix Budgets Prepare Project Plan

Incremental Development
Divide Development in Sprints of 1 3 Weeks Bugs and QA part of Sprint Deploy with each Sprint Take customer feedback within 2 working days Incorporate feedback for next sprint Allow changes in sprint plans based on customer priorities, show stopper bugs and unexpected issues

Agile in Offshore Dev. - Implementation


Educate customer Educate teams and developers Tailor the methodology to suit environment Monitor effectiveness Use tools Do not give up when challenges arise

Conclusion
Agility is about flexibility and leanness. Promotes feedback based development. Agility != Lack of Structure. Agile development is a concept and can be implemented through different frameworks. Change of process control from Top-Down to BottomUp

Conclusion a high degree of flexibility promises a high probability of success an anticipating culture increases the sense of urgency promotes the sharing of knowledge encourages dense communications facilitates honesty among developers

References
[1]. Abrahamsson P, Salo O and Ronkainen J. Agile software development methods (Review and analysis). [2]. Scott W Ambler. Agile model driven development. [3]. Cohen D, Lindvall M, Costa P. Agile software development. [4]. http://en.wikipedia.org/wiki/Agile_Modeling. [5] http://en.wikipedia.org/wiki/Scrum_28development29.

Questions ?

Você também pode gostar