- Software Innovation
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 frominvention , and fromcreativity [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.] . 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 Roberts, E.B., Managing invention and innovation. Research Technology Management, 1988. 31(1): p. 11-27.] , where invention refers to the creative act or process, exploitation refers to its enactment in practice, anddiffusion 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 Cooper, R.B., Information Technology Development Creativity: A Case Study of Attempted Radical Change. MIS Quarterly, 2000. 24(2): p. 245-276.] [Lyytinen, K. and G.M. Rose, Disruptive information system innovation: the case of internet computing. Information Systems Journal, 2003. 13(4): p. 301-330.] . 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, or in how they govern their communities and interact with each other.Software Innovation Models
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 ofsoftware 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 . 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 [Lind, J., Boeing's Global Enterprise Technology Process. IEEE Engineering Management Review, 2007. 35(1): p. 38-52.] ), 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 [Jordan, P.W., et al., Software storming: combining rapid prototyping and knowledge engineering. Computer, 1989. 22(5): p. 39-48.] ), 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 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.] .In the network (or community) model 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.] [Tuomi, I., Networks of Innovation. Oxford Press, 2003.] [Powell, W. and S. Grodal, Networks of Innovators, in The Oxford Handbook of Innovation, J. Fagerberg, Editor. 2005, Oxford: New York.] [Denning, P.J., The social life of innovation. Communications of the ACM, 2004. 47(4): p. 15-19.] 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: Trajectory, Convergence, Transfer
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 [http://en.wikipedia.org/wiki/Technology_trajectory] and
convergence . The trajectory of a software technology shows the direction of its development, and can be used to anticipate the next feasible innovations. Thusdatabase software evolves through flat-file, hierarchical, network models to relational and object-oriented models. Its latest development also illustrates software technology convergence, as modernXML 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, combinesvoice over internet protocol (and other messaging services) withpeer to peer computing to provide a software product which emerges as the infrastructure of the internet is sufficiently well developed to support it.An important source of software innovation is domain transfer. As in other forms of technology innovation, software can be adapted to application domains beyond the original target domain. Here the innovation lies not so much in the code itself, but in the novel application that the code is transferred to. Thus the precursor of the World Wide Web,
ARPANET , was designed to support military communications in times of disruption through war. Peer to peer computing originally supportedUsenet , was adapted to support music file distribution (Napster ), and further adapted to support VOIP (Skype).Software innovations can be market-led 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
Innovative software products (algorithms, routines, programs, packages) share two characteristics: novelty and utility [http://en.wikipedia.org/wiki/Innovation] . 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 ).• Innovative software can change leisure and entertainment patterns
Software Process Innovation
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) orSCRUM . It can concentrate on one phase of a more traditional development process, such as requirements elicitation [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.] [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.] [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.] - introducing more creative or imaginative techniques or tools. Software process innovations can be user-led 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.] , where expert users collaborate in the writing of software which meets their own needs (for example theLinux 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 [McConnell, S., The Power of Process. Computer, 1998. 31(5): p. 100-102.] – unfocused work which is neither productive nor generating new ideas. A more modern pre-occupation is with ‘flow’ [http://en.wikipedia.org/wiki/Flow_%28psychology%29] , (Csíkszentmihályi’s description of a mental state characterized by high energy and focus) in a software teamThe 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 .
The Creative Software Developer
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 [http://en.wikipedia.org/wiki/Creativity] . 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 [Couger, J.D., Ensuring Creative Approaches in Information System Design. Managerial and Decision Economics, 1990. 11(5): p. 281-295.] . They may display different styles of creativity Couger, J.D., Results of a trans-discipline research structure for study of creativity/innovation in IS. System Sciences, 1997, Proceedings of the Thirtieth Hawaii International Conference on, 1997. 3.] ; 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 exploitlateral thinking as described byEdward de Bono . In addition to thinking in an original or unconventional way, they can also challenge themindset 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
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 . Some work environments are thought to promote creativity and innovation, whereas others can hinder it . Innovation enablers include Cougar, J., Measurement of the Climate for Creativity in IS Organisations, in International Conference on System Sciences. 1994, IEEE: Hawaii.] : freedom, challenging work, sufficient resources, supervisory encouragement, workgroup support, organisational encouragement. Other environments create creativity barriers [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.] 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 [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.] , IDEA , Knowledge Breeder [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.] and creativity support tools [Shneiderman, B., Creativity support tools. Communications of the ACM, 2002. 45(10): p. 116-120.] .
Evaluating Software Innovation
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
patent s, but this is not always appropriate for software. Commonsoftware metric s 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 [Cougar, J., Measurement of the Climate for Creativity in IS Organisations, in International Conference on System Sciences. 1994, IEEE: Hawaii.] , also measures of product utility and novelty for software and personal creativity [Higgins, L., A Comparison of Scales for Assessing Personal Creativity in IS, in International Conference on System Sciences. 1996, IEEE: Hawaii.] .The original version of theis article was written by Jeremy Rose and Ivan Aaen as part of the work of the Software Innovation Research Laboratory [http://www.sirl.dk/SIRL/Sirl.html] at the Department of Computer Science [http://www.cs.aau.dk/] at Aalborg University
Software Innovation (company)
Software Innovation (ose|SOI) is a Norwegian
software company with locations inNorway ,Sweden ,Denmark andFinland . The company was founded inOslo in1984 and is listed onOslo Stock Exchange .The company delivers solutions for Customer Relationship Management (CRM) and Document management system (DMS).
External links
* [http://www.software-innovation.com/ Company website]
Wikimedia Foundation. 2010.