Using Social Choice Theory to Finalize Architectural Decisions
Unbiased and objective architectural design decisions are crucial for the success of a software development project. Stakeholder inputs play an important role in arriving at such design decisions. However, the stakeholders may act in a biased manner in order to ensure that their requirements and concerns are addressed in a specific way in the software. Most of the existing methods of architectural decision-making do not adequately account for such biased behaviour of stakeholders. We view the software architecture design as a collective decision making (CDM) problem in social choice theory, and introduce the central ideas of mechanism design to our field. Our contributions are twofold: i) Using the impossibility results from social choice theory, we show that a rational stakeholder can game, to her advantage, almost every known method of software architecture decision making. ii) We also show that if the architect is willing to bear the extra cost of giving suitable incentives to stakeholders, then architectural decision making can be protected from strategic (biased) manipulations. For achieving this objective, we introduce the Vickrey-Clarke-Groves (VCG) mechanism from social choice theory to the software architecture domain. We illustrate our contributions by comparing and using the examples drawn from the well-known CBAM method of architectural decision making.
READ FULL TEXT