Presentation is loading. Please wait.

Presentation is loading. Please wait.

Dilbert © United Feature Syndicate, Inc.. © Keith Vander Linden, 2012 2.

Similar presentations


Presentation on theme: "Dilbert © United Feature Syndicate, Inc.. © Keith Vander Linden, 2012 2."— Presentation transcript:

1 Dilbert © United Feature Syndicate, Inc.

2 © Keith Vander Linden, 2012 2

3 3 Software Project Management ● Managing People – People People – Teams Teams ● Managing Processes – Code-and-fix – Traditional process models Traditional process models – Newer process models Newer process models ● Project Management Tools Project Management Tools ?

4 © Keith Vander Linden, 2012 4 Working with People ● Very few projects can be done by one person, thus working effectively with others is a critical professional skill. ● Software is developed by people for people. The stakeholders include: “All programmers are optimists.” - F.P. Brooks, The Mythical Man Month, 1975

5 © Keith Vander Linden, 2012 5 Myers-Briggs Type Indicator ● Energy source (Introversion/Extroversion) ● Information gathering (Sensing/iNtuition) ● Decision making (Thinking/Feeling) ● Organization (Judging/Perceiving)

6 © Keith Vander Linden, 2012 6 Team Organization ● Teams can be organized in many ways: – Democratic teams Democratic teams – Chief Programmer teams Chief Programmer teams – Pair Programming Teams Pair Programming Teams – Hybrid Structures Hybrid Structures “Adding manpower to a late software project makes it later.” - F.P. Brooks, The Mythical Man Month, 1975

7 © Keith Vander Linden, 2012 7 Democratic Teams ● Described by Weinberg, 1971 ● No official leader ● Egoless programmers

8 © Keith Vander Linden, 2012 8 Chief-Programmer Teams ● Suggested by Brooks, 1975 ● Centralized chief programmer ● Specialized team members Chief programmer librarian programmer tester

9 © Keith Vander Linden, 2012 9 Pair Programming Teams ● Adopted by extreme programming (XP) ● Programming is done in promiscuous, two- person teams. ● Programmers don’t specialize.

10 © Keith Vander Linden, 2012 10 Hybrid Structures 1 Split the technical and non-technical management. Technical Manager programmer librarian tester Financial Manager programmer

11 © Keith Vander Linden, 2012 11 Hybrid Structures 2 ● Use hierarchies of organizational structure. ● Can use democratic, hierarchical or paired structures at each level.

12 © Keith Vander Linden, 2012 12 Traditional Process Models ● More traditional software process models tend to favor “high ceremony”, planned processes. ● Traditional models include: – Waterfall Waterfall – Prototyping Prototyping – Spiral Spiral ● Traditional Project Management Traditional Project Management image from: http://www.dilbert.com/

13 © Keith Vander Linden, 2012 13 The Waterfall Model Analysis Design Coding Testing Maintenance

14 © Keith Vander Linden, 2012 14 Relative Effort of Phases data from Schach, 2002

15 © Keith Vander Linden, 2012 15 The Prototyping Model Listen to customer Build prototype Evaluate prototype

16 © Keith Vander Linden, 2012 16 image from: Pressman, SEPA

17 © Keith Vander Linden, 2012 17 Traditional Project Management ● Project management must: – Estimate costs; – Manage risk; – Orchestrate project schedules. ● These are hard management issues.

18 © Keith Vander Linden, 2012 18 Cost Estimation ● Traditional project planning must estimate: – the required human effort – the duration – the cost ● Common estimation methods include: – Expert judgment – Bottom-up estimates – Algorithmic cost models (e.g., COCOMO)

19 © Keith Vander Linden, 2012 19 Risk Management ● Risks must be identified and addressed, using some strategy: – proactive – reactive ● The best managers: – know what’s going to go wrong before it does – take steps to be prepared

20 © Keith Vander Linden, 2012 20 Project Scheduling ● A good project schedule sets a realistic agenda for the whole project. – It will never be perfect. – Management keys off of it nevertheless. ● Gantt Charts are commonly used to specify plans. image from: Pressman, SEPA

21 © Keith Vander Linden, 2012 21 The Project Management Plan ● A project plan document is frequently written, which would include: – The chosen process model – The staffing and team organization – Risk assessment – A detailed project schedule ● Additional plans can be written for: – The quality and validation process – The configuration management process – The maintenance process

22 © Keith Vander Linden, 2012 22 Newer Process Models ● Newer models tend to favor iteration and lower ceremony. – Problems with the waterfall model Problems with the waterfall model ● Newer models include: – Synch-and-Stabilize model Synch-and-Stabilize model – Open-Source Open-Source – Agile models Agile models ● Summary of newer models Summary of newer models image from: http://www.dilbert.com/

23 © Keith Vander Linden, 2012 23 Requirements Change Data from Larman, 2005

24 © Keith Vander Linden, 2012 24 Waterfall-Specified Feature Use Data from Larman, 2005

25 © Keith Vander Linden, 2012 25 Synchronize and Stabilize Develop components Synchronize daily Stabilize Build Architectural Design Analysis

26 © Keith Vander Linden, 2012 26 Open-Source Models Use the system. Do a variety of maintenance tasks. Implement first version

27 © Keith Vander Linden, 2012 27 Agile Methods ● Agile approaches (e.g., XP, Scrum) share a common set of principles. They tend to: – value people over processes – focus on software rather than documents – prefer collaboration over contracts – react rather than plan ● Agile approaches are always iterative and incremental.

28 © Keith Vander Linden, 2012 28 Agile Models Develop, Test & Integrate Tasks Build Planning Analysis Acceptance Tests

29 © Keith Vander Linden, 2012 29 image from: http://www.extremeprogramming.org/ XP

30 © Keith Vander Linden, 2012 30 Scrum image from: http://www.scrumfoundation.com/

31 © Keith Vander Linden, 2012 31 image from: http://www.ibm.com/ Unified Process

32 © Keith Vander Linden, 2012 32 Summary of Process Models Level of Ceremony Cycle length Based on Larman, Agile & Iterative Development, Figure 3.1

33 © Keith Vander Linden, 2012 Project Management Tools ● Cloud-based services can help teams manage shared projects: – Project hosting services – Distributed version control systems – Task management systems – Project statistics tools “Good craftspeople are known by their tools.” - proverb repeated by F.P. Brooks, The Mythical Man Month, 1975 33

34 © Keith Vander Linden, 2012 Project Hosting Services ● Projects artifacts must be maintained throughout the life of the project. ● We’ll use Bitbucket from Atlassian to keep these artifacts in one place: – https://bitbucket.org/ https://bitbucket.org/ 34 Image from https://bitbucket.org/ https://bitbucket.org/

35 © Keith Vander Linden, 2012 Distributed Version Control ● Project code is a critical artifact. ● We’ll use Mercurial to maintain the code base. ● Mercurial is supported by: – Bitbucket – Eclipse (MercurialEclipse) 35 Image from http://mercurial.selenic.com/ http://mercurial.selenic.com/

36 © Keith Vander Linden, 2012 36 Configuration Management ● Software configuration management is the process of managing the integrity of a software system throughout its evolution. ● It controls all system artifacts: ● It involves a range of activities:

37 © Keith Vander Linden, 2012 37 Code Module 1 v. 1.0 v. 1.1 v. 2.0... Code Module 2 v. 1.0... v. 2.1 1.8.1... Design Document v. 1.0 v. 1.1... v. 2.1 v.2.0.1.1... v. 3.0... v. 1.7 Version/Release Control System 2.0... System 1.0 v. 1.0 1.8.1 v. 1.0

38 © Keith Vander Linden, 2012 38 Change Management ● Change must be managed. ● The process: 1. A stakeholder submits a change request 2. If the change is valid, then assign someone to: a. Engineer the change. b. Submit change plan request. c. If change plan is approved, then: i. Commit changes to system. ii. Document their link to the change request.

39 © Keith Vander Linden, 2012 39 Build Support ● System building is the process of compiling, linking and configuring a complete system. ● Build tools can be configured to: – Recompile modules only when necessary – Automatically run tests – Run periodically (or continuously)

40 © Keith Vander Linden, 2012 Task Management Systems ● Projects comprise numerous sub-tasks that must be scheduled. ● We’ll use Trello from FogCreek: – https://trello.com/ https://trello.com/ 40 Image from https://trello.com/ https://trello.com/

41 © Keith Vander Linden, 2012 Project Statistics Tools ● Progress on a project can be analyzed using a variety of statistics. ● We’ll use GoogleDocs spreadsheets: – https://docs.google.com/ https://docs.google.com/ 41 Image from http://docs.google.com/ http://docs.google.com/

42 © Keith Vander Linden, 2012 42 Pizza Simulation ● Rules: – Pizza cooks in 30 seconds, burns in 45 seconds. – You can’t add new pieces to a closed oven. – Pick up more paper when necessary. ● Compute score at the end of each round: – Finished pizza slice – add 5 points – Penalties for unused items: Pizza base – subtract 2 points Pair of unused toppings – subtract 1 point Burned pizza – consider all burned parts as unused. Exercise taken from www.agile42.comwww.agile42.com

43 © Keith Vander Linden, 2012 ● Create an oven the size of this page. ● Model your pizza slices, ham and pineapple on the image below. Pizza Simulation Template 43 Fold the edge. Arrange the six toppings as you choose. Draw the pizza sauce on with a marker. Cut the crust and toppings to these sizes. Only 3 slices at a time.

44 © Keith Vander Linden, 2012 ● Add seven strips of rucola after the crust and sauce have cooked. ● Rucola will burn if put in the oven. Second Pizza Style 44 Exercise taken from www.agile42.com /www.agile42.com /

45 © Keith Vander Linden, 2012 45 Kent Beck Extreme Programming (XP) ● Innovative work on CRC cards, patterns and XP ● XP values: – Communication – Simplicity – Feedback – Courage – Respect images from www.threeriversinstitute.org and amazon.comwww.threeriversinstitute.org What’s the Big Idea


Download ppt "Dilbert © United Feature Syndicate, Inc.. © Keith Vander Linden, 2012 2."

Similar presentations


Ads by Google