This section touches on three areas of work that can potentially have a profound impact on the identification and management of dependencies in software development projects.
Software Architectures Suitable for Global Software Development
The socio-technical perspective of dependencies highlights the benefits of identifying relevant dependencies as early as possible in the development cycle, so that the project can institute appropriate coordination capabilities. As software architectures become an integral part of the development process, they represent a key source of technical and organizational information for identifying dependencies. However, software architectures represent a higher level of abstraction that could potentially hinder the identification of relevant technical dependencies and, consequently, important coordination requirements.
The growing usage of standardized design and modeling languages, such as UML, might represent a way of overcoming these challenges by using information extraction and graph-theoretic analytics similar to those used to mine software repositories, as discussed earlier in this chapter. We could then envision a “coordination view” of software architectures that combines the product’s technical dependencies with relationships among the organizational units responsible for carrying out the development work.
A potentially even more promising future direction is to develop a better understanding of how software architects make design ...