Click here to Skip to main content
15,885,278 members
Articles / All Topics

Risks in Software Projects

Rate me:
Please Sign up or sign in to vote.
4.00/5 (3 votes)
24 Jun 2012CPOL6 min read 20.9K   5   2
This is an informal introduction to risks for software projects coming directly from my experience in project management.

So, you are managing a software project and you are wondering whether there is a way to successfully deliver the project on time and within budget? What are the risks in software projects?

The answer is yes but you need to identify and manage the project’s risks. Remember that risks can be positive or negative.

This is an informal introduction to risks for software projects coming directly from my experience in project management. I have been managing software projects for many years and I have found some common problems in almost all software projects that if you do not handle properly can lead your project to disaster. I have used different software development methodologies from Waterfall to Scrum. In addition, I am preparing a series of articles dedicated to risk management that will be available in the near future from this blog.

Let’s start!

Managing or coaching a project team is a very exciting experience. The good thing is that it is in your hands to make this experience a positive one for all involved in the project. Think positive and be proactive.

Scope

You have to have a vision statement for the project and commitment for the top management for your project. If you do not have that, do not even think of starting your project.

An example of scope is “Go to the Moon” as set by President John F. Kennedy‘s on May 25, 1961

Make sure that you have a list of deliverables that are in scope and also that you have an out of scope list.

Requirements

You have to have business requirements for your project. This is a tricky one because you need to define how you will accept the business requirements. Things to be watching for when you deal with business requirements:

  1. Are numbered. Helps traceability
  2. There is no ambiguity in the requirements
  3. Are specific
  4. There are no conflicting requirements
  5. All stakeholders were involved during the requirement gathering sessions.

Team

Select the best that you can afford or are available. Do team building activities. Remember the Tuckman‘s stages of group development: Forming – Storming – Norming – Performing – Adjourning.

You goal is to create a cohesive team that can perform effectively and efficiently. There will be some frictions but it is up to you to coach the team successfully out of a crisis.

The team has to know the technology they are going to use to build the software. The better your team, the better the possibilities of success for your project.

Software Architecture

Do the software architecture phase. If you use Scrum, you can do this before you start your sprints or you can have your first sprint dedicated to software architecture.

Allowing time for architecture will save your team (and yourself) a lot of wasted time. Software architecture is a huge subject to be analyzed here. Involve a software architect. Software architects can depict the system is such a way that the system’s behavior will be visible to the business and the implementation teams. The architecture is the primary carrier of system qualities such as performance, modifiability, and security under a unifying architectural vision. Developers see the details of the solution but many times fail to see the system as a whole.

Risk Management

Plan to have frequent (weekly) risk management meetings. You need to identify, assess and prioritize the risks of you project. Leaving your risks unmanaged is a way to ensure your project’s failure.

Estimation

There is always the risk that you did not correctly estimate the effort. Always use more than one estimation method and triangulate. This is a difficult task but if you have performed the previous phases, then you and your team have a very good understanding of the challenges of the project and you will be able to create a realistic estimation. Your estimation should include all time needed to finish the project. This also means time for meetings, etc. Remember that various deployments take time and also that there will be bugs in the software. Again, this is a very big topic and it will be covered separately.

In addition, according to Cerpa Narciso and Verner M.June. (2009), the 3 factors that contributed most for an in-house project failure are that the delivery date impacted the development process, project was underestimated, delivery date decision was made without appropriate requirements information.

Quality Assurance

Involve your quality team as early as possible. Make sure that they can create test cases out of the business requirements. Use a team of testers.

Quality Assurance will help you with validation and verification of your project. Validation ensures that “you built the right thing”. Verification ensures that “you built it right”.

Audit your development team that they are using the defined quality processes.

If you do not have a quality system in place, you are in trouble. Standardizing processes of software projects enforces a unified way of project delivery in the organization.

The most commonly used quality frameworks are the ISO 12207, the Capability Maturity Model Integration (CMMI) and the project management body of knowledge (PMBoK). (Fairley, 2009, p.10).

Executing the Project

The way you execute your project is key for the project success. There are different ways to execute your project; this depends on the methodology you are using. Here experience also helps. There are several keys to help you succeed.

  • Know the status of your team and resolve issues as soon as they occur. If you rely on weekly meetings, then you are losing valuable time. Always state the duration, the purpose of a meeting and the expected outcome.
  • Be sure that you have a change request process in place. Changes will occur and you have to be ready to handle them.
  • At the end of each phase, have a show and tell with the client.
  • Do team building activities.

There are many things to say for project execution. The above list is by no means complete. Project execution is a big subject that I will treat separately with articles in this blog.

Communication

Have everyone informed. Create a communication plan. Be proactive and not reactive. Create status reports and manage the expectations of the involved parties. Failure managing the expectations introduces unnecessary risks to your project. Communication can take up to 70% of your time.

Environment

Your project is not in isolation. It interacts with the surrounding environment. Changes in the environment affect your project. For example, the inability of subcontractors to deliver their work might affect your project’s success.

Epilogue

Is the above list complete? No, it is not complete. It is a starting point to help you see some major areas that can hurt your project. With this article, we are only scratching the tip of the iceberg. Managing software projects is really exciting and requires full commitment of your time and effort. Good luck!

References

  • Cerpa Narciso and Verner M.June. (2009). Why did your project fail?. Commun. ACM 52, 12 (December 2009), 130-134. Available from: http://doi.acm.org/10.1145/1610252.1610286
  • Fairley, E. R. (2009) Managing and leading software projects. IEEE Computer Society. John Wiley & Sons., Inc., Hoboken, New Jersey
  • Project Management Institute(2008A) A guide to the project management body of knowledge . 4th edition. Newton Square, Pennsylvania: Project Management Institute Inc
  • Project Management Institute (2008B). Practice standard for project risk management Newton Square, Pennsylvania: Project Management Institute Inc.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Program Manager
Greece Greece
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
GeneralMy vote of 3 Pin
Farhan Ghumra27-Jun-12 3:21
professionalFarhan Ghumra27-Jun-12 3:21 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.