Large-scale system development faces various issues and challenges as engineering and management tasks get more difficult at a larger scale. This is a massive subject and has two major problems; firstly, large software projects are universally troubled and secondly, almost every kind of large-scale systems-development projects involve huge amounts of software. This makes it clear that we need to develop a better way create software parts for these large-scale systems, otherwise, all types of large-scale development projects will be troubled. There is an increasing need for large-scale system-development projects and this poses a big challenge for those in development business.
The greatest problem with large-scale systems development is probably the emergent properties of the systems, which indicate those system properties that are not embodied in any of the parts of the system, like system safety, security and performance. Although individual components of a system can work towards safety, security and performance problems, no component independently can make a system safe, secure, and high performing. The emergent properties by nature are dependent on the cooperative behavior of many of a system’s parts. It would not be a problem provided the overall design of the system can precisely but clearly specify the properties needed of the components. But this is rarely possible for large-scale systems. Handling big jobs by breaking them into several smaller jobs can create problems due to inter-dependencies of job’s parts.
With the increase in the scale of systems, the emergent properties become all the more important and two major problems arise. The development process gets less efficient due to the structural complexity of large organizations. Generally, large and complex organizations develop large-scale systems and they divide large projects across multiple units and locations. The large projects are likely to have complex structures as well. Thus the work gets complicated and it takes more time and resources. Secondly, with new set of emergent properties, the design problem cannot be overpowered relying on technology.
With increasingly complex structure, it gets harder for the developers to do productive job. Sometimes, when the organization gets very big and complex, it becomes difficult for the development team to perform in a timely, orderly and productive fashion. Understanding the mechanisms is important in such cases.
I case of scaling up the organization, the responsibilities are subdivided and issues are left to be handled by specialized groups or specialized staffs. A vital aspect of managing large-scale projects is to make sure that decisions are well made; right people should be identified to make the decision, criteria for the decision must be established and goals used to make such decision should be defined and documented. In large-scale projects there are too many technical decisions and management need to ensure that they are made in this way. The proper management of large-scale projects demands that all technical decisions should be made by the technical people after evaluating the available options against the clearly set criteria.