Unit 13 - Process quality management, human resources, quality assurance Flashcards

1
Q

If you were managing a team of ten people on a late running project and your manager offered you five more people to help get back on track, would you accept? If not, how would you justify your refusal?

A

Accepting may be unwise as it would create sixty more communication paths which might, in turn, make the project even later. However, the additional resources might be able to contribute effectively to bring the project back on schedule, so a definitive answer to this question is not possible.
60 = (15614)/2 -(1069)/2 If there are 10 people, each of them may communicate with any of the 9 others, giving 1069 = 90 possible communication paths, but we must halve this because each path will have been counted twice, once in each direction.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Suppose you were able to give an accurate estimate of the work content of a project at the start of the project. Give one reason why the project could take more than this estimate. Give one reason why you might be motivated to propose a lower estimate.

A

A project might take more than the estimate because the requirements might change, creating further work. You might have been tempted to propose a lower estimate in order to secure the business.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

When you organise a project team by subsystem, as in Figure 3, what considerations should you take into account in allocating staff to a subteam? Assume that you are working within a matrix organisation.

A

The primary need is to make sure that each subteam has the skills and knowledge necessary for developing its particular subsystem. The use of a matrix organisation makes this easier.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Consider the waterfall model of the software development process as a quality chain. Who are the customers for the design activity and what must be done to gain their satisfaction?

A

There are two sets of customers: the requirements engineers, who will be satisfied if the design implements the requirements determined by them, and the programmers, who require a design that is free of defects and is easy to implement. Both sets of customers have a view of what a defect is, and require the design to be defect free, from their point of view, to be satisfied.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What basic problem does configuration management aim to solve?

A

Configuration management aims to solve the problem of keeping track of all the successive versions each item goes through, as well as the interdependencies between them, avoiding the possibility that developers will waste effort by working with wrong versions, and ensuring that when the product is released only the correct version of each part is included, so that the product will work properly.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are the primary concerns of the manager of a software development project?

A

Although management can be divided into project management, people management, and quality management, these are each carried out to ensure that the software is delivered:

  • on schedule;
  • within budget;
  • to specification.

These factors are the critical concerns in managing a software development project.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What skills does a project manager need to possess to carry out the responsibilities set out in our solution to Exercise 1?

A

Just being a good programmer or analyst is not enough to be a good project manager. The project manager will need to be skilled in the following areas.

  • Effective people management The project manager must be able to identify the skills and expertise required to complete the project, and then recruit the staff. And, perhaps more importantly, they must be able to motivate and develop these people, to their full potential, to benefit not only the current development project, but also the whole organisation over the longer term.
  • Planning Any kind of construction project always requires careful planning. The project manager needs to plan each activity of the development so that resources can be made available when required, and not too early or too late. The project plan the manager constructs must also give confidence to the client that the project is being properly managed.
  • Organisation and monitoring The project manager must organise the human resources available into an effective team or group of teams. Having planned the work, the use of resources with respect to the plan needs to be plotted and any potential problems of slippage or overspend need to be identified early and remedial action taken.
  • Customer relations In many projects, liaising with the clients and users is a major activity in itself. Clients will need to be reassured that the money they are investing in a new software system will bring the expected return on investment. Users will want to be reassured that the software will support their needs. On many projects, requirements are constantly being changed and new ones introduced, and managing this is part of the project manager’s job.
  • Technical leadership In many smaller projects, the project manager will be the person consulted for advice in devising and selecting solutions to technical problems. The project manager will not be expected to become involved in the details of these solutions, but must be able to spot the winners and losers. Alternatively a different technical leader or ‘authority’ might be appointed, perhaps called the ‘system architect’ or similar.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Suggest a way risks to a software development project might be identified and categorised.

A

They could be identified by holding a brainstorming session and using some simple categorisation of risk to help focus the search. A suitable categorisation would be: project risks, technical risks and business risks.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

A project has identified a number of risks, and is considering the following strategies to contain the risks: (a) to continue developing in Java, despite learning the next release of the Java development environment is quite different from the current version;

(b) to put a penalty clause in a software procurement contract so that a failure by the software supplier to deliver acceptable software leads to complete recovery of all payments made, plus an additional damages payment to cover consequential loss;
(c) to send all software engineers on a UML training course;
(d) to not use Java, because the software engineers have no experience of Java. Say what kind of risk containment strategy is being used (from avoidance, retention, reduction and transfer) in each case, and discuss the appropriateness of the strategy.

A

(a) Risk retention: either the current development environment can be retained until the project is complete, or if not, the retraining time can be tolerated.
(b) Risk transfer: the supplier now carries the risk.
(c) Risk reduction: using UML will be less risky if everybody has a common understanding of current best practice in using UML.
(d) Risk avoidance. Note that one could have used risk reduction by training the software engineers on Java. In addition, not using Java could bring its own risks, such as using outmoded technology.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

A project manager will want to monitor those risks that are of significant concern. Which kinds of risks do you think should be most closely monitored?

A

At the outset of the project the project manager will be most concerned about those risks identified as high probability and high cost. However, the project manager will also need to monitor not only these significant risks, but also those risks which at the outset seem insignificant but whose probability and costs may change as the project develops, in case these risks become significant. Software development is an extremely dynamic process and situations, especially with regard to risks, can change suddenly.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are the basic ideas underlying function point estimates, and how are these applied to estimation of object-oriented software development?

A

Function points are units of functionality of a system such that each function point requires the same quantity of code to be produced. Functionality is known early in development, during requirements analysis. In object-oriented development, functionality is determined by the use cases and classes, so these are used for estimation purposes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

If you have an estimate of the size, in KLOC, of a software system that you intend to develop, why can’t you then simply divide the size in KLOC by a single productivity figure of KLOC written per person-month to obtain the effort?

A

In developing large software systems, two further factors are involved.

  • Complexity: productivity is higher for simple systems such as database systems, and lower for complex systems such as embedded real-time systems.
  • Diseconomy of scale: usually larger systems use proportionately more effort due to the need for internal communication between members of the project team. Both of these mean that simply dividing by a single productivity figure will not suffice.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

How do we incorporate our judgement of the potential complexity of a system into the process of estimation using Basic COCOMO?

A

Complexity is first of all used to select the actual parameter set to be used, depending upon type of system — organic, semi-detached or embedded. After this, complexity may also be used to determine a number of effort multipliers, which are used to scale the initial estimate of the effort.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is a deliverable and what is its importance for project scheduling?

A

A deliverable is an output, such as a design document or source code, of some software development activity of which the production gives evidence of the completion of the activity.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are the essential attributes of activities that are needed for project scheduling? How can project schedules be expressed?

A

The essential information required is the name of the activity, the effort required to complete the activity, and the dependencies upon other activities. The usual way to express the results of scheduling is either as a Gantt chart or as a PERT chart.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is meant by ‘resource balancing’?

A

This is the process of juggling the assignment of resources to activities over time so that each resource is used as near as possible to its maximum capacity without being overloaded, and each activity receives the resources that it needs.

17
Q

What is the purpose of monitoring the progress of a project? Describe two ways of monitoring the progress of a project.

A

Monitoring is used to replan and reprioritise to meet new circumstances. First, on a weekly basis, say, collect data on expenditure against activities and compare it with the budget for the activity. Second, monitor the completion of work via handover of a deliverable to some other agent.

18
Q

Suppose the library system that this section and Unit 3 and Unit 5 have used as an example is to be rebuilt completely, taking on much more sophisticated requirements, as follows.
1 Members are assigned a status defining what library services they have access to.
2 Some library items are held on reserve and cannot be borrowed, but members of suitable status can place a request to refer to them within the library.
3 Items can be photocopied by library staff, subject to copyright rules, and copies sent to members of appropriate status.
4 The library has a number of branches with different specialisations, and copies of items may be stored at a number of different branches.
5 Damaged items, or items that have not been used, may be withdrawn and given away to members.

Estimate the effort required for the development of this system.

A

The effort estimation requires that we know the use cases and classes involved.

The six original use cases (listed by actor) are: 
- Member 
       reserve book 
- Librarian 
       reserve book 
       update catalogue 
       issue copy of book 
       return copy of book 
       enrol new member 
- Browser 
       browse catalogue 
To these must be added six new use cases: 
- Member 
       request reserved item 
       request photocopy of item 
       select withdrawn item 
- Librarian 
       register status of user 
       photocopy item for user and send it to them                  withdraw item from library

p35

19
Q

How are technical quality controls added to a project plan?

A

For each deliverable, we identify the quality control standards and guidelines to be applied, and the method of ensuring that they are applied.

20
Q

(a) What is a quality management system (QMS)?

(b) What would you expect to find in a QMS?

A

(a) A QMS is a mechanism adopted throughout an organisation for building quality into its projects and for managing the quality control process.
(b) A quality manual that describes an organisation’s QMS, including managerial structure, responsibilities, activities, capabilities and resources. One sometimes includes the quality plans for projects in the quality manual, to help learn from history.

21
Q

What is the difference between certification and accreditation in connection with ISO 9001?

A

A company must be certified as conforming to the standard by a body that is accredited to carry out the certification.

22
Q

(a) Who is formally responsible for the quality of an organisation’s delivered products (or services), and how is this responsibility discharged within a QMS based on ISO 9001?
(b) How does a quality audit relate to a quality plan and a quality management system?

A

(a) The senior management, who make their quality policy known through the quality manual and authorise the development of a QMS designed to implement that policy.
(b) The reason for quality audits and their frequency should be specified in the quality plan for a project, in order to conform with the requirements of the quality management system.

23
Q

How could an organisation continuously improve its software development processes and move up CMMI levels?

A

The organisation could document the way work is performed, train its staff and gather and analyse historical data about its performance. In new projects, the organisation could measure performance with the aim of improving it.

24
Q

What sorts of thing could be measured during internal quality audits and corrective actions to help to improve the effectiveness of a quality management system?

A
  • Internal quality audits: the number of audit non-conformances, where they were found and which clauses of the standard were infringed.
  • Corrective actions: the number, severity and type of errors; the source of errors (which phase of the software development process) and the location of errors (which department or project).
25
Q

Using software project planning as an example, discuss how the basic techniques of the CMMI might evolve as an organisation goes from maturity level 2 to maturity level 5.

A
  • At level 2, project level schedules are appropriate.
  • At level 3, a common approach to project planning is required across all projects.
  • At level 4, it is appropriate to construct a common estimation method with feedback of actual results to measure estimation effectiveness.
  • At level 5, improved estimation techniques and tools should be sought.
26
Q

Can you see any obvious similarities and differences between the ISO 9001 approach and the CMMI?

A

The CMMI has a wider scope than ISO 9001, so there are key process areas that have no equivalent ISO 9001 heading. Where the two approaches address the same areas, they are broadly equivalent.

27
Q

Distinguish between the terms configuration item, version, and variant.

A

A configuration item is any elementary work product produced during a project.
A configuration item will exist in many versions, which are revisions of the original item.
It may also possess a number of variants, which are essentially the same as the
original item except that they differ in some well defined part of their description;
variants may themselves exist in many versions.

28
Q

What should happen if two people check out the same version of an item, both people update it, and then attempt to check their updated version back in again?

A

A frequently used project policy is that both check in operations are successful, creating new versions recorded as derived from the same original version, but now on independent paths of development. These could be merged later by invoking the appropriate operation.

29
Q

Explain what a release is, in terms of configurations.

A

A release is a baseline created at the completion of a stage of project, and includes everything that is delivered at the end of that stage, including executable files, documentation, and possibly regression test cases.

30
Q

How would a change control board influence an emergency change? Why would it want to?

A

Since an emergency change is done before being cleared with the CCB, the only action that the CCB might take is to retrospectively request the change be undone. All changes, even emergency changes, can have negative consequences. In some circumstances it may be better to live with the problems identified than with the adverse effects introduced by making the change.

31
Q

Consider the library system used as an example in this unit. Identify the configuration items, versions, variants, configurations and baselines in this example.

A

Configuration items:

  • UML deliverables: the use case, class, interaction, and state diagrams;
  • the code for each class;
  • the unit tests for each class;
  • the test plan, covering integration, acceptance and system tests.

Versions: for each of the configuration items.

Variants: no variants have been specified, though in general one could imagine variants for different kinds of library, from pure reference libraries to libraries containing a wide range of items including DVDs, CDs, audio books, etc., to libraries with branches and mobile vans.

Configurations: any consistent set of versions.

Baselines: these would be configurations that would be reviewed and then frozen at key milestone points, such as:

  • after the completion of design, near the end of month 3 in the Gantt chart in Table 6;
  • after system integration, testing and debugging, near the end of month 6, but before the acceptance tests;
  • after successful acceptance tests, as the first release.