Agile

16
Agile Development Abhinav Regmi KCM BBIS (2008-2012)

description

Agile Development

Transcript of Agile

Page 1: Agile

Agile Development

Abhinav Regmi KCM

BBIS (2008-2012)

Page 2: Agile

What is Agile Development?Agile software development is a group of

software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams.

It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change.

Page 3: Agile
Page 4: Agile

CharacteristicsAgile methods break tasks into small

increments with minimal planning and do not directly involve long-term planning.

Iterations are short time frames that typically last from one to four weeks.

Each iteration involves a team working through a full software development cycle, including planning, requirements analysis, design, coding, unit testing, and acceptance testing when a working product is demonstrated to stakeholders.

This minimizes overall risk and allows the project to adapt to changes quickly.

Page 5: Agile

Contd.Team composition in an agile project is

usually cross-functional and self-organizing, without consideration for any existing corporate hierarchy or the corporate roles of team members.

Team members normally take responsibility for tasks that deliver the functionality an iteration requires.

They decide individually how to meet an iteration's requirements.

Page 6: Agile

Contd.Agile methods emphasize face-to-face

communication over written documents when the team is all in the same location.

Most agile teams work in a single open office which facilitates such communication.

Team size is typically small (5-9 people) to simplify team communication and team collaboration.

Larger development efforts can be delivered by multiple teams working toward a common goal or on different parts of an effort.

This might require a coordination of priorities across teams.

When a team works in different locations, they maintain daily contact through videoconferencing, voice, e-mail, etc.

Page 7: Agile

How Agile is DifferentFocus on collaboration:

Less paperwork and more conversation Stakeholders actively involved

Focus on working software: Greater feedback makes agile projects easier to manage Less documentation is required Less bureaucracy

Agilists are generalizing specialists: Less hand offs between people Less people required Specialists find it difficult at first to fit into the team

Agile is based on practice, not theory: This is a significant change from traditional You need to see how agile works in practice to truly

understand it

Page 8: Agile

Challenges of Agile

Page 9: Agile

Challenges of AgileSome of the primary challenges observed in organizations

moving towards an Agile mindset are:

People working as cohesive teams and not a set of individuals

Increased visibility into the work that is actually done

Titles become redundant

Privacy is less important than sharing

Costs often increase when implementing change

Page 10: Agile

Contd.Failure is acceptable, as long as it is identified

earlier

Consistent velocity versus peaks and troughs

Micro management is felt even though teams are supposed to be self-organizing.

Teams need support from multiple directions.

Reactionary is acceptable and expected.

Target scope often moves, thus less upfront design

Page 11: Agile

Agile methodsSCRUM and eXtreme Programming [XP] are the

most common).These methodologies consist of best practices and

processes that, when development teams align with them, lead to the following positive outcomes:

•Increased quality of code delivered

•Teams evolving to constantly get better

•Higher levels of customer satisfaction (both internal and external)

•Consistency in delivery estimates

Page 12: Agile

Comparison with other methods

Traditional Methods: sequential phased approach. Eg. Water flow model.

Project Phase

TestCodeArchitecture & Design

Requirement Analysis

Deploy

Page 13: Agile

Iterative approach: Overlapping phases of development. Eg. Agile development.

Page 14: Agile

CriticismAgile methodologies have been criticized for lacking any

scientifically-based evidence to support their proponents' claims.

Another common criticism of agile software development methods is that it is developer-centric rather than user-centric.

Agile software development focuses on processes for getting requirements and developing code and does not focus on product design.

Agile methodologies can also be inefficient in large organizations and certain types of projects.

Agile methods seem best for developmental and non-sequential projects.

Many organizations believe that agile methodologies are too

extreme, and adopt a hybrid approach that mixes elements of agile and plan-driven approaches.

Page 15: Agile
Page 16: Agile

THANK YOU