Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.

Slides:



Advertisements
Similar presentations
Agile Software Development کاری از : مهدی هوشان استاد راهنما : استاد آدابی.
Advertisements

A little Software Engineering: Agile Software Development C Sc 335 Rick Mercer.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Clinton Keith CTO, High Moon Studios Agile Methodology in Game Development: Year 3.
NAUG NAUG Knowledge Evening – th February 2007.
Agile Process Models. Prescriptive models don’t work It is unrealistic to not have changes. Why? The Agile Manifesto: Individuals and interactions over.
Agile development By Sam Chamberlain. First a bit of history..
1 Agile Methodologies in DoD Software By Cynthia Johnson.
Agile
1 Software Testing and Quality Assurance Lecture 34 – SWE 205 Course Objective: Basics of Programming Languages & Software Construction Techniques.
Agile Requirements Methods CSSE 371 Software Requirements and Specification Mark Ardis, Rose-Hulman Institute October 26, 2004.
Agile Methods and Extreme Programming CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 23, 2007.
Agile Software Development Matt Rice November 27, 2006.
EXtreme Programming Quick Introduction Daniel Arraes Pereira Eduardo Lourenço Apolinário Ricardo de Oliveira Cavalcanti.
Extreme Programming Mark Steverson. What Is Extreme Programming? ● Extreme Programming (XP) is a lightweight, agile methodology developed by Kent Beck.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Chapter 3 – Agile Software Development Lecture 1 1Chapter 3 Agile software development.
The Agile Alliance By Mark Rucker. The Agile Alliance What is the Agile Alliance? History of the Agile Alliance What is the Agile Alliance today? The.
Introduction to Agile Methodologies and Concepts Roy Osherove Principal, Team Agile Blog : ISerializable.com.
Introduction to Agile.
An Overview of Agile L e a d i n g C h a n g e T h r o u g h C o l l a b o r a t i o n.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Agile Software Development What is Agile? And How are we implementing Agile?
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
BEFORE AGILE METHODS Other Engineering fields development models were used, ie: Waterfall Method: Intensive planning and refactoring before coding is actually.
Chapter 3 – Agile Software Development Lecture 1 1Chapter 3 Agile software development.
Chapter 4 Agile Development 1. The Manifesto for Agile Software Development 2 “We are uncovering better ways of developing software by doing it and helping.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
Current Trends in Systems Develpment
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
By Saravanan Bala. General Report 31 % of Software projects are cancelled 75 % of the software projects are considered failures by the people who initiated.
Agile Modeling Theory. 2 Agile Modeling (AM) AM is a chaordic, practices-based process for modeling and documentation AM is a collection of practices.
Extreme Programming Daniel Baranowski 3/29/06. What is Extreme Programming? An agile development methodology Created by Kent Beck in the mid 1990’s A.
Embracing change with Extreme Programming Method Engineering Erik ten Brinke
Agile Methodologies: Comparative Study and Future Direction 林佳蓁 資工 4B.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
EXtreme Programming Development Adrian Williamson People, Technology and People and Technology Consultant.
Chapter 3 Agile Software Development (1/2) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
1/7/2004CSG - Project Delivery at UT Austin1 Making a Model Perform Adopting a methodology to your environment.
1 The Manifesto for Agile Software Development “We are uncovering better ways of developing software by doing it and helping others do it. Through this.
CS3100 Software Project Management Agile Approaches.
Agile Methodology Paul Mohrbacher. Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Agile Methods Presentation By: Jason Abbett. Definition A process to rapidly develop software Many kinds of agile methods but few are practiced.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
Presented By : Prima Business Solutions. Agile Software Development Process.
Chapter 3 Agile software development 1 Chapter 3 – Agile Software Development.
Embedded Systems Software Engineering
Agile/XP Introduction
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
School of Business Administration
Agile Methods SENG 301.
Manifesto for Agile Software Development
AGILE SCRUM METHODOLOGY
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Extreme Programming.
School of Business Administration
Agile Software Development Brian Moseley.
Approaches to Systems Development
Agile Software Development
WE ARE HERE!.
Agile and XP Development
Agile and XP Development
Introduction to XP.
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

Chapter 5 Software Process Models

Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time (years)--- started SWE 2.Inability to cope with changes in requirements and technology fast enough --- “formal” change mgmt 3.Assumes requirements are completely understood at beginning of project --- stable requirements 4.Starting to rely on “non-sustainable” heroic and lengthy development effort by the developers --- hard to maintain “constantly high” productivity 5.Complex set of activities --- needed process experts 6.Waste or duplication of effort, especially in documentation --- formal documentation needed for long and large project communications

More Recent Processes: Agile Methodologies Family of software development methodologies: 1.“Short” releases and multiple iterations 2.Incremental design/development 3.User involvement (especially for in-house) 4.Minimal documentation 5.Informal communications 6.Assumes changes

“We are uncovering better ways of developing software by doing it and helping others do it. That is, while there is value in the items on the “right,” we value the items on the “left” more. “ The Agile Manifesto “left” “right” 1. Individuals and interactions - - over processes and tools 2. Working software - - over comprehensive documentation 3. Customer collaboration - - over contract negotiation 4. Responding to change - - over following a plan ---”dogmatically

Some Agile Methodologies Extreme Programming (XP) --- the first by Beck (1990’s) Crystal Clear/Orange – by Alister Cockburn SCRUM ---- currently popular (not really part of Agile --- partially agile) RUP (rational unified process) Microsoft Solutions Framework (tool/process)

XP’s Core Values Communication (between team and with customers) Simplicity (in design and code) Feedback (at many levels) Courage (to make and implement difficult decision)

XP’s Fundamental Principles Rapid feedback Simplicity Incremental change Embrace change Quality work Directly from “core” values

XP’s Lesser/Other Principles Ongoing learning Small initial investment Playing to win Concrete experiments Open, honest communications Working with people’s instincts Accepting responsibility Local adaptation Traveling light Honest measurement

XP’s 12 Key Practices Based on the concept of quick and constant “feedback mechanism” involving: Planning Game (Small Units of Requirements) Onsite Customer (Immediate and better feedback) Metaphor (Use one set of metaphor for design/architecture) Simple Design (Just enough to cover what’s needed) Coding Standard (Facilitates better communication) Collective Code Ownership (Peer pressure to improve code) Pair Programming (Feedback and shared improvements) Refactoring (Continuous examination for duplicative design/code) Continuous Functional and Unit Testing (100% completion) Small/short releases Continuous Integration (integrating of small releases) 40 hour work (high morale and energy level) some recognition of “human” aspects

Extreme Programming “Process” Simple Design System Metaphors Coding standards Planning Game Refactoring Pair ProgrammingFunctional &Unit Test Collective Code Ownership Continuous Integration Small/short Release Larger Release Onsite Customers Adhere to 40 hour work week as much as possible ! -- sustainable pace

Crystal Family of Methodologies Cockburn classified projects via: –Size (by number of developers involved) –Criticality (by losses a malfunction or defect will cause - “quality”) –Priority (time pressure on the project) Alistair Cockburn introduced a family of 3 methodologies –Crystal Clear ---- for “non-critical” projects (6-8 people) –Crystal Orange ---- for “critical” projects (up to 40 people) –Crystal Orange Web – for web development

Scrum Development Process (Currently Popular) First introduced by Takeuchi and Nonaka (Japan) in 1986 modeled after the way rugby game is played. Ken Schwaber and Mike Beedle published a book, “Agile Software Development with Scrum,” in It is an incremental and iterative development approach: –Develops small “sprints,” or increments (of features) in a short cycle of about 2-3 weeks. –There are 3 main roles Product Owner who talks to & decide with users about the content of each sprint Scrum Master who runs the sprints Scrum Team of about 7-8 members who develop the sprint