Development Methodology
The following Great Innovative Idea is from Dr. Marian Petre, Professor of Computer Science at Open University, UK and Dr. Daniela Damian, Professor of Software Engineering at the University of Victoria, Canada.
Petre and Damian received First Place for their paper Methodology and Culture: Drivers of Mediocrity in Software Engineering? at the Computing Community Consortium (CCC) sponsored Blue Sky Ideas Conference Track series at the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE), November 16-22, 2014 in Hong Kong.
The Innovative Idea
Methodology is a tool, not a panacea. Methodology alone is neither necessary nor sufficient to guarantee software quality. Indeed, rigid adherence to methodology may suppress creativity, and effective development practice may challenge methodological orthodoxy. In software engineering, we tend to dismiss anything short of full conformity to a methodology as ‘mediocre’. However, this lens for ‘mediocrity’ is flawed. On the whole, developers are competent and reflective – albeit often squeezed by market pressures, budgets, and deadlines. What is dismissed as ‘mediocrity’ is often highly adapted practice that responds to the real contexts in which software is developed. Creative adaptations of methodology may bridge cultures and approaches, without disrupting existing good practices. Adaptation is adoption. Situated adaptations in context promote developer excellence, rather than rigid conformity.
Impact
Context matters. If we want to support quality software development – and quality software developers – we need to understand how software development actually works. We need to understand much more fully the interaction between methodology and culture – in order to understand how the two co-evolve and how they may contribute together to developer excellence and software quality. Organizations need a ‘culture of quality’ that attends simultaneously to developer quality, organizational culture, and systematic practices. This suggests an adaptive use of methodology to achieve goals – one of which is developing quality software, and one of which is nurturing quality developers.
Other Research
We both conduct empirical studies of professional software development, in order to inform theory, tools, and practice. Marian’s research has focused on expert software developers and high-performing teams, in particular on their design reasoning, dialogues, and use of representations. She recently collaborated with André van der Hoek on an NSF-funded project on software design that culminated in the book ‘Software Designers in Action’ (CRC Press). Daniela’s research investigates developer practice in large, geographically distributed teams, and how such teams overcome significant challenges caused by organizational, temporal and geographical barriers. Recently, as part of the Canadian NECSIS consortium, she has studied coordination tools and practices in agile, open development environments at IBM, and in model-driven development teams at General Motors. NECSIS is an NSERC research network concerned with complex software-intensive systems in automotive engineering.
Researcher’s Background and Links
We both come from hybrid, international backgrounds. Marian’s BA is in Psycholinguistics (US) and her PhD in Computer Science (UK). Daniela’s completed her Computer Science undergraduate education in Romania, and her graduate software engineering work at the University of Calgary. We both complement our own research with mentoring of students and early-career researchers, and we worked together on the EGRET international PhD seminar.
- Dr. Marian Petre’s Website: http://mcs.open.ac.uk/mp8/
- The OU’s Centre for Research in Computing: http://crc.open.ac.uk
- Dr. Daniela Damian’s Website: https://danadamian.wordpress.com/
- Dr. Damian’s Global Software Engineering interAction Lab Website: thesegalgroup.org