Introduction to Software Engineering: Project Management ( Highlights )

Size: px
Start display at page:

Download "Introduction to Software Engineering: Project Management ( Highlights )"

Transcription

1 Introduction to Software Engineering: Project Management ( Highlights ) John T. Bell Department of Computer Science University of Illinois, Chicago Based on materials from chapters 14, 15, and 16 of Object Oriented Software Engineering by Bruegge & DuToit 3e. What would you do if they put you in charge? 2 1

2 Project Management Tasks during the course of a typical project Identify Project Goals 3 A Work Breakdown Structure, WBS, divides work into manageable pieces. 4 2

3 A Work Breakdown Structure, WBS, divides work into manageable pieces. 5 Planning Temporal Dependencies 6 3

4 Critical Path Analysis Source: wikipedia.org/critical_path_method Drag = min( duration, parallel floats ) for critical items only. "SimpleAONwDrag3" by Nuggetkiwi - Own work. Licensed under CC BY-SA 3.0 via Wikimedia Commons 7 Scheduling Activities with Gantt Charts Source: wikipedia.org/gantt_chart 8 4

5 Gantt Charts in MS Project Source: wikipedia.org/gantt_chart 9 Allocating Personnel with a Skill Matrix Also useful for identifying skill shortages, and for planning long-term skill development. 10 5

6 Earned Value as a Classical Metric 11 Introduction to Software Engineering: Software Life Cycle Modeling John T. Bell Department of Computer Science University of Illinois, Chicago Based on Chapter 15 of Bruegge & DuToit 3e. 6

7 Capability Maturity Model, CMM 1. Initial / Ad Hoc Everyone does their own thing. Sometimes it works out really well. 2. Repeatable Everyone does the same thing, the same way every time, thru habit/inertia. 3. Defined There exists documentation on how to do things, and people follow it. 4. Managed Someone monitors the process, to ensure quality & standards conformance. 5. Improving There exists a process improvement program, with monitoring, feedback, & changes. 13 IEEE Standard 1074 Defines Process Groups, Processes, and Activities: 14 7

8 Life Cycle Models 1074 Processes 15 Sequential Activity Models Waterfall V 16 8

9 Iterative Activity Boehm s Spiral 17 Unified Software Development Process ( a.k.a. the Unified Process ) 18 9

10 One Sample Cycle of the Unified Process 19 Entity-Centered Models In a waterfall approach all issues in one category would need to be closed before any in the next category could be opened. Other approaches can have open issues in multiple categories concurrently

11 A Final Word on Models: No Real Process is Ideal or Pure Models are useful for studying and discussing ideal processes, but real processes in practice are always going to be some sort of a hybrid mix, drawing ideas from different ideals and combining them into something appropriate for the current project. 21 Introduction to Software Engineering: Methodologies John T. Bell Department of Computer Science University of Illinois, Chicago Based on materials from chapter 16 of Bruegge & DuToit 3e. 11

12 Definition of Methodology A software engineering methodology is a collection of methods and tools for developing and managing a software system to achieve a specified goal in a given environment. It specifies when methods or tools should be used and what to do when unexpected events occur. - Bruegge & DuToit, 3 rd Edition, Chapter The project environment can influence the selection of SW methodology Participant s expertise. End user access. Technological climate. Geographical distribution. Project duration vs. rate of change. Client type see next slide

13 Types of Client, categorized by decision power and domain knowledge Local king client Has knowledge and authority. Proxy client Has knowledge but no authority. Pseudo client Has authority but no knowledge. No client No one with authority or knowledge. 25 Issues to consider when selecting a methodology How much planning should be done? How much reuse to incorporate in design? ( and in what form(s) and to what detail? ) How much modeling to do before coding? How much detail for the process definition? How much control and monitoring? When should project goals be redefined? 26 13

14 Review What project management tool is used to identify which tasks must be completed on time if the project as a whole is to be completed on time? A. Work Breakdown Structures B. Skills Matrix C. Gantt Charts D. Earned Value Charts E. Critical Path Analysis 27 Three Methodologies Royce s Methodology, based on the Unified Process. Extreme Programming, XP Rugby ( Scrum ) 28 14

15 Key Principles of Royce s Methodology Architecture-first approach. Confront risks early, based on iterations of the Unified Process model. Minimize lines of human-generated code. Change management environment, w. baselines. Objective quality control, w. automated metrics. Visual modeling languages, e.g. UML 29 Summary of Royce s Methodology 30 15

16 Manifesto for Agile Software Development ( Shared by Rugby, XP, and other Agiles ) 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. Source: 31 Key Principles of Extreme Programming Rapid Feedback Test and confront issues early. Incremental Change One step at a time. Simplicity Design focuses on current requirement(s) only, w.o. considering the future. Embracing Change Normal, not an exception. Quality Work Do excellent work the first time, instead of going back and fixing things later

17 Summary of Extreme Programming 33 The Rugby method moves forward in a series of sprints ( scrums. ) Product Owner is responsible for setting priorities in consultation with client, determining order of development, and in general making decisions. Scrum Team are developers. They determine the effort required to implement each new feature. Development Team Client may be internal or external, real or pseudo. ( e.g. a persona. ) Scrum Master is an expert on the scrum methodology, and advises others on how the process works. A single individual may fill more than one role. E.g. PO & SM in icescrum

18 Summary of Rugby Methods 35 Review Which of the following is NOT listed as a preference in the Agile Manifesto? A. Customer collaboration over contract negotiation. B. Individuals and interactions over processes and tools. C. Responding to change over following a plan. D. Short brief meetings over lengthy conferences. E. Working software over comprehensive documentation. Source:

19 Review Which of the following methodologies developed from pushing best practices to their ultimate limits? A. Royce s Methodology B. Scrum C. The Unified Process D. The Waterfall Approach E. XP 37 19