Research approaches in Software Engineering: Integrating the ‘Two Cultures’

Posted on April 11, 2011


Author:  Sanjay Goel,


Acceptable data sources and research methods characterize different disciplines. The differences in the two cultures of natural science and humanistic research were highlighted by Snow in 1959 [1].  In an earlier article [2], I had  summarised Biglan’s famous classification of disciplines. 

Qualitative data and methods are not used in science and engineering disciplines. They confine themselves to analytical and quantitative approaches. Qualitative approaches are used in social sciences. However, software engineering practitioners as well as researchers use analytical, quantitative, and also qualitative approaches, and give the opportunity to integrate these two cultures. 

Software engineering in many ways is all about people: users, customers, developers, and managers [3]. Unlike many other disciplines of engineering, for their regular day-to-day practice, often software engineers have to collect and analyze qualitative data.  They collect such data through brainstorming, interviews, conceptual modeling, and observation for activities like requirement engineering, project planning, use case and task analysis, etc. Usage logs, documentation, static and dynamic analysis, bug tracks, etc. are used for activities of program comprehension, testing, reverse engineering, etc., [4].

Further, researchers in software engineering often investigate extremely complex processes in software developments involving a large number of professionals who use highly complex skills.  The questions related to cognitive, behavioral, and social aspects of developers and other stakeholders, are also of immense importance and interest to software engineering researchers. The analytical and quantitative research paradigm, which is otherwise well accepted in other disciplines of engineering, is not sufficient for investigating real-life issues involving humans as well as their interactions within themselves and also with technology [5].

Many a times, experimentation is not even possible, and qualitative data is the main, and sometimes, the only source of information.  Hence, the researchers in many computing areas, e.g., information systems, software engineering, human computer interaction, and entertainment computing are increasingly relying upon the empirical and qualitative research methods like case studies, action research, survey, etc. These research methods are already very popular in fields like business, social work, psychology, sociology, political sciences, education, information systems, urban planning, architecture, and so on. Like information systems, urban planning, and architecture researchers, the software engineering research community mostly uses these methods with a pragmatic and result-oriented view, rather than from a philosophical stand. Consequently, an understanding of these methods is becoming increasingly important for software engineering researchers, as well as practitioners.

 A heavy dependence on qualitative data and increasing currency of qualitative methods among software engineering practitioners as well as researchers is a key distinction that distinguishes the field from other disciplines of engineering.  This brings it relatively closer to disciplines like architecture and information systems. 

In this backdrop, we can ask the following key questions:

1.  Does the commonly predominent hard science-engineering like approach in education and curriculum sufficiently prepare future software engineering reseaerchers?  

2.   How to educate  future software engineering researchers  so that they have the ability and to wisdom to integrate ‘the two cultures’  through UG and PG education [7]? 


[1].  Charles P. Snow, The Two Cultures, Cambridge University Press, UK, 1998.


[3].   James Miller, Triangulation as a basis got knowledge discovery in software engineering, Journal of Empirical Software Engineering, Springer,  pp 223-228, February 2008.

[4].   Timothy C. Lethbridge, Susan Elliott Sim and Janice Singer, Studying Software Engineers: Data Collection Techniques for Software Field Studies, Empirical Software Engineering, Volume 10, Number 3, Springer Netherlands, pp 311-341, July, 2005.

[5].  Per Runeson and Martin Höst, Guidelines for conducting and reporting case study research in software engineering, Journal of  Empirical Software EngineeringSpringer Netherlands, pp 131-164, April 2009. 


[7].  Do we not need to urgently make the base broader and interdisciplinary? – A Concept Note for starting 4 year BS (Interdisciplinary Informatics) in India

Posted in: Uncategorized