Agile Methods in a Product Development Setting © 2002 Reginald Braithwaite- Lee lee.com lee.com.

Slides:



Advertisements
Similar presentations
Advanced Information Systems Development (SD3043)
Advertisements

Software Testing. Quality is Hard to Pin Down Concise, clear definition is elusive Not easily quantifiable Many things to many people You'll know it when.
Black Box Software Testing Copyright © Cem Kaner & James Bach 1 Black Box Software Testing Spring 2005 Part 4 -- QUALITY COST ANALYSIS by Cem Kaner,
DiscoverDefineDesignDevelopDeliver PROCESS TM. Intelligaia Technology confidential & proprietary Discover Overview: Gather information, brainstorm, competitive.
© 2009 Michigan State University licensed under CC-BY-SA, original at Control of Nonconforming Product.
Alternate Software Development Methodologies
Foundations of (Theoretical) Computer Science Chapter 3 Lecture Notes (Section 3.2: Variants of Turing Machines) David Martin With.
Agile Software Development. Traditional Software Development 1.Initiation (RFP) 2.Feasibility study Technical – can we build it? Economic – should we.
Software Engineering. How many lines of code? Average CS1004 assignment: 200 lines Average CS4115 project: 5000 lines Corporate e-commerce project: 80,000.
Software Engineering.
Recall The Team Skills 1. Analyzing the Problem 2. Understanding User and Stakeholder Needs 3. Defining the System 4. Managing Scope 5. Refining the System.
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
Adopting Extreme Programming - the Benefits and Obstacles December 5, 2002 By Patricia Cleary.
Software Quality Assurance Introduction 1. What is Quality? Can you define quality? You must be thinking, what kind of question is that. It is very easy.
Introduction to Computer Technology
© 2009 Michigan State University licensed under CC-BY-SA, original at Corrective Action.
Upstream Prerequisites
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Software Project Management
Agile Programming Principles.
Prologue: The Software Process. Main Phases of Software Process 1. Requirements Analysis (answers “WHAT?”) Specifying what the application must do 2.
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
© Shardul Mehta This work by Shardul Mehta is licensed under the Creative Commons Attribution-ShareAlike 3.0.
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.
© 2009 Michigan State University licensed under CC-BY-SA, original at Product Contamination Control.
4-1 Project Management from Simple to Complex. 4-2 This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported.
Debugging UC Berkeley Fall 2004, E77 Copyright 2005, Andy Packard. This work is licensed under the Creative Commons.
1.  Project: temporary endeavor to achieve some specific objectives in a defined time  Project management ◦ Dynamic process ◦ Controlled and structured.
MCS 270 Spring 2014 Object-Oriented Software Development.
Phoenix Software Projects Larry Beaty © 2007 Larry Beaty. Copying and distribution of this document is permitted in any medium, provided this notice is.
Regression UC Berkeley Fall 2004, E77 Copyright 2005, Andy Packard. This work is licensed under the Creative Commons.
T-unit: Tcl Unit Test Package Automated Unit Test Package For Tcl Procedures Final Presentation Joseph Boyle Loyola Marymount University.
1 5.1 Software Engineering Practice  Provide value to the user  KIS—keep it simple!  Maintain the product and project “vision”  What you produce,
1 Chapter 5 Software Engineering Practice. 2 What is “Practice”? Practice is a broad array of concepts, principles, methods, and tools that you must consider.
Plan Design Analyze Develop Test Implement Maintain Systems Development Life Cycle MAT Dirtbikes.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
SOFTWARE ENGINEERING MCS-2 LECTURE # 3. SOFTWARE PROCESS  A software development process, also known as a software development life- cycle (SDLC), is.
ISM 5316 Week 3 Learning Objectives You should be able to: u Define and list issues and steps in Project Integration u List and describe the components.
Black Box Software Testing Copyright © Cem Kaner & James Bach 1 Black Box Software Testing Fall 2005 Overview—Part 2 (Mission of Testing) Cem Kaner,
From Quality Control to Quality Assurance…and Beyond Alan Page Microsoft.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
Software Engineering Saeed Akhtar The University of Lahore Lecture 5 Originally shared for: mashhoood.webs.com.
© ABSL Power Solutions 2007 © STM Quality Limited STM Quality Limited Brainstorming TOTAL QUALITY MANAGEMENT Brainstorming.
1 TenStep Project Management Process ™ PM00.9 PM00.9 Project Management Preparation for Success * Manage Quality *
Script Files UC Berkeley Fall 2004, E77 Copyright 2005, Andy Packard. This work is licensed under the Creative.
Black Box Software Testing Copyright © 2003 Cem Kaner & James Bach 1 Black Box Software Testing 2004 Academic Edition Part EDITING BUGS by Cem Kaner,
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.
K15T2-Team 5- PoD Team Software Project Management.
Chapter 10 Information Systems Development. Learning Objectives Upon successful completion of this chapter, you will be able to: Explain the overall process.
© NALO Solutions Limited NALO Solutions, presents the – Revenue Collector App Using Mobile Phones to gather Revenue SOFTWARE ENGINEERING.
Introduction to Software Engineering Muhammad Nasir Agile Software Development(2)
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Software Development Languages and Environments. Computer Languages Just as there are many human languages, there are many computer programming languages.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
© 2011 Michigan State University and United Nations Industrial Development Organization, original at CC-BY-SA HACCP Principle.
Managing Projects to Achieve Desired Results
FAST TRACKING IN THE IEEE
HACCP Principle 5 – Establish Corrective Actions
Managing Projects to Achieve Desired Results
Black Box Software Testing Fall 2005 Overview – Part 1 of 3
Black Box Software Testing 2004 Academic Edition
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.
Baisc Of Software Testing
Class Intro/TDD Intro 8/23/2005
Tools and Techniques for Quality
Coming up: What is Agile?
How to Talk so Engineers will Listen:
Presentation transcript:

Agile Methods in a Product Development Setting © 2002 Reginald Braithwaite- Lee lee.com lee.com

NOTICE This work is licensed under the Creative Commons Attribution-ShareAlike License. To view a copy of this license, visit or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Most people find the concept of programming obvious, but the doing impossible. Alan Perlis

Successful Products Working Software Value for Company and Customers

Dealing with failure is easy: Work hard to improve. Success is also easy to handle: You've solved the wrong problem. Work hard to improve. Alan Perlis

Agile Development High Risk Projects Extended Teams Testability

It is easier to change the specification to fit the program than vice versa. Alan Perlis

Product Development Competitive Very High Risk/Low Information A Product is complete if it “achieves its business objective(s) on or before the desired date”

In computing, turning the obvious into the useful is a living definition of the word “frustration”. Alan Perlis

Key Agile Ideas for Product Development Product-Centric Deliverables Very Short Iterations Eat Your Own Dogfood

Is it possible that software is not like anything else, that it is meant to be discarded: that the whole point is to see it as a soap bubble? Alan Perlis

Product-Centric Deliverables Tracks ‘Done-ness’ in terms of Company Value The Deliverable Definition The Acceptance Test

Programmers are not to be measured by their ingenuity and their logic but by the completeness of their case analysis. Alan Perlis

Predictive Deadlock Detection If the running software acquires two locks (“x”, ”y”) two or more times such that at least once it holds x when it attempts to acquire y and at least once it hold y when it attempts to acquire x, a potential deadlock shall be signaled.

Predictive Deadlock Detection is acceptable when:  “Nels” can run sample programs with lock order anomalies  He is informed of the problem  The exact lines of code where the second lock is acquired are shown

Very Short Iterations Manages Risk Maximizes Response to Information Regular ‘Done-ness’ Metric Iteration Themes

Around computers it is difficult to find the correct unit of time to measure progress. Some cathedrals took a century to complete. Can you imagine the grandeur and scope of a program that would take as long? Alan Perlis

“Would you like Fries with that Shake?” In this iteration we will display end to end Cross-Sell and Up-Sell, showing how ‘Adele’ sets up cross-selling and up- selling, how ‘Michael’ learns about products when browsing, and how ‘Suzette’ gathers statistics about Michael’s interests after the fact.

Eat Your Own Dogfood Define the Absurdly Minimal Product Stub Out The Architecture Define the Dogfood Milestone

The computer is the ultimate polluter: its feces are indistinguishable from the food it produces. Alan Perlis

The Absurdly Minimal Product  Runs on the command line  Signals in text to Stdout  Runs at least two stub analyzers  At least one analyzer reports running condition of subject code

Miscellaneous Recommendations Customer Representation by Proxy: Product or Program Management A Defect is “Failure to Pass an Acceptance Test”; a Bug is “Anything You Can Put In The Read Me File” Only Make Promises You Can Keep in the Next Two Iterations Use Unit Tests to Prevent Regression and Facilitate Refactoring

Documentation is like term insurance: It satisfies because almost no one who subscribes to it depends on its benefits. Alan Perlis

One More Time! Product-Centric Deliverables –Tracks ‘Done-ness’ in terms of Company Value –The Deliverable Definition –The Acceptance Test Very Short Iterations –Manages Risk/Maximizes Response to Information –Regular ‘Done-ness’ Metric –Iteration Themes Eat Your Own Dogfood –Define the Absurdly Minimal Product –Stub Out The Architecture –Define the Dogfood Milestone

If a listener nods his head when you’re explaining your program, wake him up. Alan Perlis

Thank you!