Introduction to Agile Development Advanced Software Engineering 603 492 Dr. Nuha El-Khalili.

Slides:



Advertisements
Similar presentations
Chapter: 3 Agile Development
Advertisements

Agile Software Development کاری از : مهدی هوشان استاد راهنما : استاد آدابی.
AGILE DEVELOPMENT Outlines : Quick Look of agile development Agility
COPYRIGHT © 2012 ALCATEL-LUCENT. ALL RIGHTS RESERVED. 1 Agile documentation development methodology Giby Panicker and Judith Benjamin 1-Dec-2012.
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall B.1.
NAUG NAUG Knowledge Evening – th February 2007.
Agile development By Sam Chamberlain. First a bit of history..
Agile Software Development. Traditional Software Development 1.Initiation (RFP) 2.Feasibility study Technical – can we build it? Economic – should we.
Agile Programing Methods Drew Arrigoni. The Agile Manifesto ● Individual Interactions over Processes and Tools ● Working Software over Comprehensive Documentation.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions.
An Agile View of Process
Software SYSTEMS DEVELOPMENT
Introduction to Agile Methodologies and Concepts Roy Osherove Principal, Team Agile Blog : ISerializable.com.
Introduction to Agile.
Software engineering Process models Pavel Agejkin.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Dr. Tom WayCSC Software Processes CSC 4700 Software Engineering.
Software Engineering Modern Approaches
CSE G674/2009 Project Project Management Section Presented by: Amir Aref Adib.
IS2210: Systems Analysis and Systems Design and Change Twitter:
Agile Software Development Chapter 3 – Lecture 1 Adrián Susinos.
AgileCamp Presents: Agile 101. Good luck in your presentation! This slide deck has been shared by AgileCamp Kit under the Creative Commons Attribution.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Agile Development In 2001, a group called the “Agile Alliance” signed a “manifesto” that stated: Individuals and Interactions over processes and tools.
Teaching material for a course in Software Project Management & Software Engineering – part II.
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.
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.
The Confounding World of Process Methodologies By Thelma Hataria.
Basic Approach Development driven by time boxing May sacrifice requirements in order to keep schedule (time boxed) Steer project as you go based on user.
Why (or When) Agile Fails Creating high performance software delivery teams.
Lecture 4 – XP and Agile 17/9/15. Plan-driven and agile development Plan-driven development A plan-driven approach to software engineering is based around.
Agile Software Development By Kshitij Limaye CSC 532.
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.
#AgileEd. Using Agile in the Classroom Cindy Royal, Associate Professor Texas State University slideshare.net/cindyroyal #AgileEd.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix B Agile Methodologies B.1.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Agile 101. Feasibility Study SDLC – What is it? Systems Development Life Cycle: The most commonly used, and generally accepted, project management approach..
Teaching slides Chapter 2. Chapter 2 Software Engineering Methodologies Introduction Why a methodology? Agile methodologies Waterfall model Rational Unified.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
CS 4500: Software Development Software Process. Materials Sommmerville Chapters 1, 2 and 3 Software Cycle and Models:
Kanban Advanced Software Engineering Dr Nuha El-Khalili.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
AGILE SOFTWARE DEVELOPMENT. Agile software development : Agile software development refers to a group of software development methodologies that promotes.
Chapter 2- Software Development Process  Product Components  Software Project Staff  Software Development Lifecycle Models.
Agile Gintarė Bernotaitytė © 2013.
Embedded Systems Software Engineering
Agile Project Management and the yin & yang of
Introduction to Agile Software Development
Appendix B Agile Methodologies
Software Engineering Process
What Customers Really Think About Your System By: ManagerManager.
Teaching slides Chapter 1.
Lecture 2 Revision of Models of a Software Process
Chapter 3: Agile Software Processes
Appendix B Agile Methodologies
Extreme Programming.
Agile software development
The New Methodology Martin Fowler Paper Presented by Vyshali Belagodu
System Development Methods
SD5953 Successful Project Management AGILE SOFTWARE DEVELOPMENT
Presentation transcript:

Introduction to Agile Development Advanced Software Engineering Dr. Nuha El-Khalili

Advanced Software Engineering Software Development Models 2

Dr. Nuha El-KhaliliAdvanced Software Engineering Software Development Models Plan-driven methodologies Bureaucratic Predictive (resist change) process-oriented Agile methodologies code-oriented (less document-oriented) Adaptive (welcome change) people-oriented 3

Dr. Nuha El-KhaliliAdvanced Software Engineering Software Development Models We want a predictable schedule that can use people with lower skills. To do this we must separate design from construction. Therefore we need to figure out how to do the design for software so that the construction can be straightforward once the planning is done. 4

What Do They Think? Customer Designer DeveloperManager Tester Dr. Nuha El-KhaliliAdvanced Software Engineering5

Dr. Nuha El-KhaliliAdvanced Software Engineering Software Development Models Design is difficult to predict and requires expensive and creative people Civil engineering models (mathematical analysis)[10% cost] UML-like design look very good on paper, yet can be seriously flawed when you actually have to program [50% cost] 6

Dr. Nuha El-KhaliliAdvanced Software Engineering Software Development Models Jack Reeves suggests: –In software: construction is so cheap as to be free –In software all the effort is design, and thus requires creative and talented people –Creative processes are not easily planned, and so predictability may well be an impossible target. –We should be very wary of the traditional engineering metaphor for building software. It's a different kind of activity and requires a different process 7

Dr. Nuha El-KhaliliAdvanced Software Engineering Software Development Models Requirements are always changing –Poor requirements engineering ??! Cost information on the requirements. * –Estimation is hard If you cannot get stable requirements you cannot get a predictable plan. * 8

Dr. Nuha El-KhaliliAdvanced Software Engineering Adaptivity Iterative development: –Incremental, Evolutionary, Spiral, UP –Produce working versions of the final system that have a subset of the required features –Fully integrated and carefully tested 9

Adaptive Customer Bids Fixed price contract requires stable requirements  predictive process Customer has more control over the software development process Dr. Nuha El-KhaliliAdvanced Software Engineering10 Time PriceScope

Adaptive Customer People learn what elements are valuable, when they have had a chance to play with the software People learn about their needs as the system gets built Constant reworking of the plan with every iteration  risk control Dr. Nuha El-KhaliliAdvanced Software Engineering11

Adaptive Customer A good predictive project will go according to plan (time and Budget) A good agile project, did the customer get software that is valuable? Dr. Nuha El-KhaliliAdvanced Software Engineering12

Putting People First Executing an adaptive process is not easy. It requires very effective team of developers The team needs to be effective both in the quality of the individuals, and in the way the team blends together Most good developers prefer an adaptive process. Dr. Nuha El-KhaliliAdvanced Software Engineering13

Putting People First Traditional methodologies –People as resources (replaceable parts) –How many you have?? Alistair Cockburn: Predictable processes require components that behave in a predictable way People are not predictable components Dr. Nuha El-KhaliliAdvanced Software Engineering14

Putting People First Often software processes are imposed by management Management have significant amount of time away from active development. (technical skills are obsolete) Developers must be able to make all technical decisions Developers and management have an equal place in the leadership of the project Dr. Nuha El-KhaliliAdvanced Software Engineering15

Self-Adaptive Process Change the process for the next iteration –What did we do well? –What have we learned? –What can we do better? –What puzzles us? No corporate or organization methodology Dr. Nuha El-KhaliliAdvanced Software Engineering16 Adapt software to meet changes in requirements Team adapt the process Adaptive

Agile Development A philosophy* of software development Agile Manifesto 2001 Under this broad umbrella sits many more specific approaches –Extreme Programming, Scrum, RUP, Lean Development, Feature driven development,.. Agile alliance –Non-profit group to promote agile methods – Dr. Nuha El-KhaliliAdvanced Software Engineering17

Agile Development characteristics Break tasks into small increments with minimal planning Iterations are short time frames (timeboxes) Each iteration involves a team working through a full software development cycle including planning, requirements analysis, design, coding, unit testing, Integration Working product is demonstrated to stakeholders Dr. Nuha El-KhaliliAdvanced Software Engineering18

Agile Development characteristics Team composition in an agile project is usually cross-functional and self- organizing Emphasize face-to-face communication over written documents Customer representative review progress and re-evaluate priorities with a view to optimizing the return on investment (ROI) Dr. Nuha El-KhaliliAdvanced Software Engineering19

Agile Development Dr. Nuha El-KhaliliAdvanced Software Engineering20

Agile Benefits Higher productivity Higher quality Reduced time-to-market Improved stakeholder satisfaction Increased job satisfaction More engaged employees See Results 2010 Dr. Nuha El-KhaliliAdvanced Software Engineering21