INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards.

Slides:



Advertisements
Similar presentations
Basic SDLC Models.
Advertisements

Chapter: 3 Agile Development
Agile Software Development کاری از : مهدی هوشان استاد راهنما : استاد آدابی.
AGILE DEVELOPMENT Outlines : Quick Look of agile development Agility
Software Life Cycle Requirements analysis System design Program design Program implementation (coding) Unit testing Integration testing System testing.
PROC-1 3. Software Process. PROC-2 What’s a process? Set of activities in creating software It involves creativity –hard to automate –Requires human judgment.
AgileMan Consulting So what the heck is Agile? It came about as a response to the high failure rate of software projects (> 60%), where failure means late,
Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.
Alternate Software Development Methodologies
SCRUM John Drew. SCRUM - overview Scrum is a project management discipline that has evolved since the early 1990s to deliver software that meets business.
NAUG NAUG Knowledge Evening – th February 2007.
Agile development By Sam Chamberlain. First a bit of history..
1 Software Testing and Quality Assurance Lecture 34 – SWE 205 Course Objective: Basics of Programming Languages & Software Construction Techniques.
Agile Software Development Matt Rice November 27, 2006.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
COMP 350: Object Oriented Analysis and Design Lecture 2
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012.
Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions.
AGILE Development Group KEVIN STEVEN EKAPUTRANTO RENDY WINARTA STEFANY TRIFOSA GLADYS NATALIA.
Agile Process: Overview n Agile software engineering represents a reasonable compromise to conventional software engineering for certain classes of software.
Software Engineering Lecture No:12. Lecture # 7
An Agile View of Process
Introduction to Agile.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Dr. Tom WayCSC Software Processes CSC 4700 Software Engineering.
Agile Programming Principles.
IS2210: Systems Analysis and Systems Design and Change Twitter:
Agile Software Development Chapter 3 – Lecture 1 Adrián Susinos.
Current Trends in Systems Develpment
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
Copyright © 2015 Curt Hill Software Development Paradigms What do you need to know?
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Agile Software Development Jeff Sutherland, one of the developers started it In February 2001, 17 Tools: continuous integration, automated or xUnit test,
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Software Development Life Cycle (SDLC)
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
It’s Agile …. like! A Corkman’s introduction to Agile software delivery.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
CS223: Software Engineering Lecture 16: The Agile Methodology.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
Steve Lundquist, PMP, M.Sc..  As a PMP certified program manager, there are numerous tools, processes, methodologies, and tricks that are available to.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
AGILE SOFTWARE DEVELOPMENT. Agile software development : Agile software development refers to a group of software development methodologies that promotes.
Introduction to Agile Development Advanced Software Engineering Dr. Nuha El-Khalili.
Project Management Software development models & methodologies
Chapter 3 Agile software development 1 Chapter 3 – Agile Software Development.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
CS223: Software Engineering
Agile Project Management and the yin & yang of
TK2023 Object-Oriented Software Engineering
Methodologies and Algorithms
COMP 350: Object Oriented Analysis and Design Lecture 2
Agile Process: Overview
Chapter 3 – Agile Software Development
Introduction If you have got a call for an Agile testing interview, then congratulations are in order. You may be feeling nervous, but it sure to be felt.
Extreme Programming.
Agile software development
System Development Methods
SD5953 Successful Project Management AGILE SOFTWARE DEVELOPMENT
Presentation transcript:

INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards ‘relatively light, effective, human powered software development techniques’. Some of the basic ideas that agile methods encompasses are 1. team work 2. Collaboration 3. Face-to-face communication 4. Doing things in small increments with minimal planning

history  The concept of Agile methods evolved in mid 1990’s as a reaction to the heavy-weight methods.  Initially Agile methods were known as “Light-weight methods”.  In 2001 the name Agile methods was adopted.  Later ‘The Agile Alliance’ was formed which is a non profit organization that promotes agile development.

The word “ Agile ” The word agile literally means  Active  Easy moving  flexible  Energetic  Fast Agile methods have all the above mentioned characteristics and are called agile methods because they are light, effective, human powered software development techniques’.

What Are A gile methods  methodologies for the development of soft wares  In agile methodology development team focuses more on soft ware rather than on its design and its documentation.  Basically agile methods are iterative in nature.  each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test.  Each iteration leads to an iteration release (which may be only an internal release) that integrates all software across the team and is a growing and evolving subset of the final system.  Purpose of these iterations is to get feed back which helps in refinement of the project.

 Principles behind use of agile methods 1. satisfy customers 2. Welcome changing requirements 3. business people and developers must work together 4. build projects around motivated individuals 5. Have face to face conversations

Why use agile methods? Improved return on investment (RIO) Early detection and cancellation of failing products Higher quality software Improved control of a project Reduced dependence on individuals and increased flexibility

What is XP? It is a deliberate and disciplined approach to software development. When to use XPWhen to use XP? Risky projects with dynamic requirements are perfect for XP. These projects will experience greater success and developer productivity.  XP is a refreshing new approach. XP is successful because it emphasizes customer involvement and promotes team work.

Goal of XP Extreme Programming is described as being: 1. An attempt to reconcile humanity and productivity 2. A mechanism for social change 3. A path to improvement 4. A style of development 5. A software development discipline  The main aim of XP is to lower the cost of change.

XP values Communication Simplicity Feedback Courage Respect

Application of Extreme Programming Extreme Programming remains a sensible choice for some projects. Projects suited to Extreme Programming are those that: Involve new or prototype technology, where the requirements change rapidly, or some development is required to discover unforeseen implementation problems Are research projects, where the resulting work is not the software product itself, but domain knowledge Are small and more easily managed through informal methods

Projects suited for more traditional methodologies are those that: Involve stable technology and have fixed requirements, where it is known that few changes will occur Involve mission critical or safety critical systems, where formal methods must be employed for safety or insurance reasons Are large projects which may overwhelm informal communication mechanisms Have complex products which continue beyond the project scope to require frequent and significant alterations, where a recorded knowledge base, or documentation set, becomes a fundamental necessity to support the maintenance  Project Managers must weigh project aspects against available methodologies to make an appropriate selection.

Comparison with other methods 1. Agile methods are sometimes characterized as being at the opposite end of the spectrum from "plan-driven" or "disciplined" methods. This distinction is misleading, as it implies that agile methods are "unplanned" or "undisciplined". 2. A more accurate distinction is that methods exist on a continuum from "adaptive" to "predictive". Agile methods lie on the "adaptive" side of this continuum. 3. Agile methods have much in common with the “Rapid application development” techniques from the 1980/90s as espoused by James Martin and others.

Contrasted with other iterative development methods Most agile methods share other iterative and incremental development methods' emphasis on building releasable software in short time periods.iterative and incremental development Agile development differs from other development models: In this model time periods are measured in weeks rather than months and work is performed in a highly collaborative manner. Most agile methods also differ by treating their time period as a strict timebox.timebox

Contrasted with the waterfall model Agile development has little in common with the waterfall model. As of 2009, the waterfall model is still in common use.waterfall model The main problem with the waterfall model is the inflexible division of a project into separate stages, so that commitments are made early on, and it is difficult to react to changes in requirements. Iterations are expensive. This means that the waterfall model is likely to be unsuitable if requirements are not well understood or are likely to change in the course of the project.

Agile methods, in contrast, produce completely developed and tested features (but a very small subset of the whole) every few weeks. The emphasis is on obtaining the smallest workable piece of functionality to deliver business value early, and continually improving it and adding further functionality throughout the life of the project.

Contrasted with "cowboy coding" Cowboy coding is the absence of a defined method: team members do whatever they feel is right. Cowboy coding Agile development's frequent re-evaluation of plans, emphasis on face-to-face communication, and relatively sparse use of documents sometimes causes people to confuse it with cowboy coding. Agile teams, however, do follow defined (and often very disciplined and rigorous) processes.

Extreme Programming - One of the most used Agile method Extreme Programming (XP) is a software engineering methodology, the most prominent of several agile software development methodologies.software engineering methodologyagile software development Like other agile methodologies, Extreme Programming differs from traditional methodologies primarily in placing a higher value on adaptability than on predictability.Extreme Programming

XP prescribes a set of day-to-day practices for managers and developers. Proponents believe that the exercise of these practices leads to a development process that is more responsive to customer needs ("agile") than traditional methods, while creating software of similar or better quality.

1. There are many specific agile development methods. Most promote development iterations teamwork, collaboration, and process adaptability throughout the life-cycle of the project. 2. Agile methods choose to do things in small increments with minimal planning, rather than long-term planning. 3. 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. 4. Agile methods emphasize face-to-face communication over written documents, when working

5. Team size is typically small (5-9 people) to help make team communication and team collaboration easier. 6. Each agile team will contain a customer representative. A person is appointed to act on behalf of stakeholders. 7. Agile methodologies include a routine and formal daily face-to-face communication among team members.

1. Agile team is self-organizing. 2. Empowered team members’ reduce their dependency on management. 3. Rather than having a manager with responsibility for planning, managing and controlling the work, the team members share increasing responsibility for managing their own work. 4. Agile methods inherently drive the team in a self- organizing direction. 5. Managers become facilitators, liaisons. Team members’ roles change too

BENEFITS:- RAPID LEARNING EARLY RETURN ON INVESTMENT INCREASED CONTROL RESPONSIVE TO CHANGE

RAPID LEARNING 1. Rapid delivery of valuable results gives an organization frequent opportunities to learn what it truly needs. 2. This process allows learning to take place at the level of the product or service. 3. Agile methods also allow you to learn about the process used to produce the product or service. 4. Ken's anecdote in the sidebar describes, the first cycles will almost certainly deliver incorrect or poor Results.

EARLY RETURN ON INVESTMENT Improving ROI occurs in three ways 1. increase revenue, 2. costs or reduce 3. delivery time. In cost-conscious environments, this mechanism enables a valuable control mechanism: measuring when to stop a project or work operation when the cost of doing the work is higher than the return for that work.

INCREASED CONTROL 1. The person responsible for prioritizing the work that is being done in an agile method is the locus of value control in an agile environment. 2. First and foremost is through the constantly evolving queue of features or results to be delivered by the agile team. 3. Secondly Stakeholders can contribute ideas to the queue at any time. 4. Ideally there is close collaboration. However, if there is disagreement. The benefit is given to those who are doing the work by giving them full control which allow full run of creativity and problem-solving skills to come into play.

RESPONSIVENESS TO CHANGE 1. Change control is put in place because change becomes very expensive in a phase-based process. 2. Agile methods turn this effect on it's head. By allowing change every cycle, well within the duration of the horizon of predictability, the team and the organization learn how to do their work in order to accommodate change. 3. Automated testing dramatically lowers defect rates and improves software design for better maintainability. 4. Frequent releases increase feedback, lower total risk, and mitigate risk of failure by front-loading potential problems

LEADERS IN AGILE TEAMS:- Good leaders know themselves well. Specifically, leaders know their position in an organization or system, as well as their strengths and weaknesses Leaders takes time regularly to reflect upon their lives and values. This trait fits well with Agile teams, since reflection is a core Agile principles. The Agile leader values reflection and encourages team members to take time to reflect and evaluate themselves for the purpose of improvement.

EVERYONE NEEDS TO UNDERSTAND THEIR RESPONSIBILITIES

LIMITATIONS/DRAWBACKS:- Agile development methods do not scale. Agile management methods do not handle large teams well. Agile development requires highly skilled and highly motivated individuals.

Conclusion Agile Methods are a fundamentally new paradigm Agile Methods are “not” lighter Traditional Methods They should not be viewed through a Traditional lens

QUESTIONS ??????? IT’S NOT ABOUT AGILE, IT'S ABOUT SUCCESS! AGILE IS A TOOL. IT'S NOT A MEANS TO AN END. “Life is really simple, but we insist on making it complicated”

references Agile-Methods-/0, , ,00.htm