CS 307: Software Engineering. Lecture 14: Project Management

Similar documents
Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 11: Managing the Software Process

In this chapter you will learn about the following

Project Planning. COSC345 Software Engineering 2016 Slides by Andrew Trotman given by O K

Software Development Life Cycle

Project Management. Software Projects vs. Engineering Projects

Introduction to Software Engineering

Measuring Effort and Productivity of Agile Projects

UC Santa Barbara. CS189A - Capstone. Christopher Kruegel Department of Computer Science UC Santa Barbara

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING UNIT-1

BA /14/2010. PSU Problem Solving Process. The Last Step 5. The Last Step 8. Project Management Questions PLAN IMPLEMENT EVALUATE

6 PROJECT TIME MANAGEMENT

By: Ronny Trefftzs CSCI 5828: Foundations of Software Engineering Spring 2012 Professor: Kenneth Anderson

NYS Forum Project Management Work Group Presents

Prepared by: Mr.M.SYED SHAHUL HAMEED CHAPTER 3 SYSTEMS PLANNING - MANAGING SYSTEMS PROJECTS

Modern Systems Analysis and Design Seventh Edition

Effort, Duration and Cost Estimation in Agile Software Development

Darshan Institute of Engineering & Technology for Diploma Studies

SE310 Analysis and Design of Software

Project Time Management

Chapter 3, Project Organization and Communication

Owning An Agile Project: PO Training Day 2

Project Planning. CITS3220 Software Requirements & Project Management

Scheduling. Adapted from John Musser

Software Quality Engineering Courses Offered by The Westfall Team

Software Quality Engineering Courses Offered by The Westfall Team

Project Management. CHAOS Survey results. Denver Airport Automated Baggage System One of the worst technology failure the US government funded.

Optimizing Scrum-Fall Whitepaper

Sign up to mailing list Join Slack, teaching team is available. All links are on the course website Slides are uploaded there too

Organizational Matters

Effort Estimation. Method + Process + Communication. OXID esales AG Dr.-Ing. Oliver Ciupke Head of Professional Services OXID esales AG

Lecture 2: Project Management, Part 1: Requirements, WBS, Scheduling, and Risk Management. Prof. Shervin Shirmohammadi SITE, University of Ottawa

Lecture- 10. Project Scheduling. Dronacharya College of Engineering

Big Rock Estimation: Using Agile Techniques to Provide a Rough Software Schedule / Resource Estimate

The Software Life Cycle

Copyright Intertech, Inc All Rights Reserved. May 18, 2011

Project Planning and Management Team Polk. Ricardo Carrion-Carrero, Matthew Luker, Arnold Lestin

For the PMP Exam using PMBOK Guide 5 th Edition. PMI, PMP, PMBOK Guide are registered trade marks of Project Management Institute, Inc.

A one day Introduction. Tim Guay, PMP, CSM, PMI-ACP, CLSSS

Software Process. Overview

Chapter 2 The Project Management Life Cycle

Project Management. Minsoo Ryu. Hanyang University.

Information Technology Project Management, Seventh Edition

Luis R. Garcilaso March 13, Lecture #22. Service Processes & Systems Dept. of Mechanical Engineering - Engineering Mechanics

No Bull Agile. Marc J. Balcer September 2017

Lesson Three: Business Analysis Planning and Monitoring BANA 110 Analyzing Business Needs and Requirements Planning Gary Mesick and Shelly Lawrence,

SYED AMMAL ENGINEERING COLLEGE (An ISO 9001: 2008 Certified Institution)

SWE 211 Software Processes

MINGGU Ke 2 Analisa dan Perancangan Sistem Informasi

Part 1. Software engineering Facts. CSC 4181 Compiler Construction Software Engineering Lectures. What is software engineering? What is software?

CTC/ITC 310 Program Management California State University Dominguez Hills First Exam Answer Key November 20, 2018 Instructor: Howard Rosenthal

Foundations of Software Engineering

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016

Project Management. Agenda - What will you learn today? Theory Lecture Plan. A Software Life-cycle Model Which part will we talk about today?

Software Design COSC 4353/6353 D R. R A J S I N G H

Scrum Test Planning. What goes into a scrum test plan?

EVERYTHING YOU VE HEARD ABOUT AGILE DEVELOPMENT IS WRONG

Foundations of Software Engineering

PROJECT MANAGEMENT AND PROJECT TEAM STRUCTURE

Contents. Today Project Management. What is Project Management? Project Management Activities. Project Resources

Managing Complexity in the Face of Uncertainty

7. Project Management

Chapter 3 Project Management

The Mystery Behind Project Management Metrics. Reed Shell Blue Hippo Consulting

2. True or false: In Scrum all the requirements for the project are known prior to the start of development.

SE300 Software Engineering Practices

Cost Estimation. What are the costs of a Software Project? Why does it matter for us to know this? How do you measure productivity?

Software Processes. Chapter 2. CMPT 276 Dr. B. Fraser Based on slides from Software Engineering 9 th ed, Sommerville.

Agile Software Development

ABHELSINKI UNIVERSITY OF TECHNOLOGY

ENGR 310. Project Planning. Lecture Mar 2008

Introduction to Project Management

Test your Understanding-The Answers

Agile Projects 7. Agile Project Management 21

nam I BIA Un IVERS ltv OF SCIEnCE AnD TECHnOLOGY

Lean + Agile: Deliver Half the Software and Delight your Clients Canadian Lean Summit

Software engineering Facts. CSC Compiler Construction Software Engineering Topics. What is software engineering? What is software?

Feasibility and Managing Analysis and Design Activities

Scheduling Resources and Costs

Introduction to Software Life Cycles and Agile. CSCI 5828: Foundations of Software Engineering Lecture 03 09/02/2014

A system is a group of elements organized and arranged so that the. elements can act as a whole toward achieving a common goal; is a collection of

2. What is a phase? A phase is a collection of related activities or tasks that produce a deliverable or work product.

The Software Development Process (SDLC)

PMP Exam Preparation Course Project Time Management

Solution Park Support for Project Management. CS Odessa corp.

Chapter 4 Document Driven Approach for Agile Methodology

Agile Test Plan How to Construct an Agile Test Plan

CTC/ITC 310 Program Management California State University Dominguez Hills Final Exam Answer Key December 13, 2018 Instructor: Howard Rosenthal

Object-Oriented Software Engineering! Using UML, Patterns, and Java! Chapter 3, Project Organization and Communication

Foundations of Software Engineering. Process: Agile Practices Michael Hilton

Non-object-oriented design methods. Software Requirements and Design CITS 4401 Lecture 15

Processes. Object Orientated Analysis and Design. Benjamin Kenwright

THE PMP EXAM PREP COURSE

Johanna Rothman Part II Design and Manage an Agile and Lean Project Chapter 5 Start Your Agile Project Right. Copyright 2017

Chapter 2 Objectives. Pfleeger and Atlee, Software Engineering: Theory and Practice (edited by B. Cheng) Chapter 2.

Goals of course. Themes: What can you do to evaluate a new technique? How do you measure what you are doing?

MODULE Explain briefly the different types of system models that might be created during the system analysis phase. 2. Write short notes on

How to improve the quality of your processes

CS SOFTWARE ENGINEERING QUESTION BANK

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF INFORMATION TECHNOLOGY QUESTION BANK

Announcements. INF 111 / CSE 121: Software Tools and Methods. Class Overall & Quiz 3. Class Averages. Today s Lecture. Previously in INF 111/CSE 121

Transcription:

CS 307: Software Engineering Lecture 14: Project Management Prof. Jeff Turkstra 2017 Dr. Jeffrey A. Turkstra 1

Announcements Sprint 1 planning document due Monday, February 13 Also when Sprint 1 begins Might be worth reviewing Lecture 3, slides 31 onward Remember your weekly reports Team report should be sent to project coordinator AND jeff@cs.purdue.edu 2017 Dr. Jeffrey A. Turkstra 2

Lecture 14 Project management 2017 Dr. Jeffrey A. Turkstra 3

Project management Encompasses all activities needed to plan and execute a project Deciding what needs to be done Estimating costs Ensuring that there are suitable people to undertake the project Defining responsibilities Scheduling Making arrangements for the work 2017 Dr. Jeffrey A. Turkstra 4

Directing Being a technical leader Reviewing and approving decisions made by others Building morale and supporting staff Monitoring and controlling Coordinating the work with managers of other projects Reporting Continually striving to improve process 2017 Dr. Jeffrey A. Turkstra 5

Software Process Models General approaches for organizing a project into activities Help the project manager and team decide: What work should be done The sequence Aids to thinking, not rigid prescriptions Each project has its own unique plan 2017 Dr. Jeffrey A. Turkstra 6

Models Code and Fix Stagewise and Waterfall Prototyping Evolutionary Spiral Agile/Scrum See Lecture 3 2017 Dr. Jeffrey A. Turkstra 7

Re-engineering Periodically project managers should set aside some time to re-engineer part or all of the system Clean up code to make it more readable Completely rewrite a layer Refactor part of the design General goal is to increase maintainability 2017 Dr. Jeffrey A. Turkstra 8

Refactoring Process of restructuring existing code without changing external behavior Improves nonfunctional attributes of the software Software quality Improve readability Reduce complexity Improve extensibility etc 2017 Dr. Jeffrey A. Turkstra 9

Cost estimation Estimating how much software engineering time will be required to do some work Elapsed time: start date to end date of the task or project Development effort: amount of labor used in person-months or person-days Development time estimate money 2017 Dr. Jeffrey A. Turkstra 10

Effective cost estimation principles 1. Divide and conquer Divide the project into subsystems Divide each subsystem into development activities Estimate time for each activity Sum results 2017 Dr. Jeffrey A. Turkstra 11

2. Include all activities when making estimates Prototyping Design Inspecting Testing Debugging Writing documentation Deployment 2017 Dr. Jeffrey A. Turkstra 12

3. Leverage past experience and knowledge of current project Look for similarities with past work Similar amount of time and effort Base estimates on personal judgment of experts Use algorithmic models developed by software industry Formulas to estimate cost 2017 Dr. Jeffrey A. Turkstra 13

Algorithmic models Systematically estimate development effort Number of use cases Number of distinct requirements Number of classes in domain model Number of widgets in UI Estimated number of lines of code (LoC) Generally less reliable and accurate than experience 2017 Dr. Jeffrey A. Turkstra 14

Effective cost estimation 4. Account for differences when extrapolating from other projects Different software developers Different development processes and maturity levels Different customers and users Different schedules Different technology Different requirements complexity Different domains Different requirements stability 2017 Dr. Jeffrey A. Turkstra 15

5. Anticipate worst case and plan for contingencies Develop and identify critical use cases first Estimate Optimistic everything goes perfectly Likely allow for typical things going wrong Pessimistic everything goes wrong 2017 Dr. Jeffrey A. Turkstra 16

6. Combine independent estimates Use several techniques and compare results Delphi technique Several individuals make cost estimates in private Share their estimates, analyze discrepancies Adjust estimates until consensus reached 2017 Dr. Jeffrey A. Turkstra 17

Scrum poker Consensus-based technique for estimating effort Variation of Delphi method Group members make estimates by playing numbered cards face-down on the table Don t speak Cards are revealed and estimates are discussed 2017 Dr. Jeffrey A. Turkstra 18

Avoids anchoring - first number sets a precedent for subsequent estimates Similar to priming in psychology Some organizations use standard playing cards (Ace, 2, 3,, King) King: too big or complicated to estimate Apps 2017 Dr. Jeffrey A. Turkstra 19

Effective cost estimation 7. Revise and refine estimates as work progresses As you add detail As the requirements change As the risk management process uncovers problems 2017 Dr. Jeffrey A. Turkstra 20

Teams Software engineering is a human process Selecting appropriate people and assigning roles and responsibilities is an important project management skill Team organization can vary a) Egoless b) Chief programmer c) Strict hierarchy 2017 Dr. Jeffrey A. Turkstra 21

Egoless Self-organizing team Everybody is equal Work together toward a common goal Decisions made by consensus Most suited to difficult projects with many technical challenges Open to debate Typical Agile team organization 2017 Dr. Jeffrey A. Turkstra 22

Strict hierarchy Each individual reports to a manager and is responsible for performing the tasks delegated by that manager Suitable for large projects with a strict schedule Everybody is well-trained and has a well- defined role Often couples with waterfall model 2017 Dr. Jeffrey A. Turkstra 23

Chief programmer Middle road between egoless and hierarchical Chief programmer leads and guides project Consults with and relies on individual specialists Linux kernel 2017 Dr. Jeffrey A. Turkstra 24

Team size Doubling the size of the team never halves the development time The Mythical Man-Month: Essays on Software Engineering Subsystems and teams should be sized such that total amount of required knowledge and exchange of information is reduced Number of people on a team may not be constant 2017 Dr. Jeffrey A. Turkstra 25

Behind schedule? Adding more people will make it worse. 2017 Dr. Jeffrey A. Turkstra 26

Skills Architect Project Manager Configuration management and build specialist UI specialist Hardware and third-party software specialist Documentation specialist Tester 2017 Dr. Jeffrey A. Turkstra 27

Scheduling and tracking Scheduling is the process of deciding: Sequence of activities to be performed When they should start and complete Tracking is the process of determining how well you are sticking to the cost estimate and schedule 2017 Dr. Jeffrey A. Turkstra 28

PERT chart Shows the sequence in which tasks must be completed Each node of a PERT chart contains elapsed time and effort estimates Critical path indicates minimum time to project completion 2017 Dr. Jeffrey A. Turkstra 29

2017 Dr. Jeffrey A. Turkstra 30

Gantt chart Graphically illustrates start and end dates for each software engineering task One axis shows time Other shows activities to be performed Black bars are top-level tasks White bars are subtasks Diamonds are milestones Important deadline dates 2017 Dr. Jeffrey A. Turkstra 31

2017 Dr. Jeffrey A. Turkstra 32

Questions? 2017 Dr. Jeffrey A. Turkstra 33