Commercial software components can dramatically reduce the cost and time required to develop complex business-critical systems. However, integrating them offers stiff challenges that are not well understood by most software practitioners, and there have been many spectacular failures. Now, a team of authors from the Software Engineering Institute draws upon the lessons presented by both the failures and the successes, offering a start-to-finish methodology for integrating commercial components successfully. The authors examine failed integration projects, identifying key lessons and early warning signs, including the failure to account for loss of control over engineering design and production. Drawing upon both successes and failures, they present proven solutions for establishing requirements, evaluating components, creating flexible system designs that incorporate commercial components; and managing multiple concurrent design options linked to external market events and feasibility proofs. They also show how to build "just-in-time" competency with commercial components and integration.
I read this a long time ago, maybe in the mid-2000s. It seemed pretty academic at the time, but I keep remembering it, because it alerted me to a technology trend that would upend project management and IT operations. They said 3rd party components, and their stream of updates and versions, would overpower the linear SDLC with a "process singularity," in which projects and running applications would be in all phases of the lifecycle, all the time. We would be re-evaluating requirements, re-designing portions of the system, writing or modifying code, and re-testing, all the time, whether we wanted to or not. They didn't see the details of the How, but they sure saw the What and the Why of project management approaches like Agile and operations management approaches like DevOps. I've kept it through a couple of book purges.