Software Engineering
Dr Kingsley Sage
Copyright By PowCoder代写 加微信 powcoder
Project management
• Risk management • Managing people
Project management
• Concerned with activities involved in ensuring that software is delivered on time and on schedule and in accordance with the requirements of the organisations developing and procuring the software.
• Project management is needed because software development is always subject to budget and schedule constraints that are set by the organisation developing the software.
Success criteria
• Deliver the software to the customer at the agreed time.
• Keep overall costs within budget.
• Deliver software that meets the customer’s expectations.
• Maintain a happy and well-functioning development team.
Managing software development
The product is intangible:
– Software cannot be seen or touched. Software project managers cannot see progress by simply looking at the artefact that is being constructed.
Many software projects are ‘one-off’ projects:
– Large software projects are usually different in some ways from previous projects. Even managers who have lots of previous experience may find it difficult to anticipate problems.
Software processes are variable and organization specific:
– We still cannot reliably predict when a particular software process is likely to lead to development problems.
Role of project manager
• Proposal preparation
• Project planning
– Time planning
– Resource planning – Motivating teams
• Reporting
– Keeping the customer “informed”
• Risk management
– Reducing the exposure to things going wrong
Risky business
• Risk management is the process of identifying risks and drawing up plans to minimise their effect on a project
• Risk can impact:
– Resources and timescales
– Quality and performance of software – Organisational stability
Examples of risks
Risk management
• Risk identification • Risk analysis
• Risk impact
• Risk planning
• Risk monitoring
• Consider an example …
https://www.youtube.com/watch?v=8Xjr2hn OHiM
Do you feel lucky punk?
“Did he fire six shots or only five?” Well to tell you the truth in all this excitement I kinda lost track myself. But being this is a .44 Magnum, the most powerful handgun in the world and would blow your head clean off, you’ve gotta ask yourself one question: “Do I feel lucky?” Well, do ya, punk?
So do you feel lucky?
• Risk identification
– You could get shot by a “dirty cop”
• Risk analysis
– Unsure of the number of bullets left in Dirty Harry’s gun. Gun holds 6 bullets. Did he already fire 5 or 6 bullets? Equal probability of both, so 0.5 probability he still has a bullet
• Risk impact
– It could be bad …
• Risk planning (mitigation)
– Grab the gun or surrender?
• Risk monitoring
– We’ll see what happens …
Quantifying risk
• What is the risk? (identification)
• Effect of the risk? (impact)
• What are the causes of the risk? How likely are these causes to happen? (analysis)
• What do we do if one of these risk factors comes to pass (mitigation)
• How do we detect whether one has happened, what do we do about it? (monitoring)
Risk identification
The software may not be developed on time
Loss of reputation
Causes and how likely (analysis)
Loss of key development staff (medium)
Problems with toolset (low)
What do we do about it? (mitigation)
Promote key staff
Offer staff development opportunities
Get support contract for toolset
Monitoring
Staff level monitoring (project manager)
Create a pool of additional developers
Review regularly
Risk management process
Risk identification
• Could be a team activity or based on project manager’s experience
• A checklist of common risks may be useful:
– Technology risks
– People risks
– Organisation risks – Requirements risks – Estimation risks
Risk types
Risk types and examples
Strategies to help manage risk
Risk monitoring
• Assess each identified risk regularly to decide whether or not it is becoming more probable
• Also assess whether the effects of the risks have changed
• Key risks should be decided at management meetings
Risk indicators
• Good project management is essential if software engineering projects are to be developed on schedule and within budget.
• Software management is distinct from other engineering management. Software is intangible. Projects may be novel or innovative with no body of experience to guide their management.
• Software processes are not as mature as traditional engineering processes.
• Risk management is now recognized as one of the most important project management tasks.
• Risk management involves identifying and assessing project risks to establish the probability that they will occur and the consequences for the project if that risk does arise. You should make plans to avoid, manage or deal with likely risks if or when they arise.
• And in case you wanted to know:
• Some interesting discussions on risk on Canvas
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com