Winner of the 2008 Jolt Productivity award. Woo! |
---|
Manage It! Your Guide to Modern, Pragmatic Project Management
This book is a reality-based guide for modern projects. You'll learn how to recognize your project's potholes and ruts, and determine the best way to fix problems—without causing more problems.
From the Preface
You’ve been bombarded with a ton of techniques, practices, and unsolicited pieces of advice about how to manage projects. All of them are saying, “Look at me, I’m right.”
Well, many of them are right—under certain conditions. Since each project is unique, you will need to evaluate your context (the project, the project team, and the business in which you’re working) and then make pragmatic choices about what will work and what won’t.
Every day your projects become faster-paced, your customers grow more impatient, and there is less and less tolerance for products that don’t work. What worked before might have been good enough to get you here, but the chances that it will work in the future are not good.
You must take advantage of all practices and techniques to reduce your project’s risk, including considering agile techniques for every project.
This book is a risk-based guide to making good decisions about how to plan and guide your projects. It will help software project managers, team members, and software managers succeed. Much of the information also applies if you are building more tangible products, such as a house or a circuit board, or if you are managing a service project.
It’s harder to manage software projects than it is to manage projects that have a tangible deliverable. Software is ephemeral—not concrete, not material, not created out of substance—so we can’t touch it, we can’t directly measure it, and we can’t see it. It’s harder to see the product unfold, and it’s harder to see and anticipate the risks—so it’s much harder to deal with risks. The way we practice software product development does not always help us see where the project is or where it’s heading.
When you manage tangible-product projects, you can see the product take shape. You can see the shell of the building, the finish on the walls, and all the steps in between. With service products with a tangible result, such as a conference or meeting, you can gain some insight into the project if there are interim deliverables, such as rough-draft reports or run-throughs of meetings. Both tangible-product projects and some service projects allow you to see project progress before the end of the
project.
So, what do you do when you can’t directly see project progress? What do you do when you suspect the project smells funny, and you think it might be headed toward disaster? How do you deal with stakeholders who don’t want to make the decisions that will help you create a successful project?
This book is about providing insight into your software projects and managing the risks that arise from within the project as well as the risks with which you start your projects. From chartering to release, each chapter discusses ways you can see inside your software project, measure it, feel it, taste it, and smell it.
One thing you won’t find in this book is the One True Way to manage projects. There is no One True Way that works for all projects. You also won’t find best practices. I’ll suggest helpful practices for each life cycle that might help you and the project team achieve your goals.
You’ll notice that there are forward and backward references in this book. That’s because a project is a nonlinear system. Your early decisions for your current project have implications for how you’ll finish this one—and possibly how you’ll start the next one. How you manage projects might affect the way you can manage the product backlog or project portfolio.
Table of Contents
-
- Starting a Project
1.1 Define Projects and Project Managers
1.2 Manage Your Drivers, Constraints, and Floats
1.3 Discuss Your Project Constraints with Your Client or Sponsor
1.4 Decide on a Driver for Your Project
1.5 Manage Sponsors Who Want to Overconstrain Your Project
1.6 Write a Project Charter to Share These Decisions
1.7 Know What Quality Means for Your Project - Planning the Project
2.1 Start the Wheels Turning
2.2 Plan Just Enough to Start
2.3 Develop a Project Plan Template
2.4 Define Release Criteria
2.5 Use Release Criteria - Using Life Cycles to Design Your Project
3.1 Understanding Project Life Cycles
3.2 Overview of Life Cycles
3.3 Seeing Feedback in the Project
3.4 Larger Projects Might Have Multiple Combinations of Life Cycles
3.5 Managing Architectural Risk
3.6 Paddling Your Way Out of a Waterfall
3.7 My Favorite Life Cycles - Scheduling the Project
4.1 Pragmatic Approaches to Project Scheduling
4.2 Select from These Scheduling Techniques
4.3 Start Scheduling with a Low-Tech Tool - Estimating the Work
5.1 Pragmatic Approaches to Project Estimation
5.2 Milestones Define Your Project’s Chunks
5.3 How Little Can You Do?
5.4 Estimating with Multitasking
5.5 Scheduling People to Multitask by Design
5.6 Using Rolling-Wave Scheduling
5.7 Deciding on an Iteration Duration
5.8 Estimating Using Inch-Pebbles Wherever Possible - Recognizing and Avoiding Schedule Games
6.1 Bring Me a Rock
6.2 Hope Is Our Most Important Strategy
6.3 Queen of Denial
6.4 Sweep Under the Rug
6.5 Happy Date
6.6 Pants on Fire
6.7 Split Focus
6.8 Schedule Equals Commitment
6.9 We’ll Know Where We Are When We Get There
6.10 The Schedule Tool Is Always Right
6.11 We Gotta Have It; We’re Toast Without It
6.12 We Can’t Say No
6.13 Schedule Chicken
6.14 90% Done
6.15 We’ll Go Faster Now
6.16 Schedule Trance - Creating a Great Project Team
7.1 Recruit the People You Need
7.2 Help the Team Jell
7.3 Make Your Organization Work for You
7.4 Know How Large a Team You Need
7.5 Know When to Add More People
7.6 Become a Great Project Manager
7.7 Know When It’s Time to Leave - Steering the Project
8.1 Steer the Project with Rhythm
8.2 Conduct Interim Retrospectives
8.3 Rank the Requirements
8.4 Timebox Requirements Work
8.5 Timebox Iterations to Four or Fewer Weeks
8.6 Use Rolling-Wave Planning and Scheduling
8.7 Create a Cross-Functional Project Team
8.8 Select a Life Cycle Based on Your Project’s Risks
8.9 Keep Reasonable Work Hours
8.10 Use Inch-Pebbles
8.11 Manage Interruptions
8.12 Manage Defects Starting at the Beginning of the Project - Maintaining Project Rhythm
9.1 Adopt or Adapt Continuous Integration for Your Project
9.2 Create Automated Smoke Tests for the Build
9.3 Implement by Feature, Not by Architecture
9.4 Get Multiple Sets of Eyes on Work Products
9.5 Plan to Refactor
9.6 Utilize Use Cases, User Stories, Personas, and Scenarios to Define Requirements
9.7 Separate GUI Design from Requirements
9.8 Use Low-Fidelity Prototyping as Long as Possible - Managing Meetings
10.1 Cancel These Meetings
10.2 Conduct These Types of Meetings
10.3 Project Kickoff Meetings
10.4 Release Planning Meetings
10.5 Status Meetings
10.6 Reporting Status to Management
10.7 Project Team Meetings
10.8 Iteration Review Meetings
10.9 Troubleshooting Meetings
10.10 Manage Conference Calls with Remote Teams - Creating and Using a Project Dashboard
11.1 Measurements Can Be Dangerous
11.2 Measure Progress Toward Project Completion
11.3 Develop a Project Dashboard for Sponsors
11.4 Use a Project Weather Report - Managing Multisite Projects
12.1 What Does a Question Cost You?
12.2 Identify Your Project’s Cultural Differences
12.3 Build Trust Among the Teams
12.4 Use Complementary Practices on a Team-by-Team Basis
12.5 Look for Potential Multisite Project and Multicultural Problems
12.6 Avoid These Mistakes When Outsourcing - Integrating Testing into the Project
13.1 Start People with a Mind-Set Toward Reducing Technical Debt
13.2 Reduce Risks with Small Tests
13.3 TDD Is the Easiest Way to Integrate Testing into Your Project
13.4 Use a Wide Variety of Testing Techniques
13.5 Define Every Team Member’s Testing Role
13.6 What’s the Right Developer-to-Tester Ratio?
13.7 Make the Testing Concurrent with Development
13.8 Define a Test Strategy for Your Project
13.9 System Test Strategy Template
13.10 There’s a Difference Between QA and Test - Managing Programs 288
14.1 When Your Project Is a Program
14.2 Organizing Multiple Related Projects into One Release 289 14.3 Organizing Multiple Related Projects Over Time
14.4 Managing Project Managers
14.5 Creating a Program Dashboard - 15.1 Managing Requests for Early Release
15.2 Managing Beta Releases
15.3 When You Know You Can’t Meet the Release Date
15.4 Shepherding the Project to Completion
15.5 Canceling a Project - Managing the Project Portfolio
16.1 Build the Portfolio of All Projects
16.2 Evaluate the Projects
16.3 Decide Which Projects to Fund Now
16.4 Rank-Order the Portfolio
16.5 Start Projects Faster
16.6 Manage the Demand for New Features with a Product Backlog
16.7 Troubleshoot Portfolio Management
- Starting a Project
All the templates in this book are also here, or at the Prag's Manage It! page.
Buy Now
You can buy the book from the Pragmatic Bookshelf both in print or in DRM-free electronic copy (which includes pdf, mobi and Kindle version) or from Amazon in print only.
Buy Manage It! from the Pragmatic Bookshelf
Buy Manage It! in print from Amazon.
Manage It! has been translated into Chinese (Turing Book (Posts and Telecom Press)), Japanese (Ohmsha), and Korean (Wikibooks). It is also available as an Indian Reprint (Shroff).
Pingback: Is Anyone Using This? | Create An Adaptable Life
Pingback: Who Solves Which Problems? |
Pingback: Design Your Agile Project, Part 1 |
Pingback: When Is It Time to Replan? | Create An Adaptable Life
Pingback: Are You Running from Problems or Solving Them? |
Pingback: Ceiba3D Studio | We Need Planning; Do We Need Estimation?
Pingback: Indie Game Developer! | We Need Planning; Do We Need Estimation?
Pingback: 我们需要计划,但需要评估吗? | 生活茶馆儿
Pingback: docker解决哪些问题_谁解决哪些问题? - 算法网