Studio:What software development challenges result from increased complexity?

From STRIDE Wiki
(Redirected from What software development challenges result from increased complexity?)
Jump to navigation Jump to search

In working with large embedded software engineering organizations, S2 has observed that verifying and integrating embedded software components becomes a serious challenge as software complexity increases. As more features and functionality are designed into a product, more software components need to be integrated and verified. Common software strategies, such as distributed development, outsourcing, leveraging expert contractors, and third-party software, further contribute to complexity. The difficulty of integrating so many different software components, developed by so many different people, across various geographies and time zones, have a severe impact on the development process.

Ad hoc or manual approaches to software testing have become tedious and ineffective. Likewise, traditional test harness-based approaches are too difficult and limiting to apply across-the-board to embedded development. As a result, the Product Test or System Test organization is often the first to extensively exercise and vet the software as an integrated whole, and thus they detect a disproportionately high volume of defects. This wreaks havoc on the development process, leaving software engineers to face the daunting challenge of fixing an overwhelming number of defects to meet their deadline. This scenario typically results in:

  • Extra test cycles and resources, adding unplanned development time and costs
  • Missing or dropped features, as a tradeoff to meeting tight deadlines
  • Compromised quality, hurting reputation and revenues
  • Delayed product releases, resulting in competitive losses