Software engineering technology innovation – Turning research results into industrial success

https://doi.org/10.1016/j.jss.2008.12.035Get rights and content

Abstract

This paper deals with the innovation of software engineering technologies. These technologies are methods and tools for conducting software development and maintenance. We consider innovation as a process consisting of two phases, being technology creation and technology transfer. In this paper, we focus mainly on the transfer phase.

Technology transfer is of mutual interest to both academia and industry. Transfer is important for academia, because it shows the industrial relevance of their research results to, for example, their sponsoring authorities. Showing the industrial applicability of research results is sometimes referred to as valorization of research. Nowadays, valorization is often required by research funding bodies. The transfer is important for industries, because innovating their development processes and their products is supportive in gaining a competitive edge or remaining competitive in their business. We describe the technology transfer phase by means of three activities: technology evaluation, technology engineering, and technology embedding. The technology evaluation activity is perceived as the main gate between the technology creation phase and the technology transfer phase. With two case studies, originating from the Dutch high-tech systems industry, we will illustrate the activities in the transfer phase.

In addition to the process we will also define the main roles in a software engineering technology innovation, namely: the technology provider (academic research, industrial research and technology vendor) and the technology receiver (industrial development). With those roles we also address the issues concerning the ownership of technologies.

Introduction

Research organizations produce a steady stream of results, typically in the form of publications, such as papers and technical reports, and optionally complemented with proofs of concepts. Whether or not these results are viewed to be successful strongly depends on the perspective taken by its beholder. From an academic perspective, success is typically defined in terms of the numbers of papers produced and the proclaimed quality of the journals and the proceedings of conferences in which these publications appear. From an industrial perspective, success is typically measured in terms of resulting business success, based on revenues of products and/or intellectual property rights. At least to become a business success, research results not only have to be transferred from a research organization to an industrial organization, but must also be applied.

We perceive a software engineering technology (SET) as a method or tool to develop software for high-tech systems. These systems contain large amounts of software and are characterized by the fact that several disciplines, like hardware, mechanics and optics should work together with software. Examples of high-tech systems are medical devices like MR scanners (Jaring et al., 2004) and lithography systems like a waferstepper (Engels and Brugman, 2007). Apart from its size, the software in these systems is also complex and therefore requires dedicated software engineering technology (SET). In Section 4, we will illustrate two of such technologies, namely relation partition algebra (RPA) and an aspect oriented language (AOL) and tool for C. But many other techniques can be thought of such as:

  • Architecture description languages (ADLs), like Koala (Ommering et al., 2000) and architectural methods (Bril et al., 2005).

  • Configuration management systems (Krikhaar and Crnkovic, 2007).

  • Modeling techniques, like UML2.0, with related tooling to draw e.g., class or activity diagrams (Fowler, 2003).

  • Software process improvement support, like (Humphrey, 1989).

  • Verification and/or testing techniques, like Model-based testing (Broy et al., 2005).

  • Process approaches, like RUP (Kruchten, 2000) and Scrum (Kniberg, 2001).

Principally, three types of software engineering technologies (SETS) can be distinguished, namely: methods, tools and paradigms. A method consists of an underlying model, a language, defined steps and ordering of steps and guidance for applying the method (Kronlöf, 1993). A tool is support to implement a method. It might be a program that aids in the development of other programs, like a compiler or test generation tool. The broadest qualification of a technology is when it is perceived as a paradigm, a general theory, like object-oriented technology. In this paper, we focus on the transfer of methods supported by tools.

We define technology transfer from research to an industrial organization as a process that takes a proof-of-concept version of a technology from research as input and yields a production proof version of that technology embedded into that industrial organization as output. This is also true for software engineering technology (SET). The technology is considered to be embedded in the receiving organization when it is used for a considerable period of time in a number of projects. The technology transfer is considered to be sustainable (Punter et al., 2006) when its application no longer depends on the people who originally introduced the technology, such as ‘champions’ that promote the technology to their colleagues. Instead, the receiving organization took care of ownership of the technology.

We acknowledge to Krasner (1995) that “successful technology transfer” occurs when a perceived problem meets a technologically based solution within an appropriate interval of time and when there exists “commitment on both sides of the producer–consumer relationship at all organizational levels”. We add to this definition that transfer is successful if the technology supports the business success, e.g., because it is an innovation to an existing development process that helps in reducing the development lead-time (shorter time-to-market), improving the quality of constituent software in products, and or reducing the development cost.

During the past 15 years, in which we – the authors – were involved in large software engineering projects in the Netherlands, we experienced that technology transfer is particularly challenging when the technology to be transferred does not belong to the core business of the receiving organization. A SET, such as an analysis or design method and tool, is an outstanding example of technology that typically does not belong to the core business of an organization. To justify investments in technology transfer and costs of subsequent ownership of technology in such a situation, the technology must either solve a pressing problem in the receiving organization or provide that organization with a competitive edge. We therefore view transfer of SET as a change process, which aims at making a business success out of research results.

The remainder of this paper is organized as follows: In Section 2, we focus on the parties participating in an innovation process (stakeholders and roles) and their view on a technology. By doing so, we also address the demand pull and technology push-orientation in transfer as well as ownership of technologies. In Section 3, we define technology innovation as a process consisting of two phases: technology creation and technology transfer. The latter phase consists of three activities, namely: technology evaluation, technology engineering, and technology embedding. Based on these activities, we revisit the push and pull-orientation in transfer in this section. In Section 4, we present two case studies from the Dutch high-tech sector (in which a lot of software is developed) that illustrate these activities in technology transfer. Section 5 sets the relation to existing literature on technology transfer in software engineering. In Section 6, we summarize and draw some conclusions.

Section snippets

Parties and ownership in technology transfer

This section discusses on the parties that are engaged in innovation in general and in the technology transfer phase in particular. In the first Section 2.1 we view the parties as stakeholders that have their own values and/or expectations about a technology. In the second Section 2.2 we look at the parties from a role perspective, where each role has a set of connected behaviors according to which a party acts in a technology transfer. Next, we address the technology push and demand

Technology innovation

As we have stated in the introduction we focus in this paper on software engineering technologies that have to be created, they are not ready-to-use or off-the-shelf. This implies that the technology creation is rather important for technology transfer, although we agree with Pfleeger (1999) that the creation is not part of the transfer itself. We prefer to define a technology creation phase11 that is conducted in parallel iteration with

Technology transfer in the Dutch high-tech sector: push versus pull

The overall process that we introduced in the previous section is based on our experiences in the Dutch high-tech sector. Nowadays, these systems contain millions of lines of code. In this section, we look at two cases to illustrate the activities of the transfer phase in the Netherlands. The cases are:

  • Relation partition algebra (RPA) approach for software architecture analysis and validation.

  • Aspect oriented language (AOL) approach for weaving aspects.

Related work

Existing literature reports about factors that are relevant for the success of the technology transfer of software engineering technologies. Factors like the availability of a champion, management commitment are mentioned, see, e.g., (Pfleeger and Menezes, 2000, Bril et al., 2005). We recognize these factors from our observations, however in this paper we take the position to look at the transfer process, and identify its characteristics.

Redwine and Riddle (1985) have reviewed the growth and

Conclusion and discussion

This paper has dealt with the innovation of software engineering technology by transferring methods and tools from research to industry. Innovation encompasses two phases, namely: technology creation – which is synonym to research in our paper – and technology transfer. Although transfer was the primary focus of our paper, we have argued that we need to balance both phases. Focusing on technology transfer requires also paying attention to technology creation. Approaching both phases has enabled

Acknowledgement

We thank the anonymous reviewers and Pierre America for their comments on earlier versions of this paper.

Teade Punter is Knowledge Manager at the Embedded Systems Institute, the Netherlands. He is involved in the transfer of research results to industrial partners and the consolidation of this knowledge into courses, methods and tools. He received a M.Sc (Ir.) from University of Twente in 1991 and a Ph.D. from Eindhoven University of Technology in 2001. Teade started his professional career in course development at the Open University of the Netherlands. In 1996 he started his PhD work on software

References (35)

  • M. Fowler

    UML Distilled: A Brief Guide to the Standard Object Modeling Language

    (2003)
  • Freimut, B., Punter, T., Biffl, S., Ciolkowski M., 2002. State-of-the-art in empirical studies. IESE-Report No....
  • W.S. Humphrey

    Managing the Software Process

    (1989)
  • M. Jaring et al.

    Representing variability in a family of MRI scanners

    Software-Practice and Experience

    (2004)
  • Kniberg, H., 2001. Scrum and XP from the trenches. Weblink visited on 15 March 2008....
  • Krasner, H., 1995. Bottlenecks in software engineering technologies. In: Proceedings of the 28th Annual Hawaii...
  • Krikhaar, R.L., 1999. Software Architecture Reconstruction. PhD thesis, University of Amsterdam, The...
  • Cited by (10)

    • A quantitative model for software engineering trends

      2011, Information Sciences
      Citation Excerpt :

      Our work complements the techniques discussed in Hodgson et al. [11] and the profiles of success that we discuss in this paper provide an alternative means to mitigate the risks posed by unpredictable technological shifts. In Punter et al. [24] Punter et al. discuss the process of innovation in software engineering technologies, which they break down into two phases, technology creation and technology transfer. They focus on the latter phase, which they further divide into three phases, namely technology evaluation, technology engineering, and technology embedding.

    View all citing articles on Scopus

    Teade Punter is Knowledge Manager at the Embedded Systems Institute, the Netherlands. He is involved in the transfer of research results to industrial partners and the consolidation of this knowledge into courses, methods and tools. He received a M.Sc (Ir.) from University of Twente in 1991 and a Ph.D. from Eindhoven University of Technology in 2001. Teade started his professional career in course development at the Open University of the Netherlands. In 1996 he started his PhD work on software product certification, which was done in cooperation with Kema Nederland B.V. From 2000 till 2004 he was a groupleader assessment and measurement at Fraunhofer IESE, Germany. After that he was for two year a consultant in formal methods research at Eindhoven University of Technology. Since January 2007, he is at the Embedded Systems Institute. Teade’s interests are in model driven engineering, integration & testing and technology transfer.

    René Krikhaar is a part-time Associate Professor of Software Engineering at the VU University Amsterdam (VUA) and director of ICT NoviQ, a consultancy company in the Netherlands. He received his M.Sc Informatics from the Radboud University Nijmegen in 1986, a M.Sc in Knowledge Engineering (with honors) from the Middlesex University (Great Britain) in 1994 and a Ph.D. from University of Amsterdam in 1999. After his military duty, he started his professional career at Philips in 1987 and worked at both Philips Research as well as various Business Units (Communications, Healthcare). In 2006 he started at ICT NoviQ as principal consultant, advising companies in software architecture, configuration management and quality (processes). His main interests are Collaborative Software Production addressing themes which helps industry to develop complex systems with large, geographically and organizationally distributed. He teaches Software Configuration Management for Software Engineering Master Students.

    Reinder J. Bril is an Assistant Professor of Computer Science in the department of Mathematics and Computer Science at the Technische Universiteit Eindhoven (TU/e), The Netherlands. He received a B.Sc. and M.Sc. (both with honors) from the University of Twente, the Netherlands in 1981 and 1984, respectively, and a Ph.D. from the TU/e in 2004. He started his professional career in January 1984 at the Delft University of Technology. From May 1985 till August 2004, he has been with Philips, and worked in both Philips Research as well as Philips’ Business Units. In September 2004, he made a transfer back to the academic world, i.e. to the System Architecture and Networking (SAN) group of the TU/e. His main research interests are currently in the area of reservation-based resource management for networked embedded systems with real-time constraints.

    View full text