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,

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, 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, Myers-Briggs Type Indicator ● Energy source (Introversion/Extroversion) ● Information gathering (Sensing/iNtuition) ● Decision making (Thinking/Feeling) ● Organization (Judging/Perceiving)

6 © Keith Vander Linden, 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, Democratic Teams ● Described by Weinberg, 1971 ● No official leader ● Egoless programmers

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

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

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

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

12 © Keith Vander Linden, 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:

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

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

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

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

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

18 © Keith Vander Linden, 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, 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, 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, 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, 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:

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

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

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

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

27 © Keith Vander Linden, 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, Agile Models Develop, Test & Integrate Tasks Build Planning Analysis Acceptance Tests

29 © Keith Vander Linden, image from: XP

30 © Keith Vander Linden, Scrum image from:

31 © Keith Vander Linden, image from: Unified Process

32 © Keith Vander Linden, 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,

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

36 © Keith Vander Linden, 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, Code Module 1 v. 1.0 v. 1.1 v Code Module 2 v v Design Document v. 1.0 v v. 2.1 v v v. 1.7 Version/Release Control System System 1.0 v v. 1.0

38 © Keith Vander Linden, 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, 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

42 © Keith Vander Linden, 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

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 /

45 © Keith Vander Linden, Kent Beck Extreme Programming (XP) ● Innovative work on CRC cards, patterns and XP ● XP values: – Communication – Simplicity – Feedback – Courage – Respect images from 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