Methods as Theories: Evidence and Arguments for Theorizing on Software Development
Steve Sawyer, Hala Annabi · 2006
In this paper we argue that software development methods represent theories on how best to engage the impressively complex and inherently socio-technical activity of making software. To help illustrate our points we draw on examples of three software methods: the waterfall approach, packaged software development, and free/libre and open source software development, In doing this, we highlight that software development methods reflect—too often implicitly—theories of (1) how people should behave, (2) how groups of people should interact, (3) the tasks that people should do, (4) the order of these tasks, (5) the tools needed to achieve these tasks, (6) the proper outcomes of these tasks, (7) the means to make this all happen, and (8) that these relations among concepts are further set in specific social, cultural, economic, and industrial contexts. We conclude by highlighting three trends in conceptualizing these eight elements. These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.