• No results found

Chapter Summary and Conclusions

In this chapter we have discussed the critical concepts to planning and managing a software engineering project. A project must begin with communication. The initial communication with the client is used to identify the software solution envisioned by the client, and the functionality that they require from it. The information gathered from the client is then utilized to create a plan for the project.

Project planning seeks to identify the activities, milestones, and deliverables that are to be achieved throughout the project. Planning begins with the determination of a software systems purpose and scope. Next, the project manager identifies the activities to be undertaken during the project, the milestones that will define them, and the deliverables that they will produce. Finally, the project plan must include estimations of resources to be consumed, including manpower, time, and money.

From this estimation, a schedule is created for the development process. The project manager is responsible for managing this schedule for the entirety of the project. One tool a project manager might use in this endeavor is called a Work Breakdown Structure, WBS, which lays out a project according to the activities that make it up. In addition, project managers can use Gantt Charts to map out the project’s schedule, and to monitor progress.

In addition to planning the project, a project manager is responsible for com-municating with, and supervising all of the individuals involved in the project.

This includes everyone from the client to the individual engineers. When a project begins, the project manager must select staff based on ability, and assign that staff to activities at which they can perform effectively.

Finally, a project manager is responsible for monitoring a software engineering project to ensure that it follows the intended course and achieves the specified goal. If deviation from the plan or schedule is encountered, the project manager must take appropriate action to see that it is corrected. This can include the reassignment of engineers, the hiring of new engineers, or the scrubbing of certain requirements.

4.8 Exercises

1. Last chapter, we asked you to explain the difference between a class and an object using examples. Now, present the same difference, this time using models.

78 4 Starting the Project

2. Explain why the process of project planning is iterative and why a plan must be continually reviewed during a software project.

3. What is the critical distinction between a milestone and a deliverable?

4. Explain the difference between task and activity?

5. Can a role be shared between two or more participants? Why or why not?

6. To which role would you assign the following tasks?

a. Change a subsystem interface to accommodate a new requirement.

b. Communicate the subsystem interface change to other teams.

c. Change the documentation as a result of interface change.

d. Design a test suite to find defects introduced by the change.

e. Ensure that the change is completed on schedule.

7. Select at a random a working day in your work week. Log all the activities that qualify as communication activities (e.g., talking to a friend over phone, providing information and obtaining information to a fellow) which fraction of your working day does communication represent?

8. Why do software development projects generate so much documentation?

9. As a programmer, you are offered a promotion to project management but you feel that you can make a more effective contribution in a technical rather than a managerial role. Discuss whether you should accept the promotion.

10. Explain why the best programmers do not always make the best software managers. You may find helpful to base your answer on the list of project activities described inSect. 4.1.

11. You work for a large mobile phone manufacturer. You have been nominated project manager for the design project of a new mobile phone model. The project scope has already been determined. You have chosen a very simple work breakdown structure, and the included activities have been named. You must now plan the project schedule and calculate project duration, as well as estimate the resources needed and calculate project costs. Your boss wants the schedule and resource plan on his table in a few weeks’ time.

a. You have already made the following table (Table 1) that includes all the activities required in the project, the duration of each activity (in weeks), and resources (in men). Also, dependencies between activities have been identified. Dependency refers to the activity number of the preceding activity. The preceding activity must be fully completed before work on the following activity can be started (all dependencies are Finish to Start dependencies).

b. Draw a Gantt-chart corresponding to the shortest duration for the project, and mark the floats of the activities in the chart. Mark the two most important milestones in the Gantt.

References

Bruegge B, Dutoit A (2004) Object-oriented software engineering: using UML, patterns, and java, 2nd edn. Pearson Education, Ltd., Upper Saddle River

Ghezzi C, Jazayer M, Mandrioli D (1991) Fundamentals of software engineering, 2nd edn.

Prentice Hall, New Jersey

Koontz H (1980) The management theory jungle revisited. Acad Manag Rev, pp 175–187 Schach S (2008) Object-oriented software engineering. McGraw-Hill Higher Education, Boston Sommerville I (2004) Software engineering, 7th edn. Peason Education, Ltd., Boston

80 4 Starting the Project

Requirements Elicitation