We changed our name from IT Central Station: Here's why

What are some common causes for software failure?

What can be done to reduce the chances of software failing?

ITCS user
56 Answers

author avatar
Top 5LeaderboardReal User

Common causes for software failure are:

  • 1. Poor requirements definition

  • 2. Poor programming skills in the given environment

  • 3. No interest in or knowledge of the wider software environment causing problems in the integration

  • 4. Not enough resources or time for development resulting in poor software quality

  • 5. Tests do not cover changes in software

What can be done to reduce the chances of software failing?

  • Ad 1.: Define acceptance criteria together with the requirements

    and use these within test cases

  • Ad 1. & 5.: Write use cases with the requirements definition

    as the basis for test case creations

  • Ad 1.: Write down together with business users a risk-weighted (frequency of use x potential damage) process landscape

    and link new requirements to this process and its risk.

    Preferable recheck/rework the risk weighting for the individual requirements.

    Use this for test planning resp. prioritizing in test case creation and execution as well then in test reporting.

  • Ad 2. & 3.: Proper team management and specific training programs incl. learning from experienced colleagues in the given environment

  • Ad 4.: Proper project and/or backlog management

  • Ad 5.: Analyze what functions are used in production, what is changed with the developments, and what are covered with test runs.

    Cover identified gaps between developments and test coverage with additional test cases.

author avatar
ExpertTop 5Consultant

This is a good question. 

Ideally, if you can find a person that is very well experienced in the Industry/product domain and is experienced automating it yields better results. For example, a tester who has a lot of experience with SAP will be much more successful testing SAP than someone who is an excellent/experienced tester without much SAP experience.

author avatar
Top 5Real User

There are a variety of causes for software failures but the most common are: 

  • Lack of user participation

  • Changing requirements

  • Unrealistic or unarticulated project goals

  • Inaccurate estimates of needed resources

  • Badly defined system requirements

  • Poor reporting of the project’s status

  • Lack of resources

  • Unmanaged risks

  • Poor communication among customers, developers, and users

  • Use of immature technology

  • Inability to handle the project’s complexity

  • Sloppy development practices

  • Poor Project Management

  • Stakeholder politics

  • Lack of Stakeholder involvement

  • Commercial pressures

author avatar
Top 5LeaderboardReal User

The other posts covered a number of very relevant topics. I would like to focus on some testing issues:

1 - Speed ​​of test evolution in relation to software delivery can be supplied with test automation.

2 - Automating tests without a clear definition of coverage often generate skewed tests based on masses of test data that do not cover 100% of the possible business flows.

3 - Competition or unavailability of computing resources and environments.

4 - Lack of an understanding of how to implement CI/CD, with QA because of the first 3 items I mentioned.

What we have been doing is investing time and money in solutions that speed up the process of understanding and connect the needs to availability in an automated way based on Service Virtualization, creation of Hitters and Data Injectors and Automated Generation of Data for Tests.

This way you can isolate internal and external dependencies, provide the data to run a pipeline in an automated way and collect results in a detailed way.

There are solutions on the market such as Curiosity Software where all the criteria and conditions to maintain the quality of the Software are integrated. 

There is a company called Better Now (from Brazil) that has a solution based on Data Life Cycle that maintains the traceability and monitoring of application behavior in the correct distribution of data in an end-to-end model, capturing problems in real-time and the virtualization of the services collaborates quickly and efficiently with concurrency issues and API's availability. 

A good suggestion is Micro Focus, ParaSoft (among other market solutions).

author avatar
Top 20Reseller

The software development process is usually affected by many risk factors that may cause the loss of control and failure, thus which need to be identified and mitigated by project managers. 

Software development companies are currently improving their process by adopting internationally accepted practices, with the aim of avoiding risks and demonstrating the quality of their work. 

This paper aims to develop a method to identify which risk factors are more influential in determining project outcome. This method must also propose a cost-effective investment of project resources to improve the probability of project success. To achieve these aims, we use the probability of success relative to cost to calculate the efficiency of the probable project outcome. The definition of efficiency used in this paper was proposed by researchers in the field of education. 

We then use this efficiency as the fitness function in an optimization technique based on genetic algorithms. This method maximizes the success probability output of a prediction model relative to cost. The optimization method was tested with several software risk prediction models that have been developed based on the literature and using data from a survey that collected information from inhouse and outsourced software development projects in the Chilean software industry. These models predict the probability of success of a project based on the activities undertaken by the project manager and development team. 

The results show that the proposed method is very useful to identify those activities needing greater allocation of resources, and which of these will have a higher impact on the projects success probability. Therefore using the measure of efficiency has allowed a modular approach to identify those activities in software development on which to focus the project’s limited resources to improve its probability of success.

author avatarEvgeny Belenky
Community Manager

@Mangesh pangrekar can you please clarify what paper you're refering to? The context isn't very clear... Thanks.

Find out what your peers are saying about Tricentis, Micro Focus, SeleniumHQ and others in Functional Testing Tools. Updated: January 2022.
563,780 professionals have used our research since 2012.