Dr. Paul Clarke 

 Research Overview

My research is focused in 5 main areas: (1) Software Process Adaptation. (2) Complexity Theory and Software Development Processes. (3) Software Development Process Terminology. (4) Continuous Software Engineering. (5) Human factors in Software Engineering.

 1. Software Process Adaptation

In common with some earlier software development process innovations, my research borrows on concepts from economic theories. Specifically, I'm interested in applying the dynamic capability concept outlined in the Evolutionary theory of the firm1 to the task of software development process definition and evolution. Dynamic capability refers to the ability of an organisation to adapt to changing circumstances, and according to the Evolutionary theory of the firm, organisations that possess greater dynamic capability are more likely to be successful.

Although increased dynamic capability would appear to be beneficial for the ever-changing world of software development, we do not presently have an approach to determining the dynamic capability of a software development company. Specifically, I'm interested in examining the extent to which the software development process is being adapted relative to the changing situational context of an organisation.

In order to make a determination in relation to the extent of change to the situational context of a software development organisation, it is first necessary to identify a reference framework of the situational factors affecting the software development process. Owing to the apparent absence of such a reference framework, it was necessary to systematically develop such a resource from existing related material and personal experience. The resulting reference framework is outlined in Figure 1 below.

   SitFactors400DPI

Figure 1 - Situational Factors Affecting the Software Development Process

The reference framework of the situational factors affecting the software development process that is outlined above enables us to develop a mechanism for determining the extent of situational change in a software development organisation. However, in order to determine the dynamic capability of a software development organisation, it is also necessary to determine the extent of process change that has occurred in the company. The extent of process change could be measured using traditional process measurement tools such as multiple assessments and subsequent finite different analyses. While these traditional approaches are fit-for-purpose, they require a significant time and effort to deploy, and they collect data in relation to process maturity (i.e. they are not designed to directly examine the amount of software process change). Furthermore, these approaches have already met with resistance to deployment in the field of software development, especially in small to medium sized enterprises (SMEs) who report that such approaches are viewed as being infeasible rather than non-beneficial. Therefore, my research has developed a new express approach to determining the extent of software process change.

In order to expressly (i.e. in a single engagement) determine the amount of software process change in a software development setting over a period of time it is necessary to employ a comprehensive reference framework of the component of the software development process. ISO/IEC 12207, the software process reference framework associated with ISO/IEC 15504 (sometimes referred to as SPICE), provides such a consensually-developed and comprehensive reference framework. The contents of IS0/IEC 12207 are summarised in Figure 2 below.

  ISO/IEC 12207

 

Figure 2 - ISO/IEC 12207

The significant details contained within the two reference frameworks identified above are used as the basis for the development of a set of survey instruments that are designed to determine (1) the extent of change to the situational factors affecting the software development process and (2) the extent of change to the software development process itself. Taken together, these two instruments permit the examination of dynamic capability in a software development process with respect to situational change.

The Field Study

In order to examine the role of software process improvement (SPI) and situational change in software developing Small- to Medium-sized Enterprises (SMEs), a field study is presently underway. The field study is deployed over a 16 month period and involves the confidential participation of 15 software d/eveloping SMEs (refer to Figure 3 for more details). Initial analysis of the study data presents a positive association between SPI activity and business success in software developing SMEs (especially when situational change is taken into consideration). These findings are presently under peer review and more detail will be provided here in due course.

FieldStudyOverview

Figure 3 - Overview of Field Study Engagements

When making determinations in relation to business success in the field study, the Holistic Scorecard (HSC) 2 is adopted as the business performance reference framework. The HSC is comprised of six distinct dimensions of business success for software development companies (refer to Figure 4).

HolisticScorecard

Figure 4 - Holistic Scorecard

Within the remit of the field study, other areas of investigation are also actively under consideration. For example, the field study is interested in understanding the links between particular SPI actions (or constellations of actions) and specific situational changes (or groups of changes). Furthermore, the field study will also provide up to date details on what SPI actions software developing SMEs are (and are not) carrying out, as well as details of the type of situational change that these SMEs are experiencing.

 

1 Nelson, R.R. and Winter, S. 1982. An Evolutionary Theory of Economic Change. Cambridge, Massachusetts, USA: The Balknap Press of Harvard University Press.

2 Sureshchandar, G. S. and Leisten, R. 2005. Holistic Scorecard: strategic performance measurement and management in the software industry. Measuring Business Excellence. 9 (2), pp12-29.

 2. Complexity Theory and Software Development Processes.

Work to examine the relationship between situational factors and software development processes suggests that the design and adaptation of processes is similar to behaviour observed in complex adaptive systems. Further information is available at: Related research paper on complexity theory and software development processes.

 3. Software Development Process Terminology.

A great deal of process innovation has been proposed over the decades, up to the present time where we witness an explosion of lean and agile software development methodologies. With the passing of time, new terminology has been introduced, sometimes to refer to new concepts, other times just new terms for pre-existing concepts. Our work in this areas seeks to understand the scale of terminological confusion and to examine its impact. Further information is available at: Related research paper on software development process terminological confusion.

 4. Continuous Software Engineering.

In recent years, tooling has enabled software development to speed up. Tools now exist to allow us to rapidly deploy to target operational environments and to automatically perform a whole host of testing. These tooling advances - when coupled with emerging microservices architectures and container technology - allow for rapid and reliable new feature delivery. We term our research in this space Continuous Software Engineering. Further information is available at: Related research paper on continuous software engineering.

 5. Human Factors in Software Engineering.

Software development generally requires teams of software professionals working together to develop and support a software product. Inevitably therefore, team dynamics and team productivity have a significant influence on the productivity of software development organisations. Further information is available from: Assistant Professor, Dr. Murat Yilmaz.