Software Engineering for Students A Programming Approach
Software Engineering for Students A Programming Approach Software Engineering for Students A Programming Approach
30.7 Managing people 379 productivity and quality are virtually assured. By contrast, an artist who creates a painting has complete autonomy; deadlines and quality are by no means certain. Developing software probably fits somewhere between these extremes, with a need for some autonomy and some control. So, on the one hand, a heavyweight technique can be used. Processes are well-defined and reporting is frequent and stringent. The waterfall model has these characteristics – it consists of well-defined steps, each of which leads to a well-defined product. Here there is minimal dependence on the individuals skill. On the other hand, a lightweight technique can be used. Processes are ill-defined and reporting is less frequent. An example is open source development. Here the skills of the individuals are vital. Another factor is the individual variability between software developers – some are fast and effective, while some are slower and less effective. If we assume that this is crucial, then the logic is to hire only good developers and fire (or avoid hiring) bad ones. On the other hand, we could accept diversity and plan accordingly. SELF-TEST QUESTION 30.6 You are part of a group, preparing a meal. You know that someone works slowly. What do you do? There are no clear answers to these dilemmas. But, if we believe that developers must be respected, there are some things that should be avoided and some that are worth trying. First, some ways in which a management can weaken a team are: ■ show distrust of the team ■ overemphasize the paperwork, rather than creative thinking ■ scatter the team members in different locations ■ ask team members to work on a number of different projects (functional team), rather than focusing on the particular project (project team) ■ press for earlier delivery at the expense of reducing the quality of the software ■ set unrealistic or phony deadlines ■ break up an effective team. Some management approaches for enhancing team activity are: ■ emphasize the desirability of the quality of the software product ■ plan for a number of successful completed stages (milestones) during the lifetime of the project ■ emphasize how good the team is ■ preserve a successful team for a subsequent project
380 Chapter 30 ■ Project management ■ reduce hierarchy in the team, promoting egalitarianism, placing the manager outside the team ■ celebrate diversity within the team members. Summary ■ software project management is difficult ■ project management involves selecting a process model, a team organization, tools and methods ■ one approach to estimating the cost of a software system involves counting function points ■ planning involves deciding on milestones and scheduling tasks amongst people ■ the informal aspects of team working during software development can be as important as the technical aspects. • Exercises 30.1 Suggest facilities for a software tool that supports the planning and monitoring of software project activities. 30.2 Draw up a plan for the following software development project. Document the plan as a Pert chart, in which each activity is shown as an arc, with a bubble at its starting point (the event which triggers the activity) and a bubble at its completion (the event which concludes the activity). The plan is to adopt the waterfall model. The development must be completed in two years. The following activities are envisaged: 1. requirements analysis – 4 person months 2. architectural design – 3 person months 3. detailed design – 4 components, each at 6 person months per component. 4. coding – 2 person months for each component 5. unit testing – 6 person months for each component 6. system testing – 6 person months. How many people will be required at each stage of the project to ensure that the deadline is met? 30.3 Suggest features for a software tool to support software cost estimation. 30.4 You are the manager of a software development project. One of the team members fails to meet the deadline for the coding and testing of a component. What do you do?
- Page 352 and 353: Further reading 329 Cathedral and t
- Page 354 and 355: These are qualified by the statemen
- Page 356 and 357: 26.3 Extreme programming 333 develo
- Page 358 and 359: SELF-TEST QUESTION 26.3 Which of th
- Page 360 and 361: CHAPTER 27 This chapter explains:
- Page 362 and 363: Figure 27.1 The phases of the unifi
- Page 364 and 365: 27.5 ● Iteration 27.6 Case study
- Page 366 and 367: The transition phase Summary 343 Th
- Page 368: PART F PROJECT MANAGEMENT
- Page 371 and 372: 348 Chapter 28 ■ Teams The commun
- Page 373 and 374: 350 Chapter 28 ■ Teams Level of s
- Page 375 and 376: 352 Chapter 28 ■ Teams A chief pr
- Page 377 and 378: 354 Chapter 28 ■ Teams benefits o
- Page 379 and 380: 356 Chapter 28 ■ Teams • Furthe
- Page 381 and 382: 358 Chapter 29 ■ Software metrics
- Page 383 and 384: 360 Chapter 29 ■ Software metrics
- Page 385 and 386: 362 Chapter 29 ■ Software metrics
- Page 387 and 388: 364 Chapter 29 ■ Software metrics
- Page 389 and 390: 366 Chapter 29 ■ Software metrics
- Page 391 and 392: 368 Chapter 29 ■ Software metrics
- Page 393 and 394: CHAPTER 30 This chapter: 30.1 ● I
- Page 395 and 396: 372 Chapter 30 ■ Project manageme
- Page 397 and 398: 374 Chapter 30 ■ Project manageme
- Page 399 and 400: 376 Chapter 30 ■ Project manageme
- Page 401: 378 Chapter 30 ■ Project manageme
- Page 405 and 406: 382 Chapter 30 ■ Project manageme
- Page 408 and 409: CHAPTER 31 This chapter: 31.1 ● I
- Page 410 and 411: 31.3 Case study - assessing verific
- Page 412 and 413: 31.5 A single development method? 3
- Page 414 and 415: Further reading 391 31.2 Draw up a
- Page 416 and 417: 32.3 ● The world of programming l
- Page 418 and 419: 32.5 ● The real world of software
- Page 420 and 421: 32.6 Control versus skill 397 Final
- Page 422 and 423: Formal methods 32.7 Future methods
- Page 424 and 425: Summary 401 In the short-term futur
- Page 426: Further reading 403 An extensive tr
- Page 430 and 431: APPENDIX A Case studies are used th
- Page 432 and 433: Figure A.1 Cyberspace invaders A.4
- Page 434 and 435: APPENDIX B Glossary Within the fiel
- Page 436 and 437: C.2 ● Class diagrams C.2 Class di
- Page 438 and 439: util Figure C.6 A package diagram S
- Page 440 and 441: References to books and websites ar
- Page 442 and 443: abstraction 99, 107 acceptance test
- Page 444 and 445: fork 324 formal methods 276, 388, 3
- Page 446 and 447: quality 18, 362 quality assurance 1
30.7 Managing people 379<br />
productivity and quality are virtually assured. By contrast, an artist who creates a painting<br />
has complete autonomy; deadlines and quality are by no means certain. Developing software<br />
probably fits somewhere between these extremes, with a need <strong>for</strong> some autonomy<br />
and some control.<br />
So, on the one hand, a heavyweight technique can be used. Processes are well-defined<br />
and reporting is frequent and stringent. The waterfall model has these characteristics –<br />
it consists of well-defined steps, each of which leads to a well-defined product. Here<br />
there is minimal dependence on the individuals skill.<br />
On the other hand, a lightweight technique can be used. Processes are ill-defined<br />
and reporting is less frequent. An example is open source development. Here the skills<br />
of the individuals are vital.<br />
Another factor is the individual variability between software developers – some are<br />
fast and effective, while some are slower and less effective. If we assume that this is crucial,<br />
then the logic is to hire only good developers and fire (or avoid hiring) bad ones.<br />
On the other hand, we could accept diversity and plan accordingly.<br />
SELF-TEST QUESTION<br />
30.6 You are part of a group, preparing a meal. You know that someone<br />
works slowly. What do you do?<br />
There are no clear answers to these dilemmas. But, if we believe that developers<br />
must be respected, there are some things that should be avoided and some that are<br />
worth trying.<br />
First, some ways in which a management can weaken a team are:<br />
■ show distrust of the team<br />
■ overemphasize the paperwork, rather than creative thinking<br />
■ scatter the team members in different locations<br />
■ ask team members to work on a number of different projects (functional team),<br />
rather than focusing on the particular project (project team)<br />
■ press <strong>for</strong> earlier delivery at the expense of reducing the quality of the software<br />
■ set unrealistic or phony deadlines<br />
■ break up an effective team.<br />
Some management approaches <strong>for</strong> enhancing team activity are:<br />
■ emphasize the desirability of the quality of the software product<br />
■ plan <strong>for</strong> a number of successful completed stages (milestones) during the lifetime<br />
of the project<br />
■ emphasize how good the team is<br />
■ preserve a successful team <strong>for</strong> a subsequent project