Bootstrapping the Software Engineering Industry into E-Commerce

Bootstrapping the Software Engineering Industry into E-Commerce Andrew Boden Programming Languages and Systems Group School of Computer Science and So...
Author: Randell Owen
0 downloads 0 Views 132KB Size
Bootstrapping the Software Engineering Industry into E-Commerce Andrew Boden Programming Languages and Systems Group School of Computer Science and Software Engineering University of Western Australia Perth, Australia Email: [email protected] Abstract This paper discusses the changes that need to occur in the software engineering industry in order for it to be able to broadly adopt electronic commerce and digitise its value chains. A framework is proposed that encompasses these changes and suggests the potential to achieve large productivity gains by making the transition from primary producer to secondary industry. Keywords Electronic Software Distribution and Configuration Management, Software industry, Closed/open systems, Expert Systems, Document Management Systems, Distributed Systems, Program generation, Software Architectures, Maintenance – Program maintenance.

1

INTRODUCTION

The potential benefits of e-commerce (incorporating electronic distribution of the product itself, to truncate distribution chains) to the industry are obvious – reduced delivery times, fewer profit mark-ups, lower costs for distribution and return/recall, and (initially) increased developer profitability. The digitisation of the distribution chain increases consumers' location-utility. Materials management is reduced or eliminated, so capital is not tied up in inventory and there are no materials handling costs. This increases short-term profitability and the cash available to operations. Customers are exposed to the developer's web-site, increasing brand recognition (and customer retention) and facilitating flow-on sales. Despite these benefits, e-fulfilment in the software engineering industry is limited compared to its potential extent. Both bespoke and off-the-shelf software are shipped largely as boxed CD-ROM binaries suitable for installation and execution on a single OS/processor family – such as “Win32 on a Pentium-conformant architecture”. A single package may contain several binaries supporting different platforms. The use of File Transfer Protocol (FTP) servers for software distribution is only widely adopted for zero-cost, shareware, opensource, or trial-version software most of which are not commercial. It is apparent, therefore, that changes must need to occur in the industry before it can widely adopt e-commerce. This paper postulates what these changes might be and proposes an industry framework both as a potential change agent and as a 'next-generation' evolution in industry practice that incorporates e-commerce to produce higher-quality software more cheaply, reliably and quickly. The proposed framework is essentially an electronic iterative just-in-time document refinement system. The system operates on a micro-level as a participant in (and a driver of) the information exchanged between each vendor and consumer, and on a macro-level by instrumenting itself and organising system information into useful reports (e.g. catalogues). Section 2 presents an analysis of the software engineering value chain and considers the roles e-commerce might play. This is followed by consideration of the possible factors inhibiting broader use of e-commerce in the software engineering industry. Section 4 presents the proposed industry framework that facilitates and is facilitated by e-commerce. This framework is the focus of our current research efforts. When combined with the capabilities of e-commerce, it suggests a potential path for the evolution of the software engineering industry from its current combination of craft and mass-production to a future of mass-customisation (hence the title of this paper). Section 5 provides some concluding remarks regarding the broader applicability of the proposed framework.

2

VALUE CHAIN ANALYSIS

Porter's "value chain" model (1985) identifies human resources, procurement, technological development and company infrastructure as four principle support activities, and inbound logistics, operations, outbound logistics,

CollECTeR 2002

marketing and sales, and after-sales service as five principle primary (transformation) processes. Applying this model to the software engineering industry, we identify several broad primary ('P') and supporting ('S') activities: – P1 market research (requirements analysis) – P2 software design – P3 software development – P4 software testing – P5 marketing and sales – P6 physical production (eg burning and packaging CD-ROMs) – P7 fulfilment (delivery, installation, configuration, and acceptance) – P8 after-sales service (including training, returns, maintenance, upgrades, troubleshooting/helpdesk, and add-ons) – S1 human resources – S2 materials management (moving physical resources through the value chain) – S3 company infrastructure – S4 designing the software development and physical production processes

3.

FACTORS INHIBITING E-COMMERCE

Identification of possible industry factors inhibiting e-commerce first requires identification of e-commerce strategies that potentially add value, reduce cost, or reduce risk for industry participants. These manifest as alternative primary and supporting processes (or enhancements to existing processes) incorporating electronic technologies. The focus of this paper is on P6-P8, and the principal e-commerce strategy for enhancing these processes is secure FTP distribution of software. The benefits of e-fulfilment in reducing the costs incurred in these processes have already been identified above. It remains to identify the possible factors inhibiting this strategy. Various researchers have investigated the impediments to the broader adoption of e-commerce generally, including Malaga (2001), Farhoomand & Tuunainen (2000), Kyeong Seok Han & Mee Hyun Noh (1999), and Clarke (1999). However, there seems to be little research that addresses electronic distribution of digitisable products (“information goods” (Altinkemer & Bandyopadhyay 2000)). Some research has addressed particular aspects of digital distribution of music – Altinkemer and Bandyopadhyay (2000) investigate pricing/bundling concerns, Wang & Chong (1999) merely observe the possible effects of disintermediation upon the music industry. Clarke (1997a) intentionally excludes it from his discussion of electronic publishing. Warkentin et al (2000) observe both the standardisation of “information transmission” that is well underway (i.e. the Internet) and the emerging standardisation of “information representation” (i.e. industry-specific XML definitions). They observe the impact that e-commerce has made upon the traditional supply chain activities (exchanging of physical goods, logistical information, and consideration), and mention “the online exchange for digital goods” in passing without identifying any obstacles to its adoption. They later note that: “In the past, software was usually sold through inefficient retail outlets with expensive packaging and no customization for individual consumer needs. Many software vendors now offer downloads of their products from websites, and the trend is toward leasing of applications from remote third parties, known as application service providers (ASP), on an as-needed basis. … [digital] content can be custom configured for each user’s requirements through the use of cookie file technology.” However, they provide no support for the claimed uptake of digital distribution, nor do they discuss the potential it holds for being leveraged into more than just an alternative distribution channel. They also somewhat gloss over the value that organisations attribute to their logistical information as a determinant in their power relationships with suppliers and consumers, and presume that the sharing of logistical and product information will become increasingly richer, open (standardised) and democratic rather than being perceived as a source of market power. This is a fundament of the improvements in supply chain management that they anticipate will occur. If a broad adoption of electronic software distribution occurs and results in an increased significance of supply-side relationships for software developers, then it will be interesting to observe whether the overall industry exhibits the open approach anticipated by Warkentin et al or a more guarded traditional approach to its supply chain relationships. Jacobsen & Günther (1999) also discuss application service provision, in a technology that does not allow for software configuration to adapt program execution to suit the user's execution environment, because program execution does not occur on the client (only an Internet browser is required). Adam & Yesha (1996), in their discussion of the strategic fit between the technologies of electronic commerce and digital libraries, touch on many issues involved in the development of a digital content provider, and observe

CollECTeR 2002

that software is one possible form of digital content. However, they do not discuss the obstacles to digital distribution, nor the autonomous adaptation of digital documents (in our case, software) to better suit the environment of their consumption. Our focus is on the level of customisation that may be desirable of content (software) prior to its consumption by the client (i.e. program execution), particularly if this customisation can become highly autonomous. We postulate that gathering data that describes many executions of a program across many environments, will allow a closed-loop (“expert”) system to be developed that is self-correcting. Programs will be automatically transformed by the framework so that they are better suited to their execution environment, where “better suitability” is deduced by interpreting and extrapolating in-field execution data for similar environments. This goes beyond the relatively unvarying and human-centred consumption of digital content that seems to be envisaged in Adam & Yesha (1996). Gurnami & Karlapalem (2001) contend that “pay-per-use is a viable alternative for a large number of customers, and that judicious pricing for pay-per-use is profitable for the software vendor.” This suggests that profitability is not an obstacle to adopting e-fulfilment. Clarke (1997b) identifies the key factors impeding electronic corporate purchasing as being “mature services; positive incentives for all participants in order to achieve critical mass; trust; and patience, as large ships turn.” Factors specific to electronic distribution are not discussed. 3.1

Consumer Confidence

Electronic software distribution lacks the reassuring character of interpersonal contact and product tangibility that traditional retail can provide. This means that other ways must be found to increase the consumer’s confidence in the product. Three are here suggested: fairer warranties of software quality; an independent, audited profession for software testing; and more expressive software Application Programming Interfaces (API). Warranties To differentiate itself on quality, e-distributed software needs to be backed by reassuring contracts. This does not necessarily mean accepting liability for damages caused by faulty software, but should at least mean an extensive (~10-year) warranty that guarantees a reasonably quick response time to reported bugs (eg responding with findings within 48 hours, fixing bugs in weeks at most). This creates an impetus for improvements in user documentation. Developers would use e-commerce relationships to collect field data describing executions (and in particular execution errors) and reduce the cost of bug repair. Independent Testing The establishment of independent agents to certify the conformance of software to its usage documents would allow quality-of-service standards to develop for the testing function. A professional society could run spotaudits of testers’ software assessments. Agents’ licenses and reputations would depend upon their history of clean audit findings and accurate software assessments. Testing agents’ pricing structures should be based upon the complexity of applications’ untested portions or the number of untested tasks described in the usage documents or the size of untested APIs. Expressive APIs In situations where the consumers are software engineers, they should be able to correctly predict the behaviour of any API call for any given set of actual parameters. Furthermore, they must believe that their predictions will be correct without feeling a need to test them, because testing them may cost more than re-developing the functionality internally. This faith is only likely with a well-established independent testing profession. It also suggests that greater expressiveness of interfaces in the source code (such as the proper use of object-oriented encapsulation, the inclusion of pre- and post-condition assertions in method signatures, and the use of temporal logic) will be attractive for its potential both to reduce the cost of synchronizing source code with usage documents and to reduce the cost of testing the source code’s conformance to the documents. The combination of stronger bug-repair warranties, consumer demand for independent certification, and the inclusion of APIs as user documentation could well produce an impetus towards production of smaller parcels of software. Developers would have a financial incentive to provide numerous small components with expressive APIs to testers. Separate certification of these components would allow their inclusion in future products without recurring the testing cost. Certification of larger products would become less expensive if they relied upon certified components for many of their functions. Hence, the pursuit of consumer confidence could well fuel the growth of a software components industry.

CollECTeR 2002

3.2

Consumer Awareness

Consumer awareness of the software products that are offered on-line is obviously crucial. Well-known suppliers of systematic classifications and descriptions of software components must exist to ease the tasks of finding, assessing and comparing products. This includes the provision of all usage documentation. The greater the degree of standardisation with which software can be described, the lower the cost of evaluation and comparison. For example, all software embodies expectations of and dependencies upon the hardware, software, data and users with which it will interact. If these can be modelled in some standard notation then a substantial proportion of the evaluation and comparison tasks will be greatly simplified (possibly even automated). Ecommerce both needs and assists such catalogue systems. 3.3

Benefit

The consumer stands to benefit from reduced costs, increased convenience, automated installation and configuration, automated bug-reporting and repair, and user communities hosted at the product’s website. Tying users in to developers' websites creates opportunities for cross-product promotion, special offers and other customer retention strategies, but the greatest potential benefit to software mass-producers probably lies in the elimination of software piracy. 3.4

“Killer Application”

The strongest impetus for the adoption of e-commerce will arise from its capacity to offer something extremely valuable that existing commercial practices simply cannot deliver in any way. Our research postulates that an autonomous adaptive iterative just-in-time software transformation system could be the “killer app” e-commerce offers to the software engineering industry. This transforms software from a static entity that has to be manually maintained, into the central figure in a closed-loop system that autonomously adapts itself to better suit its operating conditions (based on feedback data gleaned from a large population of varied installations).

4

THE PROPOSED FRAMEWORK

4.1

Overview

The framework models the inter-dependencies between, and life-cycle evolutions of, execution entities (platforms, users, data, virtual machines, and applications). A user Ui directs a virtual machine Vi to execute an application Ai on a platform Pi using specified data Di. An interaction of these entities is called execution. Each execution entity Ei is represented by an actual model ME, describing the capabilities of that entity during this execution. Each actual model has four associated expectation models XE, describing the entity’s assumptions about, expectations of and constraints upon the other four entities. An execution scenario Si is a tuple of actual models and expectation models for each entity involved in the execution, where EU is , EV is , EA is , EP is , and ED is . Each entity explicitly models its expectations and requirements of each other kind of entity, meaning that entities are able to evolve independently. Declaring a scenario prompts an entity-specialiser to attempt to reconcile the conflicts between models and produce a feasible execution. The objectives for the system are: – Protection of intellectual property. It must allow code transformations without exposing source code. – Tailorability of products. Specialisation of software must not occur before all pertinent information is known. This is essentially the argument for “mass customisation” (Davis 1996, Pine 1993) over mass- or craft-production. – Standards and standard languages for the classification, description and modelling of software and related entities. – Fosters re-use of components. – Automated remote collation of meta-execution data, used in the feedback mechanism for adaptive software transformations. Uses information networks for service delivery in addition to product distribution and the usual affairs of business.

CollECTeR 2002

4.2

Prototype

Initial efforts are focussed on developing a prototype framework capable of reconciling and specialising simple scenarios to deliver configured behaviours for concurrent visibility, error recovery, and data persistence. The prototype scenario has been designed to simplify the scenario's transition into execution and possesses the following properties: – Logical entities (VM, application) comprise their own actual-model (the model is the entity). – Applications are written in Java (its VM expectation-model (EM) requires conformance to the JVM Specification (Lindholm & Yellin 1999), as modified for this framework). – The VM (the Jupiter JVM from the University of Toronto (Doyle 2002), compiled by the GNU C compiler and to be executed in RedHat Linux 7.2) is highly modular and has cleanly defined interfaces between each configurable service module. – There is no Data entity (the only data used is static data defined in the application). – There is only a simple User entity, primitively modelled. – The Platform entity's actual-model is based on the Parallel Memory Hierarchy model (Alpern et al 1993), expressed in Eiffel and extended to represent I/O devices. – Expectation models of all entities are also written in Eiffel. – The Application’s EM of the VM incorporates the Uniform Memory Model (Yang et al 2002) to express the application’s assumptions regarding competitive access to shared mutable data in memory by multiple co-existing threads. – Four semantically configurable execution attributes have been selected: concurrent visibility, error recovery, persistence and consistency – identified by Chrysanthis and Ramamritham (1990) as the four "building-blocks" of transactions. Other lexically scoped configurable behaviours could be attempted, but configurable transactions are the genesis of our research. – Additional language constructs have been defined to better support the new ‘semantically configurable’ attributes. The expressiveness of method signatures has been increased with the inclusion of assertions and temporal logic. Hoare's concurrency operator (1985, pp.68-73) is used (as in Occam (Barrett 1992) with its PAR and SEQ constructs) to express evaluation order of program code (constraining the set of possible instruction execution interleavings) with finer granularity and flexibility than constructing Thread objects. Thread properties then can be configured in the scenario without being “hard-wired” into the application code.

5

CONCLUSION

The proposed document transformation framework is specific to software engineering only because computer programs are the documents that are being electronically designed, developed, distributed, specialised, realised (executed), evolved, and supported. Other industries could exploit a sufficiently general framework for their own documents (products). For example the authoring and publishing industries could write and publish texts electronically (in multiple languages and formats) that incorporated post-distribution editorial revisions immediately rather than by printing costly subsequent editions. The framework’s utility potentially extends to architecture, art, other engineering disciplines (civil, mechanical, electrical, electronic) – in fact, any industry that distributes documents which are subsequently exposed to a pressure to undergo refinements for particular uses. The framework provides an environment in which those transformations can be applied in order to produce new versions of those documents that exhibit the particular properties desired.

REFERENCES Adam N. and Yesha Y. (1996) Strategic directions in electronic commerce and digital libraries: towards a digital agora, pp. 818-835, ACM Computing Surveys, 28:4. Alpern B., Carter L. and Ferrante J. (1993) Modeling Parallel Computers as Memory Hierarchies, Proceedings of the 1993 Conference on Programming Models for Massively Parallel Computers, IEEE. Altinkemer K. and Bandyopadhyay S. (2000) Bundling and Distribution of Digitized Music Over the Internet, pp.209-224, Journal of Organizational Computing & Electronic Commerce, 10:3. Barrett G. (INMOS, Bristol) (1992) occam 3 reference manual (March 31 1992 draft), obtained from http://wotug.ukc.ac.uk/parallel/occam/documentation/

CollECTeR 2002

Chrysanthis P.K. & Ramamritham K. (1990) ACTA: A Framework for Specifying and Reasoning about Transaction Structure and Behavior, pp.194-203, Proceedings of the 1990 ACM SIGMOD International Conference on Management of Data, ACM Press, New York. Clarke R. (1997a) Electronic Publishing: A Specialised Form of Electronic Commerce, Presented at the 10th International Electronic Commerce Conference, Bled, Slovenia, June 1997. Obtained from www.anu.edu.au/people/Roger.Clarke/EC/Bled97.html on 20/10/02. Clarke R. (1997b) What's Holding Up EC in Australia? Obtained from www.anu.edu.au/people/Roger.Clarke/EC/Impeds97.html on 20/10/02. Clarke R. (1999) Key Issues in Electronic Commerce and Electronic Publishing, Presented at Information Online and On Disc 99, Sydney, 1999.Obtained from www.anu.edu.au/people/Roger.Clarke/EC/Issues98.html on 20/10/02. Davis S. (1996) Future Perfect, 10th anniversary edition, Addison-Wesley, Harlow, England. Doyle P. (2002) Jupiter: A Modular and Extensible Java Virtual Machine Framework, M.App.Sc. Thesis, University of Toronto. Farhoomand A.F. and Tuunainen V.K. (2000) Barriers To Global Electronic Commerce: A Cross-Country Study of Hong Kong and Finland, Journal of Organizational Computing & Electronic Commerce, 10:1. Gurnami H. and Karlapalem K. (2001) Optimal pricing strategies for Internet-based software dissemination, pp.64-70, The Journal of the Operational Research Society, 52:1, Oxford. Hoare C.A.R. (1985) Communicating Sequential Processes, Prentice-Hall International Ltd. Jacobsen H.-A. and Günther O. (1999) Middleware for Software Leasing over the Internet, pp.87-95, Proceedings of the first ACM conference on Electronic Commerce, Denver, Colorado, United States. Kyeong Seok Han and Mee Hyun Noh (1999) Critical Failure Factors That Discourage the Growth of Electronic Commerce, International Journal of Electronic Commerce, 4:2 Winter 1999-2000. Lindholm T. & Yellin F. (1999) The Java Virtual Machine Specification, Second Edition, Addison-Wesley. Malaga R.A. (2001) Consumer Costs In Electronic Commerce: An Empirical Examination of Electronic Versus Traditional Markets, Journal of Organizational Computing & Electronic Commerce, 11:1. Pine B.J. (1993) Mass Customization: The New Frontier in Business Competition, Harvard Business School Press, Boston, Mass. Porter M.E. (1985) Competitive Advantage: Creating and Sustaining Superior Performance, The Free Press, New York. Wang P.S. and Chong C-L. (1999) Applying the Hypercube Model of E-Commerce Strategies to MP3, pp.528533, Proceeding of the 20th International Conference on Information Systems, ACM. Warkentin M., Bapna R. and Sugumaran V. (2000) The Role of Mass Customization in Enhancing Supply Chain Relationships in B2C E-Commerce Markets, Journal of Electronic Commerce Research, 1:2. Obtained from www.csulb.edu/web/journals/jecr/p_i.htm on 20/10/02. Yang Y., Gopalakrishnan G. & Lindstrom G. (2002) Specifying Java Thread Semantics Using a Uniform Memory Model, to appear in Joint ACM Java Grande/ISCOPE Conference, November 2002. Obtained from http://www.cs.utah.edu/~yyang/research/

CollECTeR 2002