Beruflich Dokumente
Kultur Dokumente
85
Introduction
The traditional software development (SD) process is known as the software lifecycle
model or the waterfall model, because of a cascade from one phase to another
(Sommerville, 2001). However, the practical application of the waterfall model has
turned out to be problematic due to its formal structure and inflexibility. Therefore, the
waterfall model has been modified in various different ways, and the latest development
step has been in the creation of methodologies that share the common goal of providing
quick customer value with incremental and iterative development. These methodologies
are called agile software development methods. However, there is no universal definition
of agile software development, but in general their basic premise is that a small,
co-located team works closely together with customers, and the team creates a high-value
product cost-effectively with continuous short iterations (Kettunen, 2009). Agile SD
constitutes a set of principles initially advocated by a group of software practitioners, and
now practiced by many software professionals (Misra et al., 2009). According to
Vijayasarathy and Turk (2012), agile SD has emerged as an important alternative to
traditional plan-based approaches. The main success factors in agile SD projects are
effective communication, collaboration, and coordination (Mishra and Mishra, 2009).
The innovation process has rather similar phases as the traditional waterfall model of
SD. However, the innovation process covers a broader entity than the traditional SD
process. In addition to the SD process, the innovation process includes a front end of
innovation (FEI) phase and commercialisation activities. Koen et al. (2002) divide the
innovation process into three areas: FEI, new product development (NPD), and
commercialisation phases. Over the years, innovation processes have been developed
from simple linear models into complicated and interactive network models (Rothwell,
1994; Tidd et al., 2005). According to Dershin (2010), fundamentally linear views of the
innovation process have been abandoned in favour of more systemic or non-linear views
over the last decades.
Wallin et al. (2002) have studied the possibilities to integrate business decision
models and SD lifecycle models. They have compared Coopers state-gate process model
as an example with three SD lifecycle models. Wallin et al. have come to the conclusion
that SD lifecycle models do not ensure that resources are used in the right projects, that
the market is available, or that the organisation is ready for release. Similarly, business
models do not support SD, so the development might struggle with uncontrolled changes
and inadequate time for validation. Further, Nambisan and Wilemon (2000) have studied
the potentials for cross-domain knowledge sharing between SD and NPD. According to
their study, NPD and SD share several similarities and face many common challenges.
The study of Nambisan and Wilemon also reveals that much of the SD research has
focused on development methodologies, techniques, and use of technology to support the
development process. On the other hand, the NPD literature frequently emphasises the
organisational issues associated with the development process, and the focus of the NPD
research has largely been on the interaction of people and the processes involved in the
different phases. In addition, Gassmann et al. (2006) have analysed the applicability of
successful practices from extreme programming (XP) to traditional NPD, and especially
whether analogies from the XP approach can be drawn for managing the FEI to enable
successful integration of the customer. Gassman et al. demonstrate that the iterative
86
L. Hannola et al.
Innovation processes
Tidd et al. (2005) define innovation as a process of turning opportunity into new ideas
and of putting these into widely used practice. According to Trott (2005), the term
innovation is a very broad concept that can be understood in a variety of ways, and he
introduces the notion that innovation is a process with a number of distinctive features
that have to be managed. Thus, Trott defines innovation as the management of all the
activities involved in the process of idea generation, technology development,
manufacturing and marketing of a new (or improved) product, manufacturing process or
equipment. Innovation can also be considered as an organisational or management
process that requires tailor-made tools and management systems (Anand and Pandya,
2008).
87
Generation
Model
Features
Technology push
Market pull
Third (1980s)
Coupling model
Fourth (1980/1990s)
Interactive model
Network model
First (1950/1960s)
Second (1970s)
Fifth (2000s)
Source: Modified from Rothwell (1994), Tidd et al. (2005) and Trott (2005)
The literature features numerous innovation process models and business decision models
that describe how companies develop or should develop new products or services. Koen
et al. (2002) suggest that the innovation process can be divided into three areas: the fuzzy
front end (FFE), the NPD process, and commercialisation. Herstatt et al. (2006) describe
a simplified process of product development, which demonstrates the stage at which the
FEI plays a role in the innovation process. In general, modern innovation processes
involve activities that are essentially common to all companies [Tidd et al., (2005), p.67]:
1
Searching scanning the internal and external environment for, and processing
relevant signals about, threats and opportunities for change.
Selecting deciding, on the basis of a strategic view of how the enterprise can best
develop, which of these signals to respond to.
Implementing translating the potential in the trigger idea into something new and
launching it in an internal or external market.
Learning companies have the opportunity to learn from progressing through this
cycle so that they can build their knowledge base and improve the ways in which the
process is managed.
88
L. Hannola et al.
89
Software specification. The functionality of the software and the constraints on its
operation must be defined.
Software design and implementation. The software to meet the specification must be
produced.
Software validation. The software must be validated to ensure that it does what the
customer wants.
Software evolution. The software must evolve to meet changing customer needs.
Figure 1
90
L. Hannola et al.
Agile SD
Agile SD evolved in the mid-1990s as a part of a reaction against bureaucratic and slow
methods such as ISO 9000, the rational unified process (RUP), and the capability
maturity model (CMM) (Gassmann et al., 2006). The latest development in the
21st century has been the creation of new methods and models that share the common
goal for high-value product cost-effectiveness with short iterations. The agile SD
paradigm has become increasingly popular during the last few years, and many
organisations are adopting agile practices in their SD projects (Misra et al., 2009).
According to Rubin and Rubin (2011), one of the main contributors to the success of
agile methods is probably the dissatisfaction with the bureaucracy of traditional
development methodologies. According to Thummadi et al. (2011), the enactments of the
agile and waterfall methodologies are substantially different. Dyb and Dingsoyr (2008)
argue that agile SD represents a major departure from traditional and plan-based
approaches to SD.
According to Kettunen (2009), the basic premise in agile SD methods is that a small,
co-located team working closely together with customer(s) can create a high-value
product cost-effectively with frequent short iterations. Agile methods do not encourage
the formal, document-centric activities needed to satisfy robust process requirements,
such as documented design and requirements management (Gary et al., 2011).
Abrahamsson et al. (2002) define a SD method as an agile one, when it is:
91
Nowadays, the variety of agile methods includes a number of specific techniques and
practices of SD (Salo and Abrahamsson, 2008). Agile methods in general and XP have
gained supporters among system development practitioners (Ovaska, 2009), and
according to Gassmann et al. (2006), XP has eventually become one of the most popular
methods of agile SD. The main characteristics of XP are short iterations with small
releases and rapid feedback, customer participation, communication and coordination,
continuous integration and testing, collective ownership of the code, limited
documentation and pair programming (Abrahamsson et al., 2002). Figure 3 illustrates the
differences in the traditional SD process vs. XP development cycles.
Figure 3
The traditional SD process vs. XP development cycles (see online version for colours)
The ideology of the scrum method is generally considered to having been born in the
article of Takeuchi and Nonaka (1986) concerning rugby players way of moving a ball
between players in a tight formation with teamwork. Since then, the scrum approach has
been developed for managing the system development process, and the main idea is that
system development involves several environmental and technical variables (e.g.,
requirements, time frame, resources, and technology) that are likely to change during the
process (Abrahamsson et al., 2002). According to Schwaber (1995), the scrum process
92
L. Hannola et al.
includes three phases: pre-game, game (also called development phase) and post-game,
and the phases are moved on in a linear fashion. The pre-game phase includes the
definition of the system being developed, and a product backlog list is created containing
all the requirements that are currently known (Abrahamsson et al., 2002). In addition,
according to Abrahamsson et al. (2002), the high level design of the system including the
architecture is planned on the basis of the current items in the product backlog. In the
game phase, the system is developed in Sprints, which are iterative cycles where
functionality is developed or enhanced to produce new increments. Each Sprint includes
the traditional phases of SD, i.e., requirements, analysis, design, evolution and delivery
phases. In the post-game phase, the system is ready for release, and the preparation for
this is done by including such tasks as integration, system testing and documentation
(Abrahamsson et al., 2002).
The application and adaption of different practices of XP and scrum, as well as the
extent of use, are also bound to differ from project to project and from organisation to
organisation (Salo and Abrahamsson, 2008). In addition to XP and scrum, other agile SD
methods include such methods as Mobile-D (Abrahamsson et al., 2002), LEAN
(Poppendieck and Poppendieck, 2003) and feature driven development (Palmer and
Felsing, 2002). Abrahamsson et al. (2002), and Dyb and Dingsoyr (2008) have
conducted rather comprehensive literature reviews and analyses of several agile SD
methodologies.
When the five generations of innovation processes (Rothwell, 1994) are added into the
evolutionary model of Salo (2006) (Figure 2), it can be noticed that the models have been
developed at the very same time, and they share a similar trajectory. However, there
seems to be a difference between agile SD and the 5th generation model of innovation
due to the higher readiness for change in the agile methods. Thus, it could be assumed
that the software product is easier to change at the end of SD than the fixed products
(goods) at the end of product development. The evolution of innovation process models
and SD process models are depicted in Figure 4.
When reviewing the problems related to the innovation process and the traditional
waterfall model of SD, several similar problems can be found, such as:
heavy documentation
communication
FFE.
93
According to Apilo et al. (2007), many companies have started to model their product
development with process descriptions, but the heavy documentation in the specification
and design phases has become a major problem. In addition, the amount of
documentation and reviews has become too extensive. The agile SD methods have solved
the problem with light user stories. The customers write out a user story that they wish to
be included in the first release, and each story card describes a feature to be added into
the programme (Abrahamsson et al., 2002). The customer(s) and programmers negotiate
what will be done in the next iteration, the programmers estimate the time to complete
each card, and the customers prioritise, alter, and de-scope as needed, so that the most
valuable stories are implemented in the allotted time period (Cockburn, 2002).
Furthermore, keeping the customer closely involved during the whole innovation process
will probably lessen the situation where the documentation becomes an end in itself. The
purpose of the documentation should be to make the agreed features understandable to all
stakeholders.
Insecurity about customer needs and product requirements, resource allocation, and
setting up schedules are considerable problems between the FEI and the product
development phase. Especially fixed product features tend to be agreed on at a very early
phase of the innovation process, even though the customer does not necessarily know
how to specify the final product features. As the product development process proceeds,
the possibilities to influence on the final product usually become more difficult and
expensive. In agile methods extensive up-front design is not required (Abrahamsson
et al., 2002), and there is no fixed implementation plan for the final software. Change
management is treated as one of the values of agile methods: responding to change over
94
L. Hannola et al.
following a plan (Cockburn, 2002). The customers and the development team are in
continuous interdependence, where jointly prioritised requirements are implemented as
an incremental development process. The iterative process provides an opportunity to
verify the outcomes of the process with short iterations, and the attendance of the
customers gives them the opportunity to validate their needs regularly. According to
Lindstrm and Jeffries (2004), the most important aspect is that the software is visible,
and given to the customer at the end of each iteration, which keeps everything open and
tangible.
Table 2
Potential solutions for the problems in the waterfall model and the innovation process
Waterfall model
problem
Innovation process
problem
Heavy
documentation
Heavy documentation
Fixed
specifications
Change
management
Change management
becomes more
difficult towards the
end of the process
Illustrating requirements as
customer stories,
Info radiator,
Low-tech documentation
Planning game
Short increments
White board,
Planning game,
Backlog
Iterations,
Collective ownership
Transfer of
know-how
Transfer of knowhow
Shared workplace
Communication
Continuous communication
by effective channels,
War room,
Scrum,
Pair programming,
Communication
Interaction within
individuals over
tools,
Daily meetings
Continuous customer
involvement
Absence of FFE
Fuzziness of FFE
Backlog,
Unpredictability is
expected
One of the challenges in the innovation and SD processes is the transfer of knowledge
and know-how between cross-functional teams. The importance of this kind of
knowledge transfer is often neglected. In many organisations, there exist huge amounts of
additional and overlapping work, misunderstandings, and incorrect versions of design
documents due to problems in communication. Agile software methodologies have
provided several solutions to this problem. For instance, Mobile-D recommends a war
room and XP a caves and common room, where the whole SD is centralised into the
same space. The phrase caves and common refers to the creation of two zones in the
room, where common area is organised for communication and information transfer, and
the caves portion of the room is organised to give people a private place to deal with
e-mail, make phone calls, and take care of their need for separation (Cockburn, 2002).
95
Furthermore, all materials produced and needed during a development project are found
in the same room. In addition, several agile methods utilise information radiators on the
wall. The information radiator displays information about the development project, e.g.,
incomplete assignments, completed features, and identified tasks to be completed. Thus,
all the relevant information is in the same room to facilitate communication, and for the
transfer of knowledge and know-how.
Pair programming in XP, where two programmers sit side by side at the same
computer, provides a better code and tests, as well as serves for communicating
knowledge throughout the team (Lindstrm and Jeffries, 2004). Daily and weekly
meetings in scrum are organised to keep track of the progress of the team continuously,
they serve as planning meetings, and also problems and other variable matters are
discussed and controlled in them (Abrahamsson et al., 2002). Working in pairs prevents
overlapping work, enables also the transfer of tacit knowledge, and continual short
meetings help the participants to focus on current tasks and problems to be solved.
The term FFE is not commonly used in SD. Opportunity identification and ideas for
new software products are typically regarded as inputs to SD, and they are generated
before the requirements specification phase of the waterfall model. This may lead to a
problem, where new ideas, needs and requirements never reach SD, especially if they
come after the final set of requirements have been accepted for implementation.
Koen et al. (2002) divide the innovation process into FFE, the NPD process, and
commercialisation, and the activities in the FFE are often chaotic, unpredictable and
unstructured. Regardless of the differences in the front end phase, both the innovation
process and SD have recognised that the most significant benefits can be achieved
through improvements in the front end activities. The iterative process of agile methods
provides several FFE loops during the development project by means of customer
involvement, short iterations and readiness for change.
The phases of the traditional SD process (or the waterfall model) and the innovation
process are rather similar. However, the implementation of the waterfall model in
practice has been found to be challenging due to its formal structure and inflexibility.
Therefore, the waterfall model has been developed further, and the latest development
step is the emergence of methodologies, which are referred to as agile SD methods. The
objective of different agile methods is to offer quick customer value, and to produce
feasible software versions with iterative SD.
The objective of this study was to investigate whether the practices and solutions of
agile methods could be utilised for improving the performance of the innovation process.
The study was conducted by comparing the evolution of the process models, and
discovering the most significant problems in software and innovation processes. As a
result, the following main challenges were identified: heavy documentation, change
management during the development project, transfer of knowledge and know-how
between cross-functional teams, and pressures to fixed specifications related to the size,
schedule and costs of the project. As a practical contribution of the study, agile SD
methods could provide the following agile guidelines for improving the innovation
process:
96
L. Hannola et al.
The light user stories utilised in agile methods could provide a solution for the heavy
documentation of the innovation process. Customers needs are translated into user
stories in a way that both the customers and the development team understand and
interpret the problem and needs in the same way.
Understanding the customers needs and translating the needs into product features
has been recognised to be challenging, and so has the inconsistency with the
demands for a quick start of a product development project. There have also been
problems in scheduling and resource allocation of product development. Agile
software methodologies provide solutions by giving up fixed implementation plans.
Replacing the extensive pre-planning with continuous interdependence between the
customers and the development team enables an incremental product development
process.
One of the biggest challenges in the innovation process is the transfer of knowledge
and know-how between cross-functional teams. Misunderstandings and problems in
communication cause additional work. Agile methods emphasise practices that
improve the transfer of knowledge and know-how, e.g., a war room or a common
space, where the development team, all materials and other data related to the project
can be found. In addition, the concepts of pair-programming and information radiator
contribute to successful transfer of knowledge.
The traditional state-gate model for directing a product development project could be
changed to change- and customer-driven reviews, where instead of only making the
go/no-go decisions of the development project, the meetings could be utilised as
reviews of the implemented features and prioritisation of new needs of the customer.
The iterative process of agile methods integrates the FFE to the product development
as continuous loops during the development project by means of customer
involvement, short iterations and readiness for change.
As a conclusion, this study provides several agile guidelines to managers and project
team members for improving the innovation process. The agile SD methods and practices
could provide several improvements into the modern innovation process regarding
organisational practices, transfer of know-how and knowledge (tacit and explicit),
understanding customers needs, integrating the FFE into the entire innovation process,
and improving the communication, collaboration, and coordination of the innovation
process. For further validation of the proposed agile guidelines, we consider that an
important area for future research is to validate the proposed agile guidelines in product
development organisations.
Acknowledgements
The authors would like to express their gratitude to the anonymous reviewers whose
constructive comments helped us to improve our manuscript.
97
References
Abrahamsson, P., Salo, O., Ronkainen, J. and Warsta, J. (2002) Agile software development
methods review and analysis, VTT Publications 478, Otamedia Oy, Espoo, Finland.
Anand, H. and Pandya, K.V. (2008) Role of innovation in IT in achieving its business objectives: a
case study, Int. J. Business Innovation and Research, Vol. 2, No. 3, pp.289313.
Apilo, T., Taskinen, T. and Salkari, I. (2007) Johda Innovaatioita (Manage Innovations), in
Finnish, Talentum Media Oy, Helsinki, Finland.
Boehm, B. (1988) A spiral model of software development and enhancement, Computer, Vol. 21,
No. 5, pp.6172.
Cockburn, A. (2002) Agile Software Development, Pearson Education Inc., Boston.
Dershin, H. (2010) A framework for managing innovation, Int. J. Business Innovation and
Research, Vol. 4, No. 6, pp.598613.
Dyb, T. and Dingsoyr, T. (2008) Empirical studies of agile software development: a systematic
review, Information and Software Technology, Vol. 50, Nos. 910, pp.833859.
Galanakis, K. (2006) Innovation process, make sense using systems thinking, Technovation,
Vol. 26, No. 11, pp.12221232.
Gary, K., Enquobahrie, A., Ibanez, L., Cheng, P., Yaniv, Z., Cleary, K., Kokoori, S., Muffih, B.
and Heidenreich, J. (2011) Agile methods for open source safety-critical software, Software:
Practice and Experience, Vol. 41, No. 9, pp.945962.
Gassmann, O., Sandmeier, P. and Wecht, C. (2006) Extreme customer innovation in the front-end:
learning from a new software paradigm, International Journal of Technology Management,
Vol. 33, No. 1, pp.4666.
Hannola, L. and Ovaska, P. (2011) Challenging front-end-of-innovation in information systems,
Journal of Computer Information Systems, Fall, Vol. 52, No. 1, pp.6675.
Herstatt, C., Verworn, B., Stockstrom, C., Nagahira, A. and Takahashi, O. (2006) Fuzzy front
end practices in innovating Japanese companies, Management of Technology and Innovation
in Japan, pp.167183, Springer, Berlin, Heidelberg.
Kess, P. and Haapasalo, H. (2002) Knowledge creation through a project review process in
software production, International Journal of Production Economics, Vol. 80, No. 1,
pp.4955.
Kettunen, P. (2009) Adopting key lessons from agile manufacturing to agile software product
development a comparative study, Technovation, Vol. 29, Nos. 67, pp.408422.
Khurana, A. and Rosenthal, S.R. (1998) Towards holistic front ends in new product
development, Journal of Product Innovation Management, Vol. 15, No. 1, pp.5774.
Kim, J. and Wilemon, D. (2002) Strategic issues in managing innovations fuzzy front-end,
European Journal of Innovation Management, Vol. 5, No. 1, pp. 27-39.
Koen, P., Ajamian, G., Boyce, S., Clamen, A., Fisher, E., Fountoulakis, S., Johnson, A., Puri, P.
and Seibert, R. (2002) Fuzzy front end: effective methods, tools, and techniques, in
Belliveau, P., Griffin, A. and Somermeyer, S. (Eds.): The PDMA ToolBook for New Product
Development, John Wiley & Sons, Inc., New York, USA.
Koivuniemi, J. (2008) Managing the front end of innovation in a networked company environment
combining strategy, processes and systems of innovation, PhD dissertation, Acta
Universitatis Lappeenrantaensis 334, Lappeenranta University of Technology.
Lindstrm, L. and Jeffries, R. (2004) Extreme programming and agile software development
methodologies, Information Systems Management, Vol. 21, No. 3, pp.4152.
Mishra, D. and Mishra, A. (2009) Effective communication, collaboration, and coordination in
extreme programming: human-centric perspective in a small organization, Human Factors
and Ergonomics in Manufacturing, Vol. 19, No. 5, pp.438456.
98
L. Hannola et al.
Misra, S.C., Kumar, V. and Kumar, U. (2009) Identifying some important success factors in
adopting agile software development practices, The Journal of Systems and Software,
Vol. 82, No. 11, pp.18691890.
Nambisan, S. and Wilemon, D. (2000) Software development and new product development:
potentials for cross-domain knowledge sharing, IEEE Transactions on Engineering
Management, Vol. 47, No. 2, pp.211220.
Ovaska, P. (2009) Information Systems Development in Theory and Practice: Coordination,
Methods and Processes, VDM Verlag Dr. Mller Aktiengesellschaft & Co., Germany.
Palmer, S.R. and Felsing, J.M. (2002) A Practical Guide to Feature-Driven Development, Upper
Saddle River, Prentice-Hall.
Piirainen, K., Kortelainen, S., Elfvengren, K. and Tuominen, M. (2010) A scenario approach
for assessing new business concepts, Management Research Review, Vol. 33, No. 6,
pp.20408269.
Poppendieck, M. and Poppendieck, T. (2003) Lean Software Development: An Agile Toolkit,
Addison-Wesley, Upper Saddle River.
Rothwell, R. (1994) Towards the fifth-generation innovation process, International Marketing
Review, Vol. 11, No. 1, pp.731.
Rubin, E. and Rubin, H. (2011) Supporting agile software development through active
documentation, Requirements Engineering, Vol. 16, No. 2, pp.117132.
Salo, O. (2006) Enabling software process improvements in agile software development teams and
organisations, VTT Publications 618, Otamedia Oy, Espoo, Finland.
Salo, O. and Abrahamsson, P. (2008) Agile methods in European embedded software development
organizations: a survey on the actual use and usefulness of extreme programming and scrum,
IET Software, Vol. 2, No, 1, pp.5864.
Schwaber, K. (1995) Scrum development process, OOPSLA95 Workshop on Business Object
Design and Implementation, Springer-Verlag.
Sommerville, I. (2001) Software Engineering, Addison-Wesley, Harlow, England.
Takeuchi, H. and Nonaka, I. (1986) New product development game, Harvard Business Review,
JanuaryFebruary, pp.137146.
Thummadi, B.V., Shiv, O., Berente, N. and Lyytinen, K. (2011) Enacted software development
routines based on waterfall and agile software methods: socio-technical event sequence study,
Lecture Notes in Computer Science, Vol. 6629, pp.207222.
Tidd, J., Bessant, J. and Pavitt, K. (2005) Managing Innovation: Integrating Technological, Market
and Organizational Change, 3rd ed., John Wiley & Sons Ltd., Chichester, England.
Trott, P. (2005) Innovation Management and New Product Development, Pearson Education
Limited, Essex, England.
Vijayasarathy, L. and Turk, D. (2012) Drivers of agile software development use: dialectic
interplay between benefits and hindrances, Information and Software Technology, Vol. 54,
No. 2, pp.137148.
Wallin, C., Ekdahl, F. and Larsson, S. (2002) Integrating business and software development
models, IEEE Software: Focus the Business of Software Engineering, November/December,
Vol. 19, No. 6, pp.2833.