Synopses & Reviews
"If you're looking for solid, easy-to-follow advice on estimation, requirements gathering, managing change, and more, you can stop now: this is the book for you."--Scott Berkun, Author of The Art of Project Management
What makes software projects succeed? It takes more than a good idea and a team of talented programmers. A project manager needs to know how to guide the team through the entire software project. There are common pitfalls that plague all software projects and rookie mistakes that are made repeatedly--sometimes by the same people! Avoiding these pitfalls is not hard, but it is not necessarily intuitive. Luckily, there are tried and true techniques that can help any project manager.
In Applied Software Project Management, Andrew Stellman and Jennifer Greene provide you with tools, techniques, and practices that you can use on your own projects right away. This book supplies you with the information you need to diagnose your team's situation and presents practical advice to help you achieve your goal of building better software.
- Planning a software project
- Helping a team estimate its workload
- Building a schedule
- Gathering software requirements and creating use cases
- Improving programming with refactoring, unit testing, and version control
- Managing an outsourced project
- Testing software
Jennifer Greene and Andrew Stellman have been building software together since 1998. Andrew comes from a programming background and has managed teams of requirements analysts, designers, and developers. Jennifer has a testing background and has managed teams of architects, developers, and testers. She has led multiple large-scale outsourced projects. Between the two of them, they have managed every aspect of software development. They have worked in a wide range of industries, including finance, telecommunications, media, nonprofit, entertainment, natural-language processing, science, and academia. For more information about them and this book, visit stellman-greene.com
Many software companies have problems with their projects. Though they're staffed with talented designers, dedicated programmers and eager managers, they can't figure out why they have so much trouble building software. In some cases, teams can't seem to get all of the bugs out of their software before it's shipped, and find themselves in a costly cycle of releases and patches. In others, projects feel chaotic and unpredictable, and team members feel that they never get to solve interesting problems because they're bogged down with tedious bug fixes or stressful and unrealistic deadlines. And some teams are stuck in a development death spiral and can't release any software at all.
To help fix these problems, Applied Software Project Management provides a set of practical techniques that teams can use to plan software projects, review and inspect projects as they progress, diagnose and fix design and programming flaws, and provide quality assurance. On a broader level, the book also offers tools for developing leadership and management skills, and even ways to approach and implement organizational change. Written by experienced and skilled software managers, Applied Software Project Management includes a checklist of major points at the end of each chapter that team members can use in every project.
About the Author
Andrew, despite being raised a New Yorker, has lived in Minneapolis, Geneva, and Pittsburgh... twice. The first time was when he graduated from Carnegie Mellons School of Computer Science, and then again when he and Jenny were starting their consulting business and writing their first book for OReilly. He and Jenny first worked together at a company on Wall Street that built financial software, where he was managing a team of programmers. Over the years hes been a Vice President at a major investment bank, architected large-scale real-time back end systems, managed large international software teams, and consulted for companies, schools, and organizations, including Microsoft, the National Bureau of Economic Research, and MIT. Hes had the privilege working with some pretty amazing programmers during that time, and likes to think that hes learned a few things from them.
Bestselling O'Reilly authors Jennifer Greene and Andrew Stellman have been building software and writing about software engineering together since they first met in 1998. Their first book, Applied Software Project Management, was published by OReilly in 2005. Other Stellman and Greene books for OReilly include Beautiful Teams (2009), and their first book in the Head First series, Head First PMP (2007). They founded Stellman & Greene Consulting in 2003 to build a really neat software project for scientists studying herbicide exposure in Vietnam vets. In addition to building software and writing books, theyve provided training and consulted for companies and spoken at conferences and meetings of software engineers, architects and project managers.
Jenny studied philosophy in college but, like everyone else in the field, couldnt find a job doing it. Luckily, shes a great software engineer, so she started out working at an online service, and thats the first time she really got a good sense of what good software development looked like. She moved to New York in 1998 to work on software quality at a financial software company. Shes managed a teams of developers, testers and PMs on software projects in media and finance since then. Shes traveled all over the world to work with different software teams and build all kinds of cool projects.
Table of Contents
About the Author; Praise for Applied Software Project Management; Preface; Goals of the Book; Who Should Read This Book; Comments and Questions; Safari Enabled; Acknowledgments; Chapter 1: Introduction; 1.1 Tell Everyone the Truth All the Time; 1.2 Trust Your Team; 1.3 Review Everything, Test Everything; 1.4 All Software Engineers Are Created Equal; 1.5 Doing the Project Right Is Most Efficient; 1.6 Part I: Tools and Techniques; 1.7 Part II: Using Project Management Effectively; Part I: Tools and Techniques; Chapter 2: Software Project Planning; 2.1 Understand the Project Needs; 2.2 Create the Project Plan; 2.3 Diagnosing Project Planning Problems; Chapter 3: Estimation; 3.1 Elements of a Successful Estimate; 3.2 Wideband Delphi Estimation; 3.3 Other Estimation Techniques; 3.4 Diagnosing Estimation Problems; Chapter 4: Project Schedules; 4.1 Building the Project Schedule; 4.2 Managing Multiple Projects; 4.3 Use the Schedule to Manage Commitments; 4.4 Diagnosing Scheduling Problems; Chapter 5: Reviews; 5.1 Inspections; 5.2 Deskchecks; 5.3 Walkthroughs; 5.4 Code Reviews; 5.5 Pair Programming; 5.6 Use Inspections to Manage Commitments; 5.7 Diagnosing Review Problems; Chapter 6: Software Requirements; 6.1 Requirements Elicitation; 6.2 Use Cases; 6.3 Software Requirements Specification; 6.4 Change Control; 6.5 Introduce Software Requirements Carefully; 6.6 Diagnosing Software Requirements Problems; Chapter 7: Design and Programming; 7.1 Review the Design; 7.2 Version Control with Subversion; 7.3 Refactoring; 7.4 Unit Testing; 7.5 Use Automation; 7.6 Be Careful with Existing Projects; 7.7 Diagnosing Design and Programming Problems; Chapter 8: Software Testing; 8.1 Test Plans and Test Cases; 8.2 Test Execution; 8.3 Defect Tracking and Triage; 8.4 Test Environment and Performance Testing; 8.5 Smoke Tests; 8.6 Test Automation; 8.7 Postmortem Reports; 8.8 Using Software Testing Effectively; 8.9 Diagnosing Software Testing Problems; Part II: Using Project Management Effectively; Chapter 9: Understanding Change; 9.1 Why Change Fails; 9.2 How to Make Change Succeed; Chapter 10: Management and Leadership; 10.1 Take Responsibility; 10.2 Do Everything Out in the Open; 10.3 Manage the Organization; 10.4 Manage Your Team; Chapter 11: Managing an Outsourced Project; 11.1 Prevent Major Sources of Project Failure; 11.2 Management Issues in Outsourced Projects; 11.3 Collaborate with the Vendor; Chapter 12: Process Improvement; 12.1 Life Without a Software Process; 12.2 Software Process Improvement; 12.3 Moving Forward; Appendix A: Bibliography; Chapter 2. Software Project Planning; Chapter 3. Estimation; Chapter 4. Project Schedules; Chapter 5. Reviews; Chapter 6. Software Requirements; Chapter 7. Design and Programming; Chapter 8. Software Testing; Chapter 9. Understanding Change; Chapter 10. Management and Leadership; Chapter 11. Managing an Outsourced Project; Chapter 12. Process Improvement; Colophon;