什么因素能够使得软件项目成功?光有一个好主意或者一组天才的程序员是远远不够的。一个项目经理需要知道如何带领团队完成整个软件项目。有一些普遍存在的陷阱对所有软件项目都造成了负面影响,而有些反复出现的低级错误有时竟然在同一个项目里一再发生。要避免这些错误并不难,也不必依靠因人而异的先天素质。幸运的是,的确存在一些历经检验的真实技巧能够帮助每一个项目经理。
在《实用软件项目管理》一书中,Andrew Stellman和Jennifer Greene提供了各种工具、技巧和实践方法,这些东西你都可以马上应用到项目中去。本书包含了用来检查你的团队现状的信息,并且提供了实用的建议来帮助你实现构建更好软件的目标。
书中的主题包括:制订软件项目计划,帮助团队预估工作量,设定项目进度表,搜集软件需求并创建用例,通过重构、单元测试和版本控制来改进程序开发,外包项目的管理,软件测试。本书为英文影印版。
Jennifer Greene和Andrew Stellman从1998年起就一起进行软件开发。Andrew具有程序开发的背景并且管理过各种团队,包括需求分析师、设计师和开发人员。Jennifer具有软件测试的背景并且管理过各种团队,包括架构师、开发人员和测试人员。她还领导了多个大型的外包项目。他们两
PREFACE
1 INTRODUCTION
Tell Everyone the Truth All the Time
Trust Your Team
Review Everything, Test Euerything
All Software Engineers Are Created Equal
Doing the Project RiRht Is Most Efficient
Part I:Tools and Techniques
Part II:Using Project Management Effectiuely
Part One TOOLS AND TECHNIQUES
SOFTWARE PROJECT PLANNING
Understand the Project Needs
Create the Project Plan
Diagnosing Project Planning Problems
3 ESTIMATION
Elements of a Successful Estimate
Wideband Delphi Estimation
Other Estimation Techniques
Diagnosing Estimation Problems
4 PROJECT SCHEDULES
Building the Project Schedule
Managing Multiple Projects
Use the Schedule to Manage Commitments
Diagnosing Scheduling Problems
5 REVIEWS
Inspections
Deskchecks
Walkthroughs
Code Reviews
Pair Programming
Use Inspections to Manage Commitments
Diagnosing Review Problems
6 SOFTWARE REQUIREMENTS
Requirements Elicitation
Use Cases
Software Requirements Specification
Change Control
Introduce Software Requirements Carefully
Diagnosing Software Requirements Problems
7 DESIGN AND PROGRAMMING
Review the Design
Version Control with Subversion
Refactoring
Unit Testing
Use Automation
Be Careful with Existing Projects
Diagnosing Design and Programming Problems
8 SOFTWARE TESTING
Test Plans and Test Cases
Test Execution
Defect Tracking and Triage
Test Environment and Performance Testing
Smoke Tests
Test Automation
Postmortem Reports
Using Software Testing Effectiuely
Diagnosing Software Testing Problems
Part Two USING PROJECT MANAGEMENT EFFECTIVELY
9 UNDERSTANDING CHANGE
Why Change Fails
How to Make Change Succeed
10 MANAGEMENTAND LEADERSHIP
Take Responsibility
Do Euerything Out in the Open
Manage the Organization
Manage Your Team
11 MANAGING AN OUTSOURCED PROJECT
Prevent Major Sources of ProJect Failure
Management Issues in Outsourced Projects
Collaborate with the Vendor
12 PROCESS IMPROVEMENT
Life Without a Software Process
Software Process Improuement
Moving Forward
BIBLIOGRAPHY
INDEX