Abstract
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.
The original version of the book was revised: The copyright line was incorrect. The Erratum to the book is available at DOI: 10.1007/978-3-540-92698-6_37
Chapter PDF
Similar content being viewed by others
Keywords
References
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)
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)
Beyer, H., Holtzblatt, K.: Contextual Design: Defining Customer-Centered Systems. Morgan Kaufmann, San Francisco (1998)
Boehm, B.W.: Software risk management: principles and practices. IEEE Software 8(1), 32–41 (1991)
Brooks, F.P.: The Mythical Man-Month: Essays on Software Engineering, Anniversary edn. Addison-Wesley, Reading (1995)
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)
Brown, J.S., Duguid, P.: The social life of documents. First Monday 1, 1 (1996), http://firstmonday.org/issues/issue1/documents/index.html
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)
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)
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)
Cusumano, M.A., Selby, R.W.: How Microsoft builds software. Communications of the ACM 40(6), 53–61 (1997)
Danish Board of Technology: Erfaringer fra statslige IT-projekter – hvordan gør man det bedre? Report No. 10, Copenhagen, DK (2001)
DeMarco, T.: Controlling Software Projects: Management, Measurement and Estimation. Yourdon Press, Englewood Cliffs (1982)
Eason, K.: Information Technology and Organisational Change. Taylor & Francis, London (1988)
Egan, D.E.: Individual differences in human-computer interaction. In: Helander, M. (ed.) Handbook of Human-Computer Interaction, pp. 543–568. Elsevier, Amsterdam (1988)
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)
Fayad, M.E., Laitinen, M., Ward, R.P.: Software engineering in the small. Communications of the ACM 43(3), 115–118 (2000)
Gould, J.D., Lewis, C.: Designing for usability: key principles and what designers think. Communications of the ACM 28(1), 300–311 (1985)
Greenbaum, J., Kyng, M. (eds.): Design at Work: Cooperative Design of Computer Systems. Erlbaum, Hillsdale (1991)
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)
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)
Hertzum, M.: Making use of scenarios: a field study of conceptual design. International Journal of Human-Computer Studies 58(2), 215–239 (2003)
Hertzum, M.: Small-scale classification schemes: a field study of requirements engineering. Computer Supported Cooperative Work 13(1), 35–61 (2004)
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)
Humphrey, W.S.: Why don’t they practice what we preach? Annals of Software Engineering 6, 201–222 (1998)
Humphrey, W.S.: Three process perspectives: organizations, teams, and people. Annals of Software Engineering 14, 39–72 (2002)
Kensing, F., Munk-Madsen, A.: PD: structure in the toolbox. Communications of the ACM 36(6), 78–85 (1993)
Landauer, T.K.: The Trouble with Computers: Usefulness, Usability and Productivity. MIT Press, Cambridge (1995)
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)
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)
Nielsen, J.: Usability Engineering. Academic Press, San Diego (1993)
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)
Perry, D.E., Staudenmayer, N.A., Votta, L.G.: People, organizations, and process improvement. IEEE Software 11(4), 36–45 (1994)
Potts, C., Catledge, L.: Collaborative conceptual design: a large software project case study. Computer Supported Cooperative Work 5(4), 415–445 (1996)
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)
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)
von Zedtwitz, M.: Organizational learning through post-project reviews in R&D. R&D Management 32(3), 255–268 (2002)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Hertzum, M. (2008). On the Process of Software Design: Sources of Complexity and Reasons for Muddling through. In: Gulliksen, J., Harning, M.B., Palanque, P., van der Veer, G.C., Wesson, J. (eds) Engineering Interactive Systems. EHCI 2007. Lecture Notes in Computer Science, vol 4940. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-92698-6_29
Download citation
DOI: https://doi.org/10.1007/978-3-540-92698-6_29
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-92697-9
Online ISBN: 978-3-540-92698-6
eBook Packages: Computer ScienceComputer Science (R0)