In any complex engineering project, there is risk to project success and delivery at every stage from design, to development, to maintenance and beyond. Risk factors in systems increase with greater complexity and complexity itself is driven by the density and interaction of and between component parts whether that be when viewing the overall system, sub systems or sub sub systems etc.
Due to the fact that software architecture involves potentially hundreds of thousands, if not millions of lines of code, the risk factor is extremely high due to the shear number of component parts (individual lines of code) required to perform multitudes of required actions. In fact, in terms of risk calculation of project success, software engineering is amongst the highest risk engineering fields in the world; up there with nuclear engineering and aviation and especially if the software is for safety critical functionality. Risk in software development certainly cannot be taken lightly.