Top list of Software Development Life Cycle Risks
Risk is the potential for loss. This potential is based on both the probability of occurrence (uncertain and undesirable outcomes that may lead to a significant problem at any given point in the software development life cycle) and the impact on the business/project and software (a combination of time delay, Financial loss, reduction in performance, loss of reputation, etc.).
General causes of Risks
There are multiple reasons for project failures sometimes; the cause of the failures is located at the business level and sometimes at a specific stage of the SDLC. I created this list with more than 150 real-life examples that you can include in your RM process; the list is divided into a few basic categories that make it more readable for you.
Stakeholders Related Risks
They are allowing stakeholders to dominate the project.
Failure to engage the company stakeholders.
Failure to understand the response of the stakeholders in case of failed projects.
Failure to understand the stakeholder’s expectations.
Team members that afraid to make decisions because some stakeholders maybe decline them.
The Customer changed requirements that may lead to stakeholder’s conflicts.
Business Related Risks
Does the project match the company culture?
Failure to create effective communication between the resources involved in the project (Departments, individuals, etc.).
How the current project will affect the company's future “Road-Map”?
How will the current project affect the company's reputation?
How will the current project affect the company revenues?
How the project affects the historical/Future sides of the company?
How this project affects other projects that spread throughout the business?
Software that fails to answer the customer expectations.
Will the product fail to be “sold” following the expectations?
Will the project fail to meet the actual needs of the organization?
The software will fail to be delivered on time.
Unstable company environment.
What amount of other customers will use the current developed technology?
What are the extra costs if the software fails to be delivered on time?
What is the ROI for the company regarding this project?
Project Timelines related Risks
An external source(Stockholder, salesperson, client Etc.) pushes that team member to make unrealistic commitments about the project timelines.
Delays on one task affect the entire timelines of the project.
Expectations promised by the management cannot accomplish during the project timelines.
Failure to understand the complexity of the project.
Failure to understand the project risks.
Failure to understand the set of skills needed to accomplish the project targets.
To secure a contract with the company customers, the project timelines are cut to affect the software quality.
Managers that failed to prioritize the daily/weekly/Etc. Tasks.
Personals involved in the process need a longer time than expected to learn unfamiliar environments, technology, etc.
Schedules that build based on resources that are not available.
Schedules that are built on “Best case.”
Specific Project aspects that failed to be concluded in the project timelines.
Teams are behind schedule and hope to catch it without reporting on time.
Testing and development activities were dependent on external resources.
The analysis that is done to create the timelines is poorly documented.
The resources involved in the project are not familiar with the project timelines.
Tight timelines are affecting resource productivity.
Timelines Estimations that are delivered without reliable information.
Unexpected tasks were raised during the project.
Team related Risks
Lack of positive and negative feedback.
Problematic team members are failed to be excluded from the project.
The team is built with an unclear hierarchy.
Team members are failed to work together as one unit.
Team members that are not experienced enough.
Team members that are not qualified enough to handle the project complexity.
Team members that failed to understand the company business case.
Team members failed to understand the user “use” cases while designing and executing their tests.
Team members that failed to understand the user expectations.
Team members that failed to understand the user story.
Team members that failed to understand their responsibilities.
Team members that failed to understand their role in the team.
Team members that ignored or failed to understand the design documentation.
Team members ignore the project process.
Team members are resistant to work based on the requirements.
Team members work more hours than they should because other team members fail to perform their job.
Team members with a Lack of commitment.
Team members with a Lack of motivation.
Team members with Low team spirit affect team performance.
Team members with a negative attitude towards the project goals.
The team failed to contain a specialist to support the technical difficulties during the project.
The team is built based on unqualified persons for the job.
The team has insufficient resources to handle the project tasks within the current timelines.
Environmental related Risks
Architectures designed with a lack of flexibility will be needed for different SDLC levels.
Designed architectures that are impossible to implement during the project timelines/costs.
Eng team members are not familiar with the tools used in the project.
Development and Testing Environments designed for the project but not relevant to the actual needs.
QA\Dev teams that don’t have appropriate hardware/Tools Etc., to accomplish the development and testing requirements.
Budget related Risks
Additional expansions due to new requirements/changed requirements.
Costs related to meeting the release deadlines.
Failure to forecast the cost estimations.
Improper estimations of the needed budget.
Project delays may consume more money than initially expected.
The costs of External service providers.
The costs of internal employees.
The costs of the software involved in the Management/reporting/ development/testing process.
Unexpected Budget cuts.
Planning and design-related risks
Different developing teams start their developments individually (each team is responsible for a single component) without the essential thinking of the overall developing architecture (the classic example is a failure to integrate those individuals).
They are choosing the first available solution without considering if other solutions have better met the project goals.
Failures are related to corrupted process implementation.
Lack of project planning causes the development and testing of gaps/duplications.
Lack to design an appropriate methodology to handle the project's complexity.
Planning is considered the project owner's responsibility, although it should be a team activity.
Planning that ignoring critical project parts.
Planning that made by people that don’t have the experience.
Poor project design affects the entire project (Timelines, costs, etc.).
Poor project design affects the software's technical aspects (Developing, Testing, and maintenance).
Teams that move into the next project phase without completing the previous stage.
Unclear responsibilities for the resources involved in the project.
Underutilized resources affect specific areas in the software.
Resource allocation and hiring-related Risks
Contactors/Permanent workers leave the project in the middle.
Failure to allocate the best available people for the project.
Failure to hire the correct propels.
The hiring of new resources is taken longer than expected.
Insufficient resources to accomplish the project timelines.
People that got assignments but were not capable of handling them.
Persons that have specific skills cannot be found and recruited in time.
Resources that are not tracked properly.
Resources that participate in multiple projects.
Resources shared between multiple projects.
The company's best workers are not available for the project.
Underutilization of the resources involved in the process.
A customer that changed the requirements all the time.
A customer that failed to deliver a detailed requirement.
A customer failed to understand that deadlines are dynamic and may be changed during the SDLC process.
A customer that failed to understand the complexity of the project.
A customer that finds bugs
A customer that has ambiguous requirements.
A customer that has unrealistic expectations.
A customer uses the software in a different way than expected.
A customer that we know that we had prior problems on other projects.
Customers that interrupt the SDLC process.
Customers will not buy the software, although the software is delivered in time and based on the asked requirements.
Promises made to customers that the software will eliminate their problems without actual proof.
The customer declines the software due to low quality.
Requirements related Risks
Ambiguous and insufficient requirements.
Essential requirements are poorly documented.
Requirements that demand new methods in the Dev/testing process.
Requirements that demand new testing methodologies.
Requirements that demand new testing types.
Requirements that don’t review by the project resources may lead to different expectations and wrong design.
Technical and technology-related Risks
3rd party applications that failed to provide the expected solution.
3rd party applications that are used without an expert can answer the open questions.
Poorly chosen auto tools that failed to support the project's needs.
Components that build by external vendors.
Components that are built with unreliable technology.
Components that are built with unstable technology.
Customer requirements that demand new technology development.
Customer requirements demand older code modification that is involved in the current SDLC process.
A Development that is based on a new technology that is unfamiliar to engineering.
Insufficient methods and tools for software analysis.
Is there any customer-specific hardware/software that needs special development?
Lack of understanding of the chosen technology.
Lack of understanding in the coding language that needs to be used in the coding stage.
Lack of understanding of the testing tools used in the testing process.
Multiple technologies need to be combined to handle customer expectations.
New technologies used in the current project.
Software that poorly documented.
Technology that used and hard to maintain.
The software should support new operating systems that have never been supported before.
What are the testing tools (if any) used in the testing process?
Daily activities related to Risks
Activities that were abandoned from the project scope.
Conflicts between team members.
Failure to create a valid mechanism that can track and implement the customer's newly added requirements (failure to establish such a mechanism will lead to failure in handling the requirements that leads to the growth of the project scope).
Failure to prioritize the project activities.
Lack of formal technical reviews (Code design).
Lack of formal technical reviews (Project requirements and specifications).
Lack of formal technical reviews (Testing process).
Management and project owners disregard important meetings.
Missing or poor documentation that leads to a poor description of the project requirements.
Multiple “Change-Requests” that documented poorly and against the original requirements.
Project changes that failed to be addressed to the project resources.
Stakeholders and management conflicts may cause project distractions.
The amount of documented reports takes too much time.
Too much formality results in slower progress.
Under/overhead communication between the project resources.
Project Management related Risks
Management and project owners disregard the project's daily status.
Management and project owners that disregard the project process.
Management decisions that reduce the employee’s commitment.
Management decisions that reduce the employee’s motivation.
Management politics that cause any interruptions.
Management that doesn’t believe in the project.
Management that failed to handle resources that perform below expectations.
Management that failed to have good relationships.
Management that failed to say “No” when they know that they cannot deliver the expected quality during the specified timelines.
Management that failed to understand the project's complexity.
Management with a lack of confidence.
Managers that deliver poor project planning.
Managers that don’t have enough experience to lead large-scale projects.
Managers that failed to create an efficient team structure.
Managers that failed to handle the project pressure.
Managers that failed to make an appropriate “Risk” analysis.
Managers that failed to manage the golden criteria(Timelines, Quality, and Costs)
Managers that failed to prioritize the employees tasks.
Managers that failed to provide new timelines when needed.
Managers that failed to think ahead about potential problems.
Managers that work based on assumptions and not on the true facts.
Managers that failed to provide clear and solid milestones.
Organizational management changes during the project.
An owner that uses an intensive “Micro-Management” approach that affects the development and testing performance.
Owners that failed to create an appropriate training program.