Читать книгу Beginning Software Engineering - Stephens Rod - Страница 33
PART I
Software Engineering Step-by-Step
CHAPTER 3
Project Management
ОглавлениеEffective leadership is putting first things first. Effective management is discipline, carrying it out.
– STEPHEN COVEY
WHAT YOU WILL LEARN IN THIS CHAPTER:
● What project management is and why you should care
● How to use PERT charts, critical path methods, and Gantt charts to create project schedules and estimate project duration
● How you can improve time estimates
● How risk management lets you respond quickly and effectively to problems
Part of the reason you implemented all the change tracking described in the preceding chapter is so that you have historical information when you’re writing your memoirs. It’s so you know what happened, when, and why.
In addition to this peek into the past, you also need to keep track of what’s going on in real time. Someone needs to track what’s happening, what should be happening, and why the two don’t match. That’s where project management comes in.
Many software developers view management with suspicion, if not downright fear or loathing. They feel that managers were created to set unrealistic goals, punish employees when those goals aren’t met, and take credit if something accidentally goes right. There are certainly managers like that, and Scott Adams has made a career out of making fun of them in his Dilbert comic strip, but some management is actually helpful for producing good software.
Management is necessary to ensure that goals are set, tracked, and eventually met. It’s necessary to keep team members on track and focused on the problems at hand, without becoming distracted by inconsequential side issues such as new unrelated technology, impending layoffs, and Angry Birds tournaments.
On smaller projects, a single person might play multiple management roles. For example, a single technical manager might also handle project management tasks. On a really small project, a single person might perform every role including those of managers, developers, testers, and end users. (Those are my favorite kinds of projects because the meetings and arguments are usually, but not always, short.)
No matter how big the project is, however, management tasks must be performed. The following sections describe some of the key management responsibilities that must be handled by someone for any successful software development project.