Agile Software Development

Similar documents
Agile Processes. -- Heinrich Heine

Agile Software Development. Mohsen Afsharchi

Establishing Great Software Development Process(es) for Your Organization. By Dale Mayes

Agile Projects 7. Agile Project Management 21

CRITICAL ANALYSYS OF THE SCRUM PROJECT MANAGEMENT METHODOLOGY

Software development process

History of Agile Methods

Introduction to Software Engineering: Project Management ( Highlights )

Requirements Management In Action. A beginners guide to Requirements Management

Lean Software Development and Kanban

Investigate Requirements for Software Solutions

CSE 435 Software Engineering. Sept 16, 2015

Lifecycle Models: Waterfall / Spiral / EVO

Critical Path Analysis & PERT Charts (taken from

Waterfall vs. Agile Methodology

Introduction to Agile Scrum

Project Management in Software: Origin of Agile

RISK MANAGMENT ON AN AGILE PROJECT

Transcription. Founder Interview - Panayotis Vryonis Talks About BigStash Cloud Storage. Media Duration: 28:45

Introduction to Software Engineering: Overview and Methodologies

Writing a Requirements Document For Multimedia and Software Projects

What is meant by the term, Lean Software Development? November 2014

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

Why managers are crucial to increasing engagement

Project Management. Software Projects vs. Engineering Projects

Software Engineering CSCI Lesson 9 Project Management Part 1- Planning & Estimating. February 23, 2015

Software Engineering

Why the Traditional Contract for Software Development is Flawed

Software Engineering I (02161)

White Paper. Process Improvement

Software Development Process

Contents. Today Project Management. Project Management. Last Time - Software Development Processes. What is Project Management?

Waterfall vs. Agile Project Management

Importance of Project Schedules. matter what happens on a project. projects, especially during the second half of projects

Best Practices/Task Definition

Transcript - Episode 2: When Corporate Culture Threatens Data Security

Project Planning and Control. Main issues: How to plan a project? How to control it?

SIMS 255 Foundations of Software Design. Complexity and NP-completeness

SaaS or On-Premise? How to Select the Right Paths for Your Enterprise. David Linthicum

This handbook is meant to be a quick-starter guide to Agile Project Management. It is meant for the following people:

Explain how Employee Performance is Measured and Managed

Data Visualization Techniques

Negotiating Contracts for Agile Projects: A Practical Perspective

TSG Quick Reference Guide to Agile Development & Testing Enabling Successful Business Outcomes


Scope management can be defined as controlling what is and what is not a part of the project.

the sick funds payments are hospital focused and do not sufficiently upset out patient care or rehabilitation or psychiatric or homecare.

Electronic Health Records: Challenges for Patient Privacy & Security Transcript

Agile Project Management A Primer. Brian Stewart AVU ACEP Nairobi 17 th 2013

SOFTWARE PROJECT MANAGEMENT

Testing in Agile methodologies easier or more difficult?

8. KNOWLEDGE BASED SYSTEMS IN MANUFACTURING SIMULATION

10 Fundamental Strategies and Best Practices of Supply Chain Organizations

Software Process for QA

Agility, Uncertainty, and Software Project Estimation Todd Little, Landmark Graphics

EMPLOYEE JOB IMPROVEMENT PLANS. This Employee Job Improvement Plan designed by Kielley Management Consultants achieves results because:

CAs and Turing Machines. The Basis for Universal Computation

Listening to the Customer s Voice 1

OCR LEVEL 3 CAMBRIDGE TECHNICAL

THE AGILE CONTACT CENTER: A New Approach to Customer Service

ESKIPM2(SQA Unit Code- F9CX 04) Project management software

Laboratório de Desenvolvimento de Software

SWEBOK Certification Program. Software Engineering Management

In initial planning phases In monitoring and execution phases

How to Write a Marketing Plan: Identifying Your Market

Advanced Software Engineering. Software Development Processes

The Blending of Traditional and Agile Project Management

PROJECT MANAGEMENT PLAN CHECKLIST

Introduction to Agile Software Development Process. Software Development Life Cycles

The Business Analyst role on Agile teams

Agile So)ware Development

ESKIPM3 Project management software

Outline. Agile Methods. Converse of Conway s Law. The Silver Bullet Fantasy (Brooks, 1986)

Financial Freedom: Three Steps to Creating and Enjoying the Wealth You Deserve

Transcription:

Agile Software Development ENGI 5895: Software Design Faculty of Engineering & Applied Science Memorial University of Newfoundland January 10, 2011

Software Failures Figures from Why Software Fails by Robert N. Charette, IEEE Spectrum, 2005. Software is ubiquitous and is constantly growing in size and complexity: Cell phones: 2 million LOC in 2005, perhaps 20 million in 2010 Cars: 100 million LOC predicted in GM cars by 2010 (LOC = Lines of Code) Large software projects have a high failure rate. Estimated cost for failed software projects in the US: $60-70 Billion / year. Software developers spend 40-50% of their time on avoidable rework as opposed to work that's done right the rst time.

Software Failures Figures from Why Software Fails by Robert N. Charette, IEEE Spectrum, 2005. Software is ubiquitous and is constantly growing in size and complexity: Cell phones: 2 million LOC in 2005, perhaps 20 million in 2010 Cars: 100 million LOC predicted in GM cars by 2010 (LOC = Lines of Code) Large software projects have a high failure rate. Estimated cost for failed software projects in the US: $60-70 Billion / year. Software developers spend 40-50% of their time on avoidable rework as opposed to work that's done right the rst time.

Software Failures Figures from Why Software Fails by Robert N. Charette, IEEE Spectrum, 2005. Software is ubiquitous and is constantly growing in size and complexity: Cell phones: 2 million LOC in 2005, perhaps 20 million in 2010 Cars: 100 million LOC predicted in GM cars by 2010 (LOC = Lines of Code) Large software projects have a high failure rate. Estimated cost for failed software projects in the US: $60-70 Billion / year. Software developers spend 40-50% of their time on avoidable rework as opposed to work that's done right the rst time.

Software Failures Figures from Why Software Fails by Robert N. Charette, IEEE Spectrum, 2005. Software is ubiquitous and is constantly growing in size and complexity: Cell phones: 2 million LOC in 2005, perhaps 20 million in 2010 Cars: 100 million LOC predicted in GM cars by 2010 (LOC = Lines of Code) Large software projects have a high failure rate. Estimated cost for failed software projects in the US: $60-70 Billion / year. Software developers spend 40-50% of their time on avoidable rework as opposed to work that's done right the rst time.

Software Failures Figures from Why Software Fails by Robert N. Charette, IEEE Spectrum, 2005. Software is ubiquitous and is constantly growing in size and complexity: Cell phones: 2 million LOC in 2005, perhaps 20 million in 2010 Cars: 100 million LOC predicted in GM cars by 2010 (LOC = Lines of Code) Large software projects have a high failure rate. Estimated cost for failed software projects in the US: $60-70 Billion / year. Software developers spend 40-50% of their time on avoidable rework as opposed to work that's done right the rst time.

Software Failures Figures from Why Software Fails by Robert N. Charette, IEEE Spectrum, 2005. Software is ubiquitous and is constantly growing in size and complexity: Cell phones: 2 million LOC in 2005, perhaps 20 million in 2010 Cars: 100 million LOC predicted in GM cars by 2010 (LOC = Lines of Code) Large software projects have a high failure rate. Estimated cost for failed software projects in the US: $60-70 Billion / year. Software developers spend 40-50% of their time on avoidable rework as opposed to work that's done right the rst time.

The Waterfall Process To mitigate failure, software engineers and managers establish processes, with scheduled outputs (documents, code, test results,...). The classic software development process is known as the waterfall process: From http://en.wikipedia.org/wiki/waterfall_process The idea is to complete each phase in sequence before moving onto the next. Adv.: Encourages getting things right before moving on.

The Waterfall Process To mitigate failure, software engineers and managers establish processes, with scheduled outputs (documents, code, test results,...). The classic software development process is known as the waterfall process: From http://en.wikipedia.org/wiki/waterfall_process The idea is to complete each phase in sequence before moving onto the next. Adv.: Encourages getting things right before moving on.

The Waterfall Process To mitigate failure, software engineers and managers establish processes, with scheduled outputs (documents, code, test results,...). The classic software development process is known as the waterfall process: From http://en.wikipedia.org/wiki/waterfall_process The idea is to complete each phase in sequence before moving onto the next. Adv.: Encourages getting things right before moving on.

Problems with the Waterfall Process The waterfall process requires reports, meetings, and evaluations at every stage. Scheduling and executing all of this extra work is time-consuming. The artefacts and constraints of this process are not sucient to prevent errors, so more artefacts and constraints are imposed. Sounds paradoxical but this is how organizations often behave! As the development process becomes more and more cumbersome, the schedule slips. The customer may wish to modify the requirements, or it may be realized that the original requirements were poorly specied. Leads to a massive cascade of changes through all subsequent stages of the process!

Problems with the Waterfall Process The waterfall process requires reports, meetings, and evaluations at every stage. Scheduling and executing all of this extra work is time-consuming. The artefacts and constraints of this process are not sucient to prevent errors, so more artefacts and constraints are imposed. Sounds paradoxical but this is how organizations often behave! As the development process becomes more and more cumbersome, the schedule slips. The customer may wish to modify the requirements, or it may be realized that the original requirements were poorly specied. Leads to a massive cascade of changes through all subsequent stages of the process!

Problems with the Waterfall Process The waterfall process requires reports, meetings, and evaluations at every stage. Scheduling and executing all of this extra work is time-consuming. The artefacts and constraints of this process are not sucient to prevent errors, so more artefacts and constraints are imposed. Sounds paradoxical but this is how organizations often behave! As the development process becomes more and more cumbersome, the schedule slips. The customer may wish to modify the requirements, or it may be realized that the original requirements were poorly specied. Leads to a massive cascade of changes through all subsequent stages of the process!

Problems with the Waterfall Process The waterfall process requires reports, meetings, and evaluations at every stage. Scheduling and executing all of this extra work is time-consuming. The artefacts and constraints of this process are not sucient to prevent errors, so more artefacts and constraints are imposed. Sounds paradoxical but this is how organizations often behave! As the development process becomes more and more cumbersome, the schedule slips. The customer may wish to modify the requirements, or it may be realized that the original requirements were poorly specied. Leads to a massive cascade of changes through all subsequent stages of the process!

Problems with the Waterfall Process The waterfall process requires reports, meetings, and evaluations at every stage. Scheduling and executing all of this extra work is time-consuming. The artefacts and constraints of this process are not sucient to prevent errors, so more artefacts and constraints are imposed. Sounds paradoxical but this is how organizations often behave! As the development process becomes more and more cumbersome, the schedule slips. The customer may wish to modify the requirements, or it may be realized that the original requirements were poorly specied. Leads to a massive cascade of changes through all subsequent stages of the process!

Problems with the Waterfall Process The waterfall process requires reports, meetings, and evaluations at every stage. Scheduling and executing all of this extra work is time-consuming. The artefacts and constraints of this process are not sucient to prevent errors, so more artefacts and constraints are imposed. Sounds paradoxical but this is how organizations often behave! As the development process becomes more and more cumbersome, the schedule slips. The customer may wish to modify the requirements, or it may be realized that the original requirements were poorly specied. Leads to a massive cascade of changes through all subsequent stages of the process!

Agile Software Development A set of values established by a group of industry experts in 2001 to allow software teams to work quickly and respond to change: Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.

Agile Software Development A set of values established by a group of industry experts in 2001 to allow software teams to work quickly and respond to change: Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.

Agile Software Development A set of values established by a group of industry experts in 2001 to allow software teams to work quickly and respond to change: Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.

Agile Software Development A set of values established by a group of industry experts in 2001 to allow software teams to work quickly and respond to change: Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.

Agile Software Development A set of values established by a group of industry experts in 2001 to allow software teams to work quickly and respond to change: Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.

Agile Software Development A set of values established by a group of industry experts in 2001 to allow software teams to work quickly and respond to change: Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.

Agile Software Development A set of values established by a group of industry experts in 2001 to allow software teams to work quickly and respond to change: Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.

Agile Software Development A set of values established by a group of industry experts in 2001 to allow software teams to work quickly and respond to change: Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.

Individuals and interactions over processes and tools Some advice from Agile Software Development by Robert. C. Martin (Bob) Individuals and interactions: A strong player is not necessarily an ace programmer. A strong player may be an average programmer, but someone who works well with others. Working well with others, communicating and interacting, is more important than raw programming talent. A team of average programmers who communicate well are more likely to succeed than a group of superstars who fail to interact as a team. Tools: My advice is to start small. Don't assume you've outgrown a tool until you've tried it and found you can't use it. [...] Before you commit to the top-shelf behemoth database system, try at les. Don't assume that bigger and better tools will automatically help you do better. Often they hinder more than help.

Individuals and interactions over processes and tools Some advice from Agile Software Development by Robert. C. Martin (Bob) Individuals and interactions: A strong player is not necessarily an ace programmer. A strong player may be an average programmer, but someone who works well with others. Working well with others, communicating and interacting, is more important than raw programming talent. A team of average programmers who communicate well are more likely to succeed than a group of superstars who fail to interact as a team. Tools: My advice is to start small. Don't assume you've outgrown a tool until you've tried it and found you can't use it. [...] Before you commit to the top-shelf behemoth database system, try at les. Don't assume that bigger and better tools will automatically help you do better. Often they hinder more than help.

Working software over comprehensive documentation Software without documentation is a disaster. However, too much documentation is worse than too little. Huge software documents take a great deal of time to produce and even more time to keep in sync with the code. If they are not kept in sync, then they turn into large, complicated lies and become a signicant source of misdirection. [...] It is always a good idea for the team to write and maintain a rationale and structure document, but that document needs to be short and salient. By short I mean one or two dozen pages at most. By salient, I mean it should discuss the overall design rationale, and only the highest-level structures in the system.

Working software over comprehensive documentation Software without documentation is a disaster. However, too much documentation is worse than too little. Huge software documents take a great deal of time to produce and even more time to keep in sync with the code. If they are not kept in sync, then they turn into large, complicated lies and become a signicant source of misdirection. [...] It is always a good idea for the team to write and maintain a rationale and structure document, but that document needs to be short and salient. By short I mean one or two dozen pages at most. By salient, I mean it should discuss the overall design rationale, and only the highest-level structures in the system.

Customer collaboration over contract negotiation Successful projects involve customer feedback on a regular and frequent basis. Rather than depending on a contract or a statement of work, the customer of the software works closely with the development team, providing frequent feedback on their eorts.

Responding to change over following a plan It is tempting for novice managers to create a nice PERT or Gantt chart of the whole project and tape it to the wall. [...] What really happens is that the structure of the chart degrades. As the team gains knowledge about the system, and as the customers gain knowledge about their needs, certain tasks on the chart become unnecessary. [...] In short, the plan undergoes changes in shape, not just changes in dates. A better planning strategy is to make detailed plans for the next two weeks, very rough plans for the next three months, and extremely crude plans beyond that.

Responding to change over following a plan It is tempting for novice managers to create a nice PERT or Gantt chart of the whole project and tape it to the wall. [...] What really happens is that the structure of the chart degrades. As the team gains knowledge about the system, and as the customers gain knowledge about their needs, certain tasks on the chart become unnecessary. [...] In short, the plan undergoes changes in shape, not just changes in dates. A better planning strategy is to make detailed plans for the next two weeks, very rough plans for the next three months, and extremely crude plans beyond that.