Unit 13 Flashcards
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?
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 = (15x14)/2 -(10x9)/2 If there are 10 people, each of them may communicate with any of the 9 others, giving 10x9 = 90 possible communication paths, but we must halve this because each path will have been counted twice, once in each direction.
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 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.
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.
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.
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?
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.
What basic problem does configuration management aim to solve?
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.
Suggest a way risks to a software development project might be identified and categorised.
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.
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;
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.
Risk retention: either the current development environment can be retained until the project is complete, or if not, the retraining time can be tolerated.
A project has identified a number of risks, and is considering the following strategies to contain the risks:
(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;
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.
Risk transfer: the supplier now carries the risk.
A project has identified a number of risks, and is considering the following strategies to contain the risks:
(c) to send all software engineers on a UML training course;
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.
Risk reduction: using UML will be less risky if everybody has a common understanding of current best practice in using UML.
A project has identified a number of risks, and is considering the following strategies to contain the risks:
(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.
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.
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?
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.
What are the basic ideas underlying function point estimates, and how are these applied to estimation of object-oriented software development?
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.
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?
Kilo-Lines of Code (KLOC)
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 do we incorporate our judgement of the potential complexity of a system into the process of estimation using Basic COCOMO?
COnstructive COst MOdel, (COCOMO)
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.
What is a deliverable and what is its importance for project scheduling?
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.