Abstract
Shared understanding is essential for efficient software engineering when the risk of unsatisfactory out-come and rework of project results shall be low. Today, however, shared understanding is used mostly in an unreflected, ad-hoc way. This affects the quality of the engineered software solutions and generates re-work once the quality problems are discovered. In this article, we investigate the role, value, and usage of shared understanding in software engineering. We contribute a reflected analysis of the problem, in particular of how to rely on shared understanding that is implicit, rather than explicit. After an overview of the state of the art we discuss forms and value of shared understanding in software engineering, survey enablers and obstacles, compile existing practices for dealing with shared understanding, and present a roadmap for improving knowledge and practice in this area.
Similar content being viewed by others
Notes
In the normal case, explicit specifications are captured in writing. Principally, however, explicit verbal communication remembered by all team members is also a form of explicit shared understanding, albeit a rather volatile one.
The dialogues of Plato: translated into English with analyses and introductions by Benjamin Jowett, vol. 4, 3rd edn, Oxford University Press, 1892, p 209. Retrieved 2013-07-27 at http://oll.libertyfund.org/?option=com_staticxt&staticfile=show.php%3Ftitle=768&Itemid=27#a_pdf.
References
Ambler S (2012) Why agile software development techniques work: improved feedback. http://www.ambysoft.com/essays/whyAgileWorksFeedback.html. Last visited 18 May 2014
Alexander I (1998) Engineering as a co-operative inquiry: a framework. Requir Eng 3(2):130–137
Aranda G, Vizcaíno A, Piattini M (2010) A framework to improve communication during the requirements elicitation process in GSD projects. Requir Eng 15(4):397–417
Arikoglu ES (2011) Impact des approches “scénario” et “persona” sur l’élicitation des exigences : une étude expérimentale [Impact of scenarios and personas on requirements elicitation: an experimental study (in English with title and extended abstract in French)]. PhD thesis, Université de Grenoble, France
Beck K (2004) Extreme programming explained: embrace change, 2nd edn. Addison-Wesley, Boston
Berander P, Andrews A (2005) Requirements prioritization. In: Aurum A, Wohlin C (eds) Engineering and managing software requirements. Springer, Berlin, pp 69–94
Berry DM (2002) Formal methods: the very idea. Some thoughts about why they work when they work. Sci Comput Progr 42(1):11–27
Bittner EAC, Leimeister JM (2013) Why shared understanding matters - engineering a collaboration process for shared understanding to improve collaboration effectiveness in heterogeneous teams. In: Proceedings Hawaii international conference on system sciences, pp 106–114
Bjørnson FO, Dingsøyr T (2008) Knowledge management in software engineering: a systematic review of studied concepts, findings and research methods used. Inf Softw Technol 50(11):1055–1068
Cannon-Bowers JA, Salas E (2001) Reflections on shared cognition. J Organ Behav 22(2):195–202
Clark HH (1996) Using language. Cambridge University Press, Cambridge
Clarke EM, Grumberg O, Peled D (1999) Model checking. MIT Press, Cambridge
Corvera Charaf M, Rosenkranz C, Holten R (2013) The emergence of shared language—applying functional pragmatics to study the requirements development process. Info Systems J 23(2):115–135
Couglan J, Macredie RD (2002) Effective communication in requirements elicitation: a comparison of methodologies. Requir Eng 7(2):47–60
Cramton C (2001) The mutual knowledge problem and its consequences for dispersed collaboration. Organ Sci 12(3):346–371
Damian D, Marczak S, Kwan I (2007) Collaboration patterns and the impact of distance on awareness in requirements-centered social networks. In: Proceedings 15th IEEE international requirements engineering conference (RE’07), pp 59–68
Darch P, Carusi A, Jirotka M (2009) Shared understanding of end-users’ requirements in e-Science projects. In: Proceedings 5th IEEE international conference on e-Science workshops, pp 125–128
Darch P, Carusi A, Lloyd S, Jirotka M, de la Flor G, Schroeder R, Meyer E (2010) Shared understandings in e-science projects. Oxford e-Research Centre, University of Oxford, UK, Technical Report
Dillenbourg P (ed) (1999) Collaborative-learning: cognitive and computational approaches. Elsevier, Oxford
Edmondson A, Nembhard I (2009) Product development and learning in project teams: the challenges are the benefits. J Prod Innov Manag 26(2):123–138
Fricker S, Glinz M (2010), Comparison of requirements hand-off, analysis, and negotiation: case study. In: Proceedings 18th IEEE international requirements engineering conference (RE’10), pp 167–176
Fricker S, Gorschek T, Byman C, Schmidle A (2010) Handshaking with implementation proposals: negotiating requirements understanding. IEEE Softw 27(2):72–80
Gause DW, Weinberg GM (1989) Exploring requirements: quality before design. Dorset House, New York
Gemino A, Wand Y (2005) Complexity and clarity in conceptual modeling: comparison of mandatory and optional properties. Data & Knowledge Engineering 55(3):301–326
Gervasi V, Gacitua R, Rouncefield M, Sawyer P, Kof L, Ma L, Piwek P, de Roeck A, Willis A, Yang H, Nuseibeh B (2013) Unpacking tacit knowledge for requirements engineering. In: Maalej W, Thurimella AK (eds) Managing requirements knowledge. Springer, Berlin, pp 23–47
Gilb T, Graham D (1993) Software inspection. Pearson Education, Harlow
Glinz M (2008) A risk-based, value-oriented approach to quality requirements. IEEE Softw 25(2):34–41
Glinz M (2013) A glossary of requirements engineering terminology. Version 1.5. Available at http://www.ireb.org. Link “CPRE Glossary”; last visited 18 May 2014
Glinz M, Fricker S (2013) On shared understanding in software engineering. In: Proceedings GI conference software engineering 2013, Lecture notes in informatics, vol P-213, pp 19–35
Glinz M, Wieringa R (2007) Stakeholders in requirements engineering. IEEE Softw 24(2):18–20
Gottesdiener E (2002) Requirements by collaboration: workshops for defining needs. Addison-Wesley, Boston
Grünbacher P, Seyff N (2005) Requirements negotiation. In: Aurum A, Wohlin C (eds) Engineering and managing software requirements. Springer, Berlin, pp 143–162
Grundy T (1998) Strategy implementation and project management. Int J Project Manag 16(1):43–50
Guarino N, Oberle D, Staab S (2009) What is an ontology? In: Staab S, Studer R (eds) Handbook on ontologies, international handbooks on information systems, 2nd edn. Springer, Berlin, pp 1–17
Hadar I, Soffer P, Kenzi K (2014) The role of domain knowledge in requirements elicitation via interviews: an exploratory study. Requir Eng 19(2):143–159
Hill A, Song S, Dong A, Agogino A (2001) Identifying shared understanding in design using document analysis. In: Proceedings 13th international conference on design theory and methodology, ASME design engineering technical conferences, Pittsburgh, pp 1–7
Hoffmann A, Bittner EAC, Leimeister JM, (2013) The emergence of mutual and shared understanding in the system development process. In: Proceedings REFSQ 2013, LNCS, vol 7830. Springer, Berlin, pp 174–189
Hsieh Y (2006) Culture and shared understanding in distributed requirements engineering. In: Proceedings IEEE international conference on global software engineering (ICGSE 2006), pp 101–105
Larman C, Basili V (2003) Iterative and incremental development: a brief history. IEEE Comput 36(6):47–56
Lauesen S (2002) Software requirements: styles and techniques. Addison-Wesley Professional, London
Maalej W, Thurimella AK (eds) (2013) Managing requirements knowledge. Springer, Berlin
Macaulay L (1995) Cooperation in understanding user needs and requirements. Comput Integr Manuf Syst 8(2):155–165
McKay J (1998) Using cognitive mapping to achieve shared understanding in information requirements determination. Aust Comput J 30(4):139–145
Olson GM, Olson JS (2000) Distance matters. Hum-Comput Interact 15(2):139–178
Piirainen K, Kolfschoten G, Lukosch S (2009) Unraveling challenges in collaborative design: a literature study. In: Carriço L, Baloian N, Fonseca B (eds) Groupware: design, implementation, and use, proceedings 15th international workshop CRIWG 2009, LNCS, vol 5784. Springer, Berlin, pp 247–261
Puntambekar S (2006) Analyzing collaborative interactions: divergence, shared understanding and construction of knowledge. Comput Educ 47(3):332–351
Schmid K (2002) A comprehensive product line scoping approach and its validation. In: Proceedings 24th international conference on software engineering (ICSE 2002), pp 593–603
Schwaber K (2004) Agile project management with Scrum. Microsoft Press, Redmond, WA
Seybold C, Glinz M, Meier S (2005) Simulation-based validation and defect localization for evolving, semi-formal requirements models, In: Proceedings 12th Asia-Pacific software engineering conference (APSEC 2005), pp 408–417
Sommerville I, Sawyer P (1997) Requirements Engineering: a good practice guide. Wiley, Chichester
Stapel K (2012) Informationsflusstheorie der Softwareentwicklung [A theory of information flow in software development (in German)]. PhD Thesis, University of Hannover, Germany
Strauss A, Corbin J (1998) Basics of qualitative research: techniques and procedures for developing grounded theory. Sage Publications, Thousand Oaks, CA
Sutcliffe A (2010) Collaborative requirements engineering: bridging the gulfs between worlds. In: Nurcan S, Salinesi C, Souveyet C, Ralyté J (eds) Intentional perspectives on information systems engineering. Springer, Berlin, pp 355–376
Sutcliffe A, Sawyer P (2013), Requirements elicitation: towards the unknown unknowns. In: Proceedings 21st IEEE international requirements engineering conference (RE’13), pp 92–104
Tan M (1994) Establishing mutual understanding in systems design: an empirical study. J Manag Inf Syst 10(4):159–182
Van den Bossche P, Gijselaers W, Segers M, Woltjer G, Kirschner P (2011) Team learning: building shared mental models. Instr Sci 39(3):283–301
Vincenti WG (1993) What engineers know and how they know it: analytical studies from aeronautical history. John Hopkins University Press, paperback edition, Baltimore
Whitehead J (2007) Collaboration in software engineering: a roadmap. In FoSE 2007: Future of software engineering, workshop at ICSE 2007, Minneapolis, pp 214–225
Wood J, Silver D (1995) Joint application development. Wiley, New York
Zowghi D, Coulin C (2005) Requirements elicitation: a survey of techniques, approaches, and tools. In: Aurum A, Wohlin C (eds) Engineering and managing software requirements. Springer, Berlin, pp 19–46
Acknowledgments
We thank the members of the Requirements Engineering Research Group at the University of Zurich for valuable comments on earlier versions of this paper.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Glinz, M., Fricker, S.A. On shared understanding in software engineering: an essay. Comput Sci Res Dev 30, 363–376 (2015). https://doi.org/10.1007/s00450-014-0256-x
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00450-014-0256-x