1 / 38

Software Project Management

Software Project Management. Managing People People Teams Managing Processes Code-and-fix Traditional process models Newer process models Project Management Tools. ?. Working with People.

hagen
Download Presentation

Software Project Management

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Project Management • Managing People • People • Teams • Managing Processes • Code-and-fix • Traditional process models • Newer process models • Project Management Tools ?

  2. 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

  3. Myers-Briggs Type Indicator • Energy source (Introversion/Extroversion) • Information gathering (Sensing/iNtuition) • Decision making (Thinking/Feeling) • Organization (Judging/Perceiving)

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

  5. Democratic Teams • Described by Weinberg, 1971 • No official leader • Egoless programmers

  6. tester Chief tester programmer librarian programmer programmer Chief-Programmer Teams • Suggested by Brooks, 1975 • Centralized chief programmer • Specialized team members

  7. Pair Programming Teams • Adopted by extreme programming (XP) • Programming is done in promiscuous, two-person teams. • Programmers don’t specialize.

  8. Hybrid Structures 1 • Split the technical and non-technical management. Technical Manager Financial Manager tester tester programmer librarian programmer programmer

  9. Hybrid Structures 2 • Use hierarchies of organizational structure. • Can use democratic, hierarchical or paired structures at each level.

  10. Traditional Process Models • More traditional software process models tend to favor “high ceremony”, planned processes. • Traditional models include: • Waterfall • Prototyping • Spiral • Traditional Project Management image from: http://www.dilbert.com/

  11. The Waterfall Model Analysis Design Coding Testing Maintenance

  12. Relative Effort of Phases data from Schach, 2002

  13. The Prototyping Model Listen to customer Build prototype Evaluate prototype

  14. image from: Pressman, SEPA

  15. Traditional Project Management • Project management must: • Estimate costs; • Manage risk; • Orchestrate project schedules. • These are hard management issues.

  16. 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)

  17. 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

  18. 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

  19. Newer Process Models • Newer models tend to favor iteration and lower ceremony. • Problems with the waterfall model • Newer models include: • Synch-and-Stabilize model • Open-Source • Agile models • Summary of newer models image from: http://www.dilbert.com/

  20. Requirements Change Data from Larman, 2005

  21. Waterfall-Specified Feature Use Data from Larman, 2005

  22. Synchronize and Stabilize Analysis Architectural Design Develop components Synchronize daily Stabilize Build

  23. Open-Source Models Implement first version Use the system. Do a variety of maintenance tasks.

  24. 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.

  25. Agile Models Analysis Build Planning Develop, Test & Integrate Tasks Acceptance Tests

  26. XP image from: http://www.extremeprogramming.org/

  27. Scrum image from: http://www.scrumfoundation.com/

  28. Unified Process image from: http://www.ibm.com/

  29. Summary of Process Models Level of Ceremony Cycle length Based on Larman, Agile & Iterative Development, Figure 3.1

  30. 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 Project Management Tools

  31. 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/ Project Hosting Services Image from https://bitbucket.org/

  32. Project code is a critical artifact. • We’ll use Mercurial to maintain the code base. • Mercurial is supported by: • Bitbucket • Eclipse (MercurialEclipse) Distributed Version Control Image from http://mercurial.selenic.com/

  33. Projects comprise numerous sub-tasks that must be scheduled. • We’ll use Trello from FogCreek: • https://trello.com/ Task Management Systems Image from https://trello.com/

  34. Progress on a project can be analyzed using a variety of statistics. • We’ll use GoogleDocs spreadsheets: • https://docs.google.com/ Project Statistics Tools Image from http://docs.google.com/

  35. 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 scoreat 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.com

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

  37. Add seven strips of rucola after the crust and sauce have cooked. Rucola will burn if put in the oven. Second Pizza Style Exercise taken from www.agile42.com/

  38. What’s the Big Idea Kent BeckExtreme Programming (XP) • Innovative work on CRC cards, patterns and XP • XP values: • Communication • Simplicity • Feedback • Courage • Respect images from www.threeriversinstitute.org and amazon.com

More Related