BEFORE AGILE METHODS Other Engineering fields development models were used, ie: Waterfall Method: Intensive planning and refactoring before coding is actually.

Slides:



Advertisements
Similar presentations
Agile Software Development Robert Moore Senior Developer Curtin University.
Advertisements

Unified process(UP) UP is an OO system development methodology offered by Rational(Rational Rose) s/w, now a part of IBM Developed by Booach,Rambaugh,Jacobson--
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
A little Software Engineering: Agile Software Development C Sc 335 Rick Mercer.
Software Life Cycle Requirements analysis System design Program design Program implementation (coding) Unit testing Integration testing System testing.
COPYRIGHT © 2012 ALCATEL-LUCENT. ALL RIGHTS RESERVED. 1 Agile documentation development methodology Giby Panicker and Judith Benjamin 1-Dec-2012.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.
Agile Architecture Prabhu Venkatesan for COMP-684.
Alternate Software Development Methodologies
Intro to Scrum. What is Scrum? An answer to traditional “fixed cost / strict requirements” contracts which had very high rates of failure Recognizes the.
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..
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.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Chapter 3 – Agile Software Development Lecture 1 1Chapter 3 Agile software development.
© AgiliX Agile Development Consulting Agile Demystified Cesario Ramos.
Programming with eyes wide open. Your host today Subby Angelov Team
Introduction to Agile Methodologies and Concepts Roy Osherove Principal, Team Agile Blog : ISerializable.com.
Agile Project Management By: Jim Highsmith Presented by: Brian Faulk.
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
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.
Software Development Process
Agile Software Development What is Agile? And How are we implementing Agile?
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Chapter 3 – Agile Software Development Lecture 1 1Chapter 3 Agile software development.
1 Agile Methodology & Programming Ric Holt July 2009.
Agile Programming Principles.
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
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.
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.
Project Workflow. How do you do it? -Discussion-
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.
1 Software Process Models-ii Presented By; Mehwish Shafiq.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Chapter 3 Agile Software Development (1/2) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
K.Ingram 1 Sept 2007 Agile Software Development. K.Ingram 2 Sept 2007 Contents Agile Software Development: 1.What is it? 2.Agile’s Values, Principles,
CS3100 Software Project Management Agile Approaches.
© 2007 BigVisible Solutions, Inc. All Rights Reserved Training Solutions Agile Training Game v
Agile Methodology Paul Mohrbacher. Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through.
Extreme Programming Based on and
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
PV213 EIS in Practice: 06 – Development process 1 PV213 Enterprise Information Systems in Practice 06 – Development process.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
AGILE - IMPLEMENTATION (C) CLARION TECHNOLOGIES. ability to move quickly and easily…. AGILE MEANING (LITERALLY)
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Project Workflow.
Software Engineering cosc 4359 Spring 2017.
Embedded Systems Software Engineering
Agile/XP Introduction
Software Development - Methodologies
Agile Methods SENG 301.
Software Development.
Extreme Programming.
Project Workflow.
Agile Software Development Brian Moseley.
روش‌های سريع الانتقال (چابک) توسعه نرم افزار
What do you need to know about XP?
Introduction to Agile Blue Ocean Workshops.
Introduction to XP.
Extreme Programming.
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

BEFORE AGILE METHODS Other Engineering fields development models were used, ie: Waterfall Method: Intensive planning and refactoring before coding is actually done Pros: Great documentation and works well with other engineering fields Cons: Increases man hour costs which are the most expensive part of software development

BETTER METHODOLOGY NEEDED 1. Lots of dead time when creating specifications. 2. Not reuse oriented. 3. Software may be obsolete or have no market by the time its released % of software projects failed

LOOK TO TOYOTA Toyota Production System 3 Principles: 1. Build only what is needed. 2. Eliminate anything that doesn't add value. 3. Stop if something goes wrong.

LEAN THINKING 5 principles derived from Toyota's model, book published 1996: 1. Specify value. 2. Identify the value stream. 3. Create the conditions for value to flow smoothly through the stream. 4. Have the customer pull value from the stream. 5. Pursue perfection.

SCRUM 1. First agile method where work is done iteratively in sprints. 2. Sprints are typically 2 to 4 weeks. 3. Customer can change requirements during project.

AGILE MANIFESTO 2001 We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: 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. 5. That is, while there is value in the items on the right, we value the items on the left more.

Fundamentals of Extreme Programming 1. Pair programming 2. Planning game 3. Small releases 4. Continuous testing 5. System metaphor 6. Simple design 7. Re-factoring 8. Collective code ownership 9. Continuous integration 10. Coding standards hour week 11. On-site customer

Extreme Programming 1. Requirements are described as scenarios that read like a story. Diagrams may be used to make it easier to understand. 2. Story boarding- Interactions are drawn using UML. 3. Class diagrams are made from the UML. 4. Behavior between classes needs described in pseudocode. 5. Code everything. 6. Testing.

RELEVANCE OF NEW PRINCIPLES The web as a platform UGCThe value of web software is dependent on user-generated content. Self-sustainabilityAs a user network is built, more services are added to the software, creating a direct correlation between traffic and quality.

"Harnessing collective intelligence" Let a playa playThe role of the host is to create an environment optimized for user input and exchange. GPL Collective intelligence is a byproduct of a growing developer community. Viral marketing Meeting the needs of users creates a self-perpuating growth rate. Crowdsourcing Funding has gone viral.

The end of software cycles Sorftware as a service: The role of the host is to create an environment optimized for user input and exchange.

RELEVANCE OF NEW PRINCIPLES Technical issues are not often the major contribution to the failure of the system development project. It is people issues that mainly cause the project failure. 1. People being inflexible and insisting on creating a detailed, up front to do architecture. 2. People not realize that you need to invest a bit of time up front to do architecture envisioning. 3. People not understanding the need to prove the architecture early in the project with working code.

PEOPLE’S PERSPECTIVES ON AGILE METHODOLOGIES Lightweight programming models Simplicity breeds adoptionSoftware development techniques that are more loose and less corporate are more likely to spread. Innovation in assemblyReusable and highly accessible tools will challenge the proprietary standards. Cross-functional teamsNo more compartmentalizing your developers. Teams and projects, like ideas, should flow freely.

Agile in the Industry PROS & CONS What are some of the disadvantages of Agile? 1. Active user involvement and close collaboration are required throughout the development cycle. 2. Requirements are revealed and evolve over time. 3. Agile requirements are intentionally minimal. 4. Testing is integrated throughout the lifecycle. 5. Feature sign off’s are required. 6. Agile development can be intense for developers.

IS AGILE FOR US? Vital questions: 1. Do companies have to just choose either Waterfall or Agile or are there hybrid options? 2. What questions should be asked? How can a company decide whether to implement Agile methodologies?

Is the project suitable for Agile? 1. Does the project have a lot of ambiguity and uncertainty? 2. Does the product already exist or is this project starting from scratch? 3. How critical are the operations of the final product?

Is the team suitable for Agile? 1. Does the Product Owner have the right level of authority and influence? 2. Is there a dedicated, persistent, cross- functional team? 3. Is the team co-located? 4. Do you have an Uber Product Owner and Uber ScrumMaster? 5. Is there a controlled build environment?