Lecture 3: Project management methods and related software development lifecycle approaches.

Slides:



Advertisements
Similar presentations
September 2008Mike Woodard Rational Unified Process Key Concepts Mike Woodard.
Advertisements

Basic SDLC Models.
Prescriptive Process models
Computer Science Department
SOFTWARE DEVELOPMENT METHODOLOGIES Methodologies Waterfall Prototype model Incremental Iterative V-Model Spiral Scrum Cleanroom RAD DSDM RUP.
1 Software Processes A Software process is a set of activities and associated results which lead to the production of a software product. Activities Common.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 2- Software Process Models and Project.
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.
Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI PROCESS.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Unit 2. Software Lifecycle
Software Project Management
CSE 470 : Software Engineering The Software Process.
CSC 480 Software Engineering
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Software Life Cycles ECE 417/617: Elements of Software Engineering
COMP 6710 Course NotesSlide 2-0 Auburn University Computer Science and Software Engineering Course Notes Set 2: Software Process Models Computer Science.
A Prototyping Lifecycle. The Waterefall Model and Prototyping 4 As early as the 1980’s the classic “Waterfall model” of software development was criticised.
CS 501: Software Engineering
Software Processes: Traditional CSCI102 - Systems ITCS905 - Systems MCS Systems.
Iterative development and The Unified process
COMP 350: Object Oriented Analysis and Design Lecture 2
© 2005 Prentice Hall, Decision Support Systems and Intelligent Systems, 7th Edition, Turban, Aronson, and Liang 6-1 Chapter 6 Decision Support System Development.
Project phases and the life cycle
CHAPTER 19 Building Software.
University of Toronto Department of Computer Science CSC444 Lec04- 1 Lecture 4: Software Lifecycles The Software Process Waterfall model Rapid Prototyping.
Software Development Life Cycle (SDLC)
Tsvetelina Kovacheva, Quality Manager Musala Soft June 19, 2007 Implementing Models and Standards for Software Development Benefits and Risks.
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 2- Software Process Models and Project.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
1 CMPT 275 Software Engineering Software life cycle.
Chapter 1 The Systems Development Environment
The Agile Primer July 2008 © ThoughtWorks 2008.
Agile Methodologies: Comparative Study and Future Direction 林佳蓁 資工 4B.
Classical vs. Agile Requirements Development Svetlin Nakov Telerik Software Academy academy.telerik.com Senior Technical Trainer
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
Iterative development and The Unified process Chapter 2 Applying UML and Patterns -Craig Larman.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Project Life Cycles.
© Bennett, McRobb and Farmer Avoiding the Problems Based on Chapter 3 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
Component 4: Introduction to Information and Computer Science Unit 9: Components and Development of Large Scale Systems Lecture 2 This material was developed.
IS3320 Developing and Using Management Information Systems Lecture 20: Project Management Rob Gleasure
September 30, 2010COMS W41561 COMS W4156: Advanced Software Engineering Prof. Gail Kaiser
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Successful IT Projects By Darren Dalcher & Lindsey Brodie
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Introduction Requirements and the Software Lifecycle (3)
44222: Information Systems Development
CS 4500: Software Development Software Process. Materials Sommmerville Chapters 1, 2 and 3 Software Cycle and Models:
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
4.2 SOFTWARE DEVELOPMENT METHODOLOGGY PRESENTED BY : AZURA IBRAHIM SYARIFAH SYAZA BTE SEYD ZULKAFLY CS230(5A)
Software Development - Methodologies
Unit 6 Application Design KLB Assignment.
Methodologies and Algorithms
CMT3342 Computing Project Management Week 3 Pirkko Helena Harvey Associate Professor Computer Science School of Science and Technology.
Software Development methodologies
Information Technology Project Management – Fifth Edition
Introduction to Software Engineering
COMP 350: Object Oriented Analysis and Design Lecture 2
Lecture 2 Revision of Models of a Software Process
Basic SDLC Models SDLC  System Development Life Cycle.
Project Lifecycle and IT Product Life Cycle
Topic 1: Introduction to the Module and an Overview of Agile
System Development Methods
Presentation transcript:

Lecture 3: Project management methods and related software development lifecycle approaches

Project lifecycles System Lifecycle Systems development lifecycle Project management lifecycle Project StartProject End Manage the project Modify the system

Project lifecycles System Lifecycle Systems development lifecycle Project management lifecycle Project StartProject End Manage the project Modify the system

Project management lifecycle Concept Definition Implementation Handover and closeout (APM BoK 2006)

Project management lifecycle Determine Business Case Close Project Evaluate Project Select Project Proposal Manage Project Commence Project Adapted from Marchewka 2003

Project Management Methods PRINCE2 Scrum ? Process-based management – PMI’s PMBOK Guide – APM BoK – CMMI (Capability Maturity Model Integration) – SPICE ( SW Process Improvement & Capability dEtermination )

Project Management Methods PRINCE2 Scrum ? Process-based management – PMI’s PMBOK Guide – APM BoK – CMMI (Capability Maturity Model Integration) – SPICE ( SW Process Improvement & Capability dEtermination ) Later – PRINCE2 Lectures Later – Agile Lectures

Project lifecycles System Lifecycle Systems development lifecycle Project management lifecycle Project StartProject End Manage the project Modify the system

Project management lifecycle Determine Business Case Close Project Evaluate Project Systems Development Lifecycle Select Project Proposal Manage Project Commence Project Adapted from Marchewka 2003

Systems development lifecycle approaches Sequential Incremental Prototyping Iterative / Evolutionary

Sequential Linear No / Little feedback Widely discredited for systems where the requirements are unknown upfront and/or complex and/or are changing. However, if the requirements are known upfront, then it works!

The Waterfall Model System Requirements Software Requirements Analysis Program Design Coding Testing Operations Winston Royce 1970

The Waterfall Model System Requirements Software Requirements Analysis Program Design Coding Testing Operations Winston Royce (1970) Royce actually believed in incremental and iterative models. An accident that people picked up on his Page 1 diagram Larman (2004)

The Waterfall Model System Requirements Software Requirements Analysis Program Design Coding Testing Operations Winston Royce (1970) Leaves systems integration and testing too late Client / Market only see the system when resources almost all used up

V-Process Model Level of Abstraction Time More Detailed Design Increasing Levels of Testing User requirements System specification System design Systems architectural design CodeUnit testing Integration testing Function testing System testing User acceptance testing Field testing Basically a waterfall model

Example of a Waterfall Method: Structured System Analysis and Design Method (SSADM) Outline Business Specification Existing Environment Business System Options Outline Business Specification Existing Environment Business System Options Analysis of the Current System / Feasibility Study Detailed Business Specification / Requirements Specification Logical Data Design Logical Process Design Physical Design

Incremental / Phased Delivery Increment 1 Increment 5 Increment 2 Increment 3 Increment 4 Phase 1 Phase 5Phase 4Phase 3Phase 2 Delivery to Customer of Increment 1 Delivery to Customer of Increment 2 Delivery to Customer of Increment 3 Delivery to Customer of Increment 4 Delivery to Customer of Increment 5 Waterfall Models

Crashed Increments Increment 1 Increment 5 Increment 2 Increment 3 Increment 4 Delivery to customer on completion of each increment

Prototyping Build a throw-away version of some aspect of the system for demonstration to the stakeholders Testing out some aspect of risk: for example the user interface or maybe technical feasibility Aim to get rapid feedback before committing too much effort/resources Problem is that often prototypes end up becoming the system Take care over the term ‘prototype’! DSDM (Dynamic Systems Development Method) uses the term ‘prototype’, but you can argue it is a different kind of prototyping as not throw-away. Similar with Boehm’s Spiral Model Link with RAD (Rapid Application Development) which involved use of data dictionaries and automated tools to build systems

Recap: Systems development lifecycle approaches Sequential Incremental Prototyping Iterative / Evolutionary Waterfall Linear – one pass / one delivery Increment 1 Increment n... Throw–away version of some system aspect Prior to building the real system Build and deliver the system, increment by increment

Systems development lifecycle models Sequential: waterfall model Incremental: multiple waterfall models Incremental phased delivery Prototyping Iterative / Evolutionary: Evolutionary delivery (Evo) Spiral model RUP (Rational Unified Process) DSDM (Dynamic Systems Development Method) XP (Extreme Programming) Scrum Lean

Systems development lifecycle models Sequential: waterfall model Incremental: multiple waterfall models Incremental phased delivery Prototyping Iterative / Evolutionary: Evolutionary delivery (Evo) Spiral model RUP (Rational Unified Process) DSDM (Dynamic Systems Development Method) XP (Extreme Programming) Scrum Lean Today Later – Agile Lectures

Some Timelines Waterfall 1970 DSDM 1994 Gilb’s Evo 1976 Iterative 1970 IBM FSD Harlan Mills RAD Prototyping Early 1980s SSADM Early 1980s Boehm’s Spiral mid 1980s Unified Process (UP) mid 1990s Agile Manifesto 2001

‘Iterative’ / Evolutionary Terminology Issues: – Larman (2004) sometimes uses “Incremental and Iterative”, sometimes shorter “Iterative” – Gilb (1988) uses “Evolutionary” – ‘Incremental’ means building in steps – ‘Iterative’ means repeating/going round again – But there is also learning from feedback – ‘Evolutionary’ not in the biological sense of small random mutations or survival of the fittest (though parallel builds a possibility

‘Iterative’ / Evolutionary Terminology Issues: – Larman (2004) sometimes uses “Incremental and Iterative”, sometimes shorter “Iterative” – Gilb (1988) uses “Evolutionary” – ‘Incremental’ means building in steps – ‘Iterative’ means repeating/going round again – But there is also learning from feedback – ‘Evolutionary’ not in the biological sense of small random mutations or survival of the fittest (though parallel builds a possibility There are issues with the terminology: none of the terms is quite right!

‘Iterative’ / Evolutionary Based on the Shewhart Cycle from 1930s. Also known as the Deming Cycle (Deming worked with Shewhart). Involves increments/iterations Time-boxing (varying durations) Delivery to market or client Incorporates feedback (learning) Being prepared to retreat Not ‘freezing’ the requirements Decide what to do in the next increment/iteration using the feedback from the last increment/iteration and the current set of requirements

The Shewhart Cycle or Deming Cycle ActPlan DoStudy* Execute Plans Plan ActionsDecide Actions Needed Study Results of Actions Taken * Deming finally decided to use ‘Study’ instead of ‘Check’ (Gilb 2005)

Iterative Result Cycle Sequence for delivery Estimated value known Actual Results Feedback Plan Do Act Study Plan Increment Requirements Stakeholder Value Deliver Increment Designs Slightly modified from (Brodie and Woodman 2008) For each Iteration: Based on the Shewhart Cycle

Evolutionary Project Management (Evo) Developed by Tom Gilb (2005) in the 1960s (published from 1976) Principles – Small Steps ( 2%-5% of project time and money budget ) – Early High Value – Actual Benefits – Evaluation of High Risk – Frequent Delivery – Use Feedback – Allow Requirements to change

Evo Result Cycle Strategic Management Cycle Development Cycle Delivery Cycle ‘The Head’ ‘The Body’ Result Cycle Backroom Frontroom Production Cycle Backroom Feedback‘Go’ (Gilb 2005)

Evo Step Development and Delivery Time Backroom ‘KITCHEN’ Frontroom ‘RESTAURANT’ Step 1Step 2 Step 1 Step 2 Step 3 Potential Next Step (Step 4) Step 3 A B C D E F G H E G C F B H A D Implementation Cycle for F Development & Production Cycles Delivery Cycle Step 1 Step 2Step 3 From (Gilb 2005)

Evo Step Development and Delivery Time Backroom ‘KITCHEN’ Frontroom ‘RESTAURANT’ Step 1Step 2 Step 1 Step 2 Step 3 Potential Next Step (Step 4) Step 3 A B C D E F G H E G C F B H A D Implementation Cycle for F Development & Production Cycles Delivery Cycle Step 1 Step 2Step 3 (Gilb 2005) Think how a restaurant prepares food in the kitchen and then delivers it to the table. Total preparation can take weeks, but courses delivered as customers want them! You don’t have to build everything only in the duration of one increment. But focus must be on early delivery and early feedback! Think how a restaurant prepares food in the kitchen and then delivers it to the table. Total preparation can take weeks, but courses delivered as customers want them! You don’t have to build everything only in the duration of one increment. But focus must be on early delivery and early feedback!

Factors influencing project failure Yardley (2002) Technical FailureHuman FailureProcess Failure Lure of the leading edgeLack of executive supportAbsence of any project management methodology Poor technical designLack of leadershipAbsence of any systems development methodology Technical solution to a non-technical problem Uncommitted project teamAbsence of any benefits management methodology Dependence on software packages to satisfy requirements Dysfunctional project teamFailure to identify and mitigate project risks Lack of tools throughout development lifecycle Failure to manage third partiesFailure to manage requirements Technology-led developmentLack of a project ‘champion’Lengthy project timescales Lack of project ownershipInsufficient testing Stakeholder conflict‘Big-bang’ approach to computerization Resistance to change Hostile organizational culture Inexperienced project managers Lack of business justification Unclear or ambiguous business priorities Lack of user training Misaligned stakeholder motivation

Summary Project management lifecycle Systems development lifecycle approaches Systems development lifecycle models

Waterfall Increment 1 Increment n Throwaway version of some system aspect Prior to building the real system Recap: Systems development lifecycle approaches Sequential Incremental Prototyping Iterative / Evolutionary Linear – one pass / one delivery... Build and deliver the system, increment by increment ActPlan DoStudy Use feedback

References Yardley, D. (2002), Successful IT Project Delivery, Addison-Wesley, ISBN Association for Project Management (2006), Project Management Body of Knowledge (5 th Edition) (APM BoK 2006), ISBN Project Management Institute (2008), A Guide to the Project Management Body of Knowledge (4 th Edition) (PMBOK Guide), ISBN X. Marchewka, J. T. (2003), Information Technology Project Management: Providing Measurable Organizational Value, Wiley, ISBN Royce, W. (1970). Managing the Development of Large Software Systems: Concepts and Techniques. Proceedings of IEEE WESCON. August Originally published by TRW. Larman, C. (2004), Agile and iterative Development: A Manager’s Guide, Addison- Wesley, ISBN Gilb, T. (2005), Competitive Engineering: A Handbook For Systems Engineering, Requirements Engineering, and Software Engineering Using Planguage, Butterworth-Heinemann. ISBN Dalcher, D. & Brodie, L. (2007), Successful IT Projects, Thomson, ISBN Brodie, L. & Woodman, M. (2009), Using Metrics to Express Quality, Proceedings of the Seventeenth International Conference on Software Quality Management (SQM 2009), The British Computer Society, ISBN , pp