agile software development

18
Agile Software Development Software Development methods based on iterative and incremental development. K. Thanushan Computer Science & Technology Uva Wellassa University of Sri Lanka

Upload: thanushan-kanagarajah

Post on 28-Oct-2014

421 views

Category:

Education


0 download

DESCRIPTION

Software Development methods based on iterative and incremental development.

TRANSCRIPT

Page 1: Agile Software Development

Agile Software Development

Software Development methods based on iterative and incremental development.

K. ThanushanComputer Science & TechnologyUva Wellassa University of Sri Lanka

Page 2: Agile Software Development

Content Introduction Agile Development Lifecycle Manifesto for Agile Software Development Twelve principles behind the Agile Manifesto What is Agile ? Scrum

Overview of Scrum framework Extreme Programming (XP)

Twelve supporting practices in XP Overview of Extreme programming

Feature Driven Development (FDD) Waterfall VS Agile Benefits of Agile Methodology Conclusion References

Page 3: Agile Software Development

Introduction An agile method is a software development methodology designed for

the management and support of iterative and incremental development of business systems in environments where change is constant.

Agile methods use software development techniques that enhance teamwork in small, empowered teams and support active customer involvement.

An agile method is designed to produce working software early, using communication, feedback, learning, and frequent meetings in preference to modeling and documentation.

Agile software development methodologies is not only suitable for software developers but also for Team Leaders, Project Managers, Product Managers, Development Managers, Testers, QA Managers, QA Engineers, Technical Writers, UX Designers, anyone involved in the delivering software.

Page 4: Agile Software Development

Agile Development Lifecycle

Page 5: Agile Software Development

Manifesto for Agile Software Development

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan

Page 6: Agile Software Development

Twelve 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. 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 7: Agile Software Development

What is Agile ?

Agile development is not a methodology in itself. It is an umbrella term that describes several agile methodologies.

These methodologies included Scrum Extreme Programming (XP) Crystal Feature Driven Development (FDD) Dynamic Software Development Method (DSDM).

Since then, lean practices have also emerged as a valuable agile methodology and so are included under the agile development umbrella in the illustration later.

Page 8: Agile Software Development

Scrum Scrum uses the real-world progress of a project — not a best

guess or uninformed forecast — to plan and schedule releases.

In Scrum, projects are divided into succinct work cadences, known as sprints, which are typically one to three weeks in duration. At the end of each sprint, stakeholders and team members meet to assess the project’s progress and plan its next steps.

This allows project’s direction to be adjusted or reoriented based on the work completed, not speculation or predictions.

Philosophically, the emphasis on an ongoing assessment of completed work is largely responsible for its popularity with managers and developers alike. But what allows the Scrum methodology to really work is a set of roles, responsibilities, and meetings that never change.

Page 9: Agile Software Development

Overview of Scrum framework

Page 10: Agile Software Development

Extreme Programming (XP) XP has emerged as one of the most popular and controversial

agile methodologies. XP is a disciplined approach to delivering high-quality software quickly and continuously. It promotes high customer involvement, rapid feedback loops, continuous testing and planning, and close teamwork to deliver working software at very frequent intervals, typically every 1-3 weeks.

The original XP recipe is based on four simple values – simplicity, communication, feedback, and courage – and twelve supporting practices

Page 11: Agile Software Development

Twelve supporting practices in XP Planning Game Small Releases Customer Acceptance Tests Simple Design Pair Programming Test-Driven Development Refactoring Continuous Integration Collective Code Ownership Coding Standards Metaphor Sustainable Pace

Page 12: Agile Software Development

Overview of Extreme programming

Page 13: Agile Software Development

Feature Driven Development (FDD)

FDD is a wrapper methodology, in that it allows you to apply a method to manage projects at a very high level, but it still allows you to use other methodologies at a lower level.

FDD's focus is on being able to set estimates and schedules and to report on the status of a project as a whole, or at a very granular level, but it doesn't prescribe a specific method to apply in order to create the schedule, leaving that up to you to decide.

The idea is that you can look at your project and state with some certainty what the project status is, whether you are on

time, slipping, early, and so on.

Page 14: Agile Software Development

Waterfall VS Agile

Page 15: Agile Software Development

Benefits of Agile Methodology Delivers highest business values early on in the

project Promotes customer satisfaction Provides customer driven approach Focuses on speed of delivery Provides openness and visibility to customers Removes impediments in a prioritized and

systematic manner Improves employee retention by empowering

employees and by promoting self-management, team communication, learning, and value-building

Page 16: Agile Software Development

Conclusion we can say that Agile has got a number advantages and our

team uses it every time we are faced with tight deadlines and we have to, as always, be quick and efficient.

Development teams with a maximum of 10 people are best for agile, for agile loses its original purpose with teams above that number.

RUP is still the best method for larger projects that need a lot of documentation and have teams with more than 15 people.

If you haven’t already tried Agile, do it – you might like it and it may sometimes solve some of your possible developmental problems.

Page 18: Agile Software Development

Thank You