User:Drjeremyrose/software innovation draft

Software Innovation can be understood in (at least) two ways:

1. Software Product Innovation - the creation of novel and useful software programs.

2. Software Process Innovation - the introduction of novel and useful ways of developing software.

Innovation should be distinguished from invention, and from creativity [1]. Both are relevant to software innovation, but whereas creativity is the state of mind which leads to innovative thinking, and invention could describe a new algorithm or program (or software development technique), innovation implies that the creative act and invention are carried into wider use, leading to substantial kinds of change; thus the successful exploitation of new ideas. Software innovation therefore = invention + exploitation + diffusion [2], where invention refers to the creative act or process, exploitation refers to its enactment in practice, and diffusion of innovations refers to its adoption by a wider audience. Software innovation may refer to both radical (disruptive, discontinuous) and incremental changes to software products and processes [2] [3] [4]. Typical the result of software innovation is experienced as change – in the way people work, business is carried out, in people’s choice of entertainment, in the way they choose to communicate how they govern their communities or interact with each other.


Software Innovation Models

edit

There are different kinds of underlying models for software innovation, which are derived from studies in technology innovation.

In a linear model, software product innovation is understood as a sequence of stages or phases, rather like the waterfall model of software development. The initial recognition of an innovation opportunity is followed by phases of idea development, problem solving, prototyping, full-scale commercial development and utilization/diffusion [2]. Here the focus is much on the software product, which is conceptualised at the beginning of the process and developed to be a marketable software system.

In an iterative model (see for example [5]), software innovation is considered in a more process–oriented way (reflecting agile software development methods). Innovation takes place through highly focused and creative bursts of development activity (for example storming [6]), which are repeating but evolving. In this model it is not necessary to have a fully-formed software concept at the beginning of development – the creativity and energy of the process itself offers the conditions for innovative programming and development [7].

In the network (or community) model [7][8] [9] [10] [11] the focus is upon the conjunction of people, ideas and expertise. In Silicon Valley, or in the Linux community, are found clusters of highly able software developers - partly competing with each other, and partly co-operating to be at the leading edge of technology development. Important in this model are teams, co-operative work, expertise sharing, timing (in relation to other innovations) and pushing existing boundaries.


Software Technologies: Trajectories and Convergence

edit

Software Innovation relies on an understanding of the state-of the-art in a given software technology. Like other technologies, software technologies can be seen to have trajectories [1] and convergence. The trajectory of a software technology shows the direction of its development, and can be used to anticipate the next feasible innovations. Thus database software evolves through flat-file, hierarchical, network models to relational and object-oriented models. Its latest development also illustrates software technology convergence, as modern XML databases combine features of databases with their web-implementations. A modern mobile phone is part phone, part camera, part video camera, part calculator, part calendar, part mp3 player, part games console and so on. Each of these kinds of software, together with their hardware platforms and supporting infrastructures have separate technology trajectories but converge in the mobile phone. Many software innovations exploit understandings of trajectories and convergence to provide an innovative software product precisely at the time that the market is ready, and the supporting infrastructure is well-enough developed. Skype, for instance, combines voice over internet protocol (and other messaging services) with peer to peer computing to provide a software product which emerges as the infrastructure of the internet is sufficiently well developed to support it.

Software innovations can be market-led [2] or technology-led. Market–led software innovation responds to demand from a particular user-community. Technology-led software innovation is pushed by creativity among software-developers – producing software for which a market has later to be developed. Commonly, software innovations are a mixture of both.


Characteristics of Innovative Software Products

edit

Innovative software products (algorithms, routines, programs, packages) share two characteristics: novelty and utility[2]. Novelty means that they have not been developed previously, utility that they have some form of application which users value. Different kinds of utility can be distinguished.

• Software innovations can provide underlying improvements for the delivery of other computing services (operating systems, internet browser).

• Software innovations can provide new, improved, more efficient or cheaper services for communities of users (like the Skype application mentioned earlier).

• Embedded software can enable innovation in other technology products, such as cars and washing machines.

• Innovative software can be an enabler or driver for business change.

• Innovative software can change the way people interact and communicate, as for instance with social networking software (Facebook, LinkedIn).


Software Process Innovation

edit

Software process innovation can take the form of the development of new techniques, tools or methods for software development, as for example with extreme programming (XP) or SCRUM. It can concentrate on one phase of a more traditional development process, such as requirements elicitation [12] [13] [14] - introducing more creative or imaginative techniques or tools. Software process innovations can be user-led [15], where expert users collaborate in the writing of software which meets their own needs (for example the Linux community). Process innovation can also focus on market analysis:where the demand for new software products lies. Common to many software process innovations is a focus on productive work, and the avoidance of thrashing [16] – unfocused work which is neither productive nor generating new ideas. A more modern pre-occupation is with ‘flow’ [3], (Csíkszentmihályi’s description of a mental state characterized by high energy and focus) in a software team

The relationship between software process innovation and innovative software products is a complex one. At the moment there is no particular evidence that innovative software processes necessarily result in innovative software products. Some forms of innovative software products may be best developed using traditional methods [3].


The Creative Software Developer

edit

Software innovation pre-supposes creative software developers. Creativity is a mental process involving the generation of new ideas or concepts, or new associations between existing ideas or concepts. From a scientific point of view, the products of creative thought are usually considered to have both originality and appropriateness [17]. A creative software professional can cope with poorly-defined problems, exhibit novel and unconventional thinking, motivation and persistence, and think in a heuristic, rather than an algorithmic way [18]. They may display different styles of creativity [19]; whereas one prefers to adapt an existing concept, or code, another may prefer to explore an entirely new direction, or experiment with several such directions. Much creative problem solving is experience- and expertise-based – the chances of arriving at a creative or novel solution are greater if the developer knows the programming environment and application area extremely well, and has worked on comparable types of problems before. Creative system developers and programmers also display good overview - the ability to keep many aspects of a problem in play simultaneously, and well-developed mental modelling capacities. This gives them both the ability to understand the relationship between many complex facets of a development task, and to express them in appropriate modelling forms to help others. Creative developers can think ‘out-of the-box’ – that is they can go beyond conventional linear logical thinking and generally held assumptions about how development problems should be tackled to produce original solutions. They can exploit lateral thinking as described by Edward de Bono. In addition to thinking in an original or unconventional way, they can also challenge the mindset of others, and provoke uncharacteristic reactions. Lateral thinking is best described as a creativity technique and there are many others which can be appropriate for software developers, for example: 5W’s + H, manipulative verb, metaphor, Crawford blue slip writing, problem reversal, wishful thinking, peaceful setting, nominal group technique, software games. However these techniques (with the exception of the last) are not designed specifically for use in software development, and can also sometimes be superfluous or unhelpful. It’s thought that creativity in a developer can be improved by focus on their personal innovation practice.


The Innovative Software Team

edit

Creative software developers work in innovative teams. Innovative software teams display high levels of team learning, constructive software practice patterns, excellent communication, appropriate role division and good integration of expertise [8]. Some work environments are thought to promote creativity and innovation, whereas others can hinder it Cite error: A <ref> tag is missing the closing </ref> (see the help page).: freedom, challenging work, sufficient resources, supervisory encouragement, workgroup support, organisational encouragement. Other environments create creativity barriers [20] through workload pressure, rigid work practices, stress and reward systems that penalise mistakes. Though software teams are associated with project work in conventional software development firms, the may also be geographically distributed and supported by co-operative work systems. They can also be self-organising, facilitated by the internet, and motivated by non-commercial goals, as in open source communities. There are several software tools which are designed to support the innovation process, including group support systems [21], IDEA [15], Knowledge Breeder [22] and creativity support tools [23].


Evaluating Software Innovation

edit

A final aspect of software innovation is its evaluation. The benefits of software innovation, and its effects often lie many years in the future, dependent on commercial exploitation and diffusion, whereas software developers need ways of understanding whether they are working innovatively at the time of working, or shortly afterwards. Bad projects need to be closed down and bad development practices improved. A commonly used measure for technology innovation is patents, but this is not always appropriate for software. Common software metrics for software development (such as lines of code, function points, bug counts and so on) are not very helpful indicators for innovation or creativity. Measures for the creativity climate of IS organizations have been developed [24], also measures of product utility and novelty for software [19] and personal creativity [25].


  1. ^ Davila, T., M.J. Epstein, and R. Shelton, Making Innovation Work: How to Manage It, Measure It, and Profit from It. Vol. . 2006, Upper Saddle River: Wharton School Publishing.
  2. ^ a b c d Roberts, E.B., Managing invention and innovation. Research Technology Management, 1988. 31(1): p. 11-27.
  3. ^ a b Cooper, R.B., Information Technology Development Creativity: A Case Study of Attempted Radical Change. MIS Quarterly, 2000. 24(2): p. 245-276.
  4. ^ Lyytinen, K. and G.M. Rose, Disruptive information system innovation: the case of internet computing. Information Systems Journal, 2003. 13(4): p. 301-330.
  5. ^ Lind, J., Boeing's Global Enterprise Technology Process. IEEE Engineering Management Review, 2007. 35(1): p. 38-52.
  6. ^ Jordan, P.W., et al., Software storming: combining rapid prototyping and knowledge engineering. Computer, 1989. 22(5): p. 39-48.
  7. ^ a b von Hippel, E. and G. von Krogh, Open Source Software and the “Private-Collective” Innovation Model: Issues for Organization Science. Organization Science, 2003. 14(2): p. 209-223.
  8. ^ a b Tiwana, A. and E.R. McLean, Expertise Integration and Creativity in Information Systems Development. Journal of Management Information Systems, 2003. 22(1): p. 13-43.
  9. ^ Tuomi, I., Networks of Innovation. Oxford Press, 2003.
  10. ^ Powell, W. and S. Grodal, Networks of Innovators, in The Oxford Handbook of Innovation, J. Fagerberg, Editor. 2005, Oxford: New York.
  11. ^ Denning, P.J., The social life of innovation. Communications of the ACM, 2004. 47(4): p. 15-19.
  12. ^ Dearden, A. and S. Howard, Capturing user requirements and priorities for innovative interactive systems. Proceedings of the Australasian Computer Human Interaction Conference, 1998: p. 160–167.
  13. ^ Maiden, N. and S. Robertson, Integrating Creativity into Requirements Processes: Experiences with an Air Traffic Management System. Requirements Engineering, 2005. Proceedings. 13th IEEE International Conference on, 2005: p. 105-116.
  14. ^ Mich, L., C. Anesi, and D.M. Berry, Applying a pragmatics-based creativity-fostering technique to requirements elicitation. Requirements Engineering, 2005. 10(4): p. 262-275.
  15. ^ a b Fraser, J., Inspired innovation: how Corel is drawing upon employees' ideas for user focused innovation. Proceedings of the 2005 conference on Designing for User eXperience, 2005.
  16. ^ McConnell, S., The Power of Process. Computer, 1998. 31(5): p. 100-102.
  17. ^ http://en.wikipedia.org/wiki/Creativity
  18. ^ Couger, J.D., Ensuring Creative Approaches in Information System Design. Managerial and Decision Economics, 1990. 11(5): p. 281-295.
  19. ^ a b Couger, J.D., Results of a trans-discipline research structure for study ofcreativity/innovation in IS. System Sciences, 1997, Proceedings of the Thirtieth Hawaii International Conference on, 1997. 3.
  20. ^ ampler, J.L. and D.F. Galletta, Individual and organizational changes necessary for the applicationof creativity techniques in the development of information systems. System Sciences, 1991. Proceedings of the Twenty-Fourth Annual Hawaii International Conference on, 1991. 4.
  21. ^ Fellers, J.W. and R.P. Bostrom, Application of group support systems to promote creativity ininformation systems organizations. System Sciences, 1993, Proceeding of the Twenty-Sixth Hawaii International Conference on, 1993. 4.
  22. ^ Adamides, E.D. and N. Karacapilidis, Information Technology Support for the Knowledge and Social Processes of Innovation Management. Technovation, 2006. 26(1): p. 50-59.
  23. ^ Shneiderman, B., Creativity support tools. Communications of the ACM, 2002. 45(10): p. 116-120.
  24. ^ Cougar, J., Measurement of the Climate for Creativity in IS Organisations, in International Conference on System Sciences. 1994, IEEE: Hawaii.
  25. ^ Higgins, L., A Comparison of Scales for Assessing Personal Creativity in IS, in International Conference on System Sciences. 1996, IEEE: Hawaii.