Program understanding: challenge for the 1990's
IBM Systems Journal
Modularity and Innovation in Complex Systems
Management Science
The Dual Role of Modularity: Innovation and Imitation
Management Science
Software Architecture Knowledge Management: Theory and Practice
Software Architecture Knowledge Management: Theory and Practice
Collaboration Tools for Global Software Engineering
IEEE Software
Hi-index | 0.00 |
The concept of competitive software development is founded on the observation that the system's owner and development companies have not only common interests, but also conflicting interests as well. This is particularly true in the case of large-scale software systems. Competitive development is an answer to the syndrome of large-scale software systems evolution and maintenance being monopolised by the companies that originally developed these systems. Competitive development is founded on the idea that the entire system is divided into smaller units, which are independently developed by different companies, i.e. no co-operation is assumed between various development organisations and there is no communication between them. However, strong and efficient co-ordination has to be performed on behalf of the system's owner in order to make such an approach successful. These assumptions are radically different to the typical collaboration assumption for agile development. This prevents one software company from making a system owner entirely dependent on its services. We show that such demonopolisation can save large sums of money, making the prices of software development considerably lower than they would be in the case of a single software development company. Our experiments show that, if efficiently co-ordinated, such a distributed, competitive development requires a similar effort to traditional approaches.