On the Process of Software Design: Sources of Complexity and Reasons for Muddling through

  • Morten Hertzum
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4940)


Software design is a complex undertaking. This study delineates and analyses three major constituents of this complexity: the formative element entailed in articulating and reaching closure on a design, the progress imperative entailed in making estimates and tracking status, and the collaboration challenge entailed in learning within and across projects. Empirical data from two small to medium-size projects illustrate how practicing software designers struggle with the complexity induced by these constituents and suggest implications for user-centred design. These implications concern collaborative grounding, long-loop learning, and the need for a more managed design process while acknowledging that methods are not an alternative to the project knowledge created, negotiated, and refined by designers. Specifically, insufficient collaborative grounding will cause project knowledge to gradually disintegrate, but the activities required to avoid this may be costly in terms of scarce resources such as the time of key designers.


User-centred design Design process Software development Software-project complexity Muddling through Collaborative grounding 


  1. 1.
    Allen, T.J.: Distinguishing engineers from scientists. In: Katz, R. (ed.) Managing Professionals in Innovative Organizations: A Collection of Readings, Ballinger, Cambridge, MA, pp. 3–18 (1988)Google Scholar
  2. 2.
    Bansler, J.P., Bødker, K.: A reappraisal of structured analysis: design in an organizational context. ACM Transactions on Information Systems 11(2), 165–193 (1993)CrossRefGoogle Scholar
  3. 3.
    Beyer, H., Holtzblatt, K.: Contextual Design: Defining Customer-Centered Systems. Morgan Kaufmann, San Francisco (1998)Google Scholar
  4. 4.
    Boehm, B.W.: Software risk management: principles and practices. IEEE Software 8(1), 32–41 (1991)CrossRefGoogle Scholar
  5. 5.
    Brooks, F.P.: The Mythical Man-Month: Essays on Software Engineering, Anniversary edn. Addison-Wesley, Reading (1995)Google Scholar
  6. 6.
    Brown, J.S., Duguid, P.: Organizational learning and communities-of-practice: toward a unified view of working, learning, and innovation. Organization Science 2(1), 40–57 (1991)CrossRefGoogle Scholar
  7. 7.
    Brown, J.S., Duguid, P.: The social life of documents. First Monday 1, 1 (1996),
  8. 8.
    Carmel, E., Bird, B.J.: Small is beautiful: a study of packaged software development teams. Journal of High Technology Management Research 8(1), 129–148 (1997)CrossRefGoogle Scholar
  9. 9.
    Carroll, J.M., Kellogg, W.A., Rosson, M.B.: The task-artifact cycle. In: Carroll, J.M. (ed.) Designing Interaction: Psychology at the Human-Computer Interface, pp. 74–102. Cambridge University Press, Cambridge (1991)Google Scholar
  10. 10.
    Curtis, B., Krasner, H., Iscoe, N.: A field study of the software design process for large systems. Communications of the ACM 31(11), 1268–1287 (1988)CrossRefGoogle Scholar
  11. 11.
    Cusumano, M.A., Selby, R.W.: How Microsoft builds software. Communications of the ACM 40(6), 53–61 (1997)CrossRefGoogle Scholar
  12. 12.
    Danish Board of Technology: Erfaringer fra statslige IT-projekter – hvordan gør man det bedre? Report No. 10, Copenhagen, DK (2001)Google Scholar
  13. 13.
    DeMarco, T.: Controlling Software Projects: Management, Measurement and Estimation. Yourdon Press, Englewood Cliffs (1982)Google Scholar
  14. 14.
    Eason, K.: Information Technology and Organisational Change. Taylor & Francis, London (1988)Google Scholar
  15. 15.
    Egan, D.E.: Individual differences in human-computer interaction. In: Helander, M. (ed.) Handbook of Human-Computer Interaction, pp. 543–568. Elsevier, Amsterdam (1988)CrossRefGoogle Scholar
  16. 16.
    Eodice, M.T., Fruchter, R., Leifer, L.J.: Towards a theory of engineering requirements definition. In: Lindemann, B., Meerkamm, V. (eds.) Proceedings of ICED 1999, vol. III, pp. 1541–1546. Technische Universität München, Garching, DE (1999)Google Scholar
  17. 17.
    Fayad, M.E., Laitinen, M., Ward, R.P.: Software engineering in the small. Communications of the ACM 43(3), 115–118 (2000)CrossRefGoogle Scholar
  18. 18.
    Gould, J.D., Lewis, C.: Designing for usability: key principles and what designers think. Communications of the ACM 28(1), 300–311 (1985)CrossRefGoogle Scholar
  19. 19.
    Greenbaum, J., Kyng, M. (eds.): Design at Work: Cooperative Design of Computer Systems. Erlbaum, Hillsdale (1991)Google Scholar
  20. 20.
    Grudin, J.: Evaluating opportunities for design capture. In: Moran, T.P., Carroll, J.M. (eds.) Design Rationale: Concepts, Techniques, and Use, pp. 453–470. Erlbaum, Mahwah (1996)Google Scholar
  21. 21.
    Hayes, W., Over, J.W.: The Personal Software Process (PSP): An Empirical Study of the Impact of PSP on Individual Engineers. Technical Report No. CMU/SEI-97-TR-001. Carnegie Mellon University, Pittsburgh, PA (1997)Google Scholar
  22. 22.
    Hertzum, M.: Making use of scenarios: a field study of conceptual design. International Journal of Human-Computer Studies 58(2), 215–239 (2003)CrossRefGoogle Scholar
  23. 23.
    Hertzum, M.: Small-scale classification schemes: a field study of requirements engineering. Computer Supported Cooperative Work 13(1), 35–61 (2004)CrossRefGoogle Scholar
  24. 24.
    Hinds, P.J., Pfeffer, J.: Why organizations don’t know what they know: cognitive and motivational factors affecting the transfer of expertise. In: Ackerman, M.S., Pipek, V., Wulf, V. (eds.) Sharing Expertise: Beyond Knowledge Management, pp. 3–26. MIT Press, Cambridge (2003)Google Scholar
  25. 25.
    Humphrey, W.S.: Why don’t they practice what we preach? Annals of Software Engineering 6, 201–222 (1998)CrossRefGoogle Scholar
  26. 26.
    Humphrey, W.S.: Three process perspectives: organizations, teams, and people. Annals of Software Engineering 14, 39–72 (2002)CrossRefzbMATHGoogle Scholar
  27. 27.
    Kensing, F., Munk-Madsen, A.: PD: structure in the toolbox. Communications of the ACM 36(6), 78–85 (1993)CrossRefGoogle Scholar
  28. 28.
    Landauer, T.K.: The Trouble with Computers: Usefulness, Usability and Productivity. MIT Press, Cambridge (1995)Google Scholar
  29. 29.
    Mockus, A., Herbsleb, J.D.: Expertise browser: a quantitative approach to identifying expertise. In: Proceedings of ICSE 2002, pp. 503–512. ACM Press, New York (2002)Google Scholar
  30. 30.
    Naur, P.: The place of programming in a world of problems, tools, and people. In: Kalenich, W. (ed.) Proceedings of IFIP Congress 65, Spartan Books, Washington, DC, pp. 195–199 (1965)Google Scholar
  31. 31.
    Nielsen, J.: Usability Engineering. Academic Press, San Diego (1993)zbMATHGoogle Scholar
  32. 32.
    Norman, D.A.: Cognitive engineering. In: Norman, D.A., Draper, S.W. (eds.) User Centered System Design: New Perspectives on Human-Computer Interaction, pp. 31–61. Erlbaum, Hillsdale (1986)Google Scholar
  33. 33.
    Perry, D.E., Staudenmayer, N.A., Votta, L.G.: People, organizations, and process improvement. IEEE Software 11(4), 36–45 (1994)CrossRefGoogle Scholar
  34. 34.
    Potts, C., Catledge, L.: Collaborative conceptual design: a large software project case study. Computer Supported Cooperative Work 5(4), 415–445 (1996)CrossRefGoogle Scholar
  35. 35.
    Schindler, M., Eppler, M.J.: Harvesting project knowledge: a review of project learning methods and success factors. International Journal of Project Management 21(3), 219–228 (2003)CrossRefGoogle Scholar
  36. 36.
    Schmidt, R., Lyytinen, K., Keil, M., Cule, P.: Identifying software project risks: an international Delphi study. Journal of Management Information Systems 17(4), 5–36 (2001)CrossRefGoogle Scholar
  37. 37.
    von Zedtwitz, M.: Organizational learning through post-project reviews in R&D. R&D Management 32(3), 255–268 (2002)CrossRefGoogle Scholar
  38. 38.
    Walz, D.B., Elam, J.J., Curtis, B.: Inside a software design team: knowledge acquisition, sharing, and integration. Communications of the ACM 36(10), 63–77 (1993)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Morten Hertzum
    • 1
  1. 1.Computer ScienceRoskilde UniversityRoskildeDenmark

Personalised recommendations