The Top Five Software Project Risks

Risk management (or more precisely risk avoidance) is a critical topic, but one that is often dull to read about and therefore neglected. One of the few useful and entertaining books on the subject is "Waltzing with Bears: Managing Risk on Software Projects" by Tom Demarco, Timothy Lister, authors of the ever popular "Peopleware". This post provides a useful summary of their top 5 software project risks.

While not an agile focussed book, I find it interesting that of the top five software project risks identified in Waltzing with Bears, all have suggested solutions rooted in agile methods. Demarco and Lister rate the top five risks and their mitigation strategies as...

Risk 1: Inherent schedule flaws

Explanation: Software development, given the intangible nature and uniqueness of software, is inherently difficult to estimate and schedule.

Waltzing...Solution: Get the team more involved in planning and estimating. Get early feedback and address slips directly with stakeholders.

Agile Practice: On agile projects the team is heavily involved in planning and estimating through activities such as XP‘s planning game and Wideband Delphi workshops. By working in short increments the true velocity of the team quickly emerges and is visible to all stakeholders who are now more closely involved in the project. In short, the true progress is hard to hide and quickly revealed, giving feedback to the stakeholders.

Risk 2: Requirements Inflation

Explanation: As the project progresses more and more features that were not identified at the beginning of the project emerge that threaten estimates and timelines.

Waltzing...Solution: Constant involvement of customers and developers.

Agile Practice: Agile projects plan in the regular trade-off discussions about features and estimates at every iteration boundary. Changes and requirements inflation are accepted as a fact of software projects. Rather than utilising change-suppression mechanisms, prioritisation sessions are scheduled that allow worthwhile changes to proceed and initially envisioned features to be superseded if the business gives their authorisation. It has never been possible to squeeze a pint into a quart cup, but now at least we anticipate the likely issue and have mechanisms in place to address the matter as part of the project from its early stages.

Risk 3: Employee Turnover

Explanation: Key personnel leave the project taking critical information with them that significantly delays or derails the project.

Waltzing...Solution: Increased collaboration and information sharing on the team.

Agile Practice: Agile projects practice information sharing techniques such as pair programming, common code ownership, and frequent reporting at daily stand-ups specifically to reduce the "bus-factor". When this "bus factor" (the impact to the project of a key member being hit by a bus) is reduced multiple team members share key information and the risk due to employee turnover is small. Also, often overlooked, is the fact that when working in an engaging, rewarding, empowered, collaborative environment such as agile projects, people are far less likely to want to move elsewhere so the risk is often avoided as well as reduced.

Risk 4: Specification Breakdown

Explanation: When coding and integration begin it becomes apparent that the specification is incomplete or contains conflicting requirements.

Waltzing...Solution: Use a dedicated Product Manager to make critical trade off decisions.

Agile Practice: Agile projects utilise the concept of an ambassador user, subject matter expert, or customer proxy to play the product manager role. The idea is that someone (or some group) need to be readily available to answer questions and make decisions on the project. Traditional projects suffer specification breakdown when no one will own the role and conflicting assumptions or decisions are made. Agile projects have some form of product owner role central to their core team composition to ensure decisions are made in a timely fashion.

Risk 5: Poor Productivity

Explanation: Given long project timelines, the sense of urgency to work in earnest is often absent resulting to time lost in early project stages that can never be regained.

Waltzing...Solution: Short iterations, right people on team, coaching and team development.

Agile Practice: Agile methods recognise Parkinson‘s Law and the Student Syndrome apply to software projects. Parkinson‘s Law says that: "Work expands to fill the time available" and Student Syndrome: "Given a deadline, people tend to wait until the deadline is nearly here before starting work." By having short iterations, work is timeboxed into a manageable iteration (typically 1-4 weeks) and there is always a sense of urgency. Agile methods do not specifically address getting the right people on team, coaching and team development, but these are core leadership roles applicable to both agile and traditional projects.

On Agile Solutions

It should really be no surprise that agile methods have techniques built right into them to address each of the top software project risks. They were created out of the experience of what worked well for practical software development. Given that these problems occur time and time again on software projects it is natural that their solutions should become baked into the DNA of agile methods.

So, while risk management is a dry and dull subject to many, Waltzing with Bearsbrings the subject to life with valuable pointers for software project managers and is a recommended read.

时间: 2024-08-29 09:49:30

The Top Five Software Project Risks的相关文章

Software Project Managemen(SPM) HOMEWORK01:

Software Project Management HOMEWORK01: Web development: the development of a realization of TodoList that user can register, log in and delete, also the user can achieve the basic database by using the function( adding, delete, change, check) of the

Software Project Management hw1

I just want to say something about my java project that I did last year. Our task is to finish a linking game. It is a game that you should link all the same picture with specific rules. It is such an interesting game but creating the game can not be

Homework1 of Software Project Management-- a project description

There was once a project about establishing a website providing some basic functions such as showing data from a database, searching for some certain data and so on. Initially, I was considering to spend three weeks on this website project, two weeks

【Software Project Management Homework 1】--3013218086--

web开发课程的final project应该可以算是近期已经完成的一个项目,计划时间是1月14日开始,1月18日早晨结束,实际开始和结束时间与计划的相同. 项目性质是一个新建项目,项目的初步目标是学习相应的web技术,练习使用struts2框架,并在规定的时间进行作业展示得到相应的分数, 项目资源就是自己写代码,有问题上网查找一下解决办法,向同学请教一下相关问题,项目结果很理想,按时完成了全部的功能,并且通过了展示,得到了满意的成绩

SPM(Software Project Management)课程感想

今天要说的是软件项目管理课程学习后的一些心得体会.这学期我选修了软件项目管理课程,进行了共8周的学习.   其实,进入大三后,我们开设了各种专业选修课,通过对各种课程的学习,我见识到了丰富多样的知识体系和它们之间微妙的联系.我更加明白自己在学什么.还欠缺什么,也对自己的专业有了更深的认识和更大的兴趣.当然,当初没有好好学习基本功也为现在运用更高层次理论增加了很大障碍.也许想要真正体会到一门科学的有趣之处,往往要经历一个基础知识的堆砌阶段,而这个阶段一般枯燥乏味.目标不明.面对这种情况,有的人不断

Software Engineering: 2. Project management

resources:"Software Engineering" Ian Sommerville For most projects, important goals are: Deliver the software to customer at the agreed time. Keep overall costs within budget. Deliver software that meets the customer's expections. Maintain a hap

Project Management Process

Project Management ProcessDescription .......................................................................................................................................................................................1STAGE/STEP/TASK SUMMARY LIST

Make Project Sponsors Write Their Own Requirements

Make Project Sponsors Write Their Own Requirements Miyoko Takeya, PMP Tokyo, Japan PRojECT FAIlURE IS noT jUST A PRoBlEM with American corporations. According to a survey conducted several years ago by one of Japan's leading information technology ma

App Distribution Guide--(三)---Configuring Your Xcode Project for Distribution

Configuring Your Xcode Project for Distribution You can edit your project settings anytime, but some settings are necessary during development. Others are recommended when you distribute your app for beta testing and required when you submit your app