Software engineering,a branch of information systems engineering, is an inter- esting field to examine in relation to operationalizing instructional expertise. On one hand, learning systems are information systems that are increasingly computerized and complex; on the other hand, software engineering has been successful at gradually overcoming the artistic tendency in computer pro- gramming—that is, the tendency to treat each program as a unique creation of a unique individual—which has proved to be inadequate for building increasingly complex information systems.
The similarity between much existing instructional design and early soft- ware engineering can be clearly seen in the following description; just replace the termprogrammerwithdesigner.
The first agents to resist the modern approaches of software engineer- ing are creative and solitary programmers. They can be identified from afar. They seriously delve into their trade, yet they often find it diffi- cult to explain or document their work. They work late at night, with the goal to correct a problem often caused by incomprehensible soft-
ware of low quality, which undergoes frequent repairs. They consider their work a stimulating artistic experience. They have little confidence in the assistance of other programmers, documentation or practices which do not directly relate to their work. The source code they cre- ate is unique, elegant and generally incomprehensible to others, which explains why we consider them indispensable [p. 1].21
Programming as a personal art is becoming less and less productive because modern information systems require software interoperability and maintenance over long periods of time. More and more, the size, complex- ity, and vital character of information systems simply exceed the compre- hension capacities of a single programmer. The main objective of software engineering has become to provide processes and tools that allow the pro- duction of correct, efficient, extensible, flexible, modifiable, portable, reliable, reusable, valid, and comprehensible systems.
An information system, in particular a learning system, is an artificial object (an artifact) built by creating a representation of the activity of a real system, collecting, saving, processing, and making available all or part of this activity in a comprehensible form to an end-user. As one information systems engineer has pointed out: “One of the major difficulties of information sys- tems engineering is that the said systems are more or less immaterial objects. Nobody has ever seen an information system, and this system is visible only from its representations: documentation, models, etc. . . . We must be cer- tain that several parties describing the same object will arrive at the same for- mal representation, which brings up the fidelity problem of modeling techniques” (p. 27, my translation).22
Information systems engineering is a methodology composed of actors, processes, products, and operational principles. It is global, sharing a common language with multiple users and various disciplines. It is dynamic, concerned with the evolution of system components through various processes. It clearly identifies the delivered goods and the products that result from these various processes. It is built on operational principles that consider the characteristics of human design activities, in particular the influential links that are iterative rather than linear and require frequent backtracks, joint acceptation by the
standards breakersandsystem users,and finally, the diversity of the application modes of these principles, in particular the independence between the method and the computer tools or software engineering support systems.
The methods of information systems engineering suggest a methodolog- ical division of a system into modules, phases, or stages that correspond to processes that reflect in-time development without necessarily imposing lin- ear execution. The processes include the following:
Critical observation, statement of the premises, or diagnosis.This process must lead to precise and well-supported recommendations regarding the opportunity to build a system or modify an existing system. The main product is a diagnosis resulting from our reflection on a new system whose equivalent does not exist in the organization or on the reengineering or validation of an existing system to respond to a new problem in the organization.
General orientations, establishment of the operational principles.Starting from a preliminary diagnosis, we study the possible strategies and pro- pose one or many general scenarios for the evolution of a system. This process allows us to define orientation principles describing the selec- tion of the types of resources to be integrated, the activities and the actors to be supported, and the means to place at their disposal. Preliminary definition.In this process we define, on the basis of our general orientations, one or many operational solutions, considering the products available on the market. Here we will formalize the general orientations, develop an initial model of the target situation, and study and evaluate contrasting setting scenarios, all of which will lead us to recommendations for the design of the system.
Modeling of the system architecture.On the basis of the selected solution, we deal with the problems of composition, organization, computer sys- tem structure, choice of resource types, and implementation orienta- tions of the future system. This phase naturally leads to the production of a model or prototype that illustrates, as best as possible, the general
operation of the future system. This phase ends as soon as the users and clients, using the prototype, have validated the key technological choices made in the architectural model.
Programming the system.The programming phase consists of transform- ing the software specifications of the architectural phase into coded com- ponents that once assembled become a computer application. In certain cases when an existing system is being reengineered, the use of high-level software engineering tools (or CASE tools) can decrease or even remove much of the use of programming language. In all cases, in a shift from the programming style typical of the early development of the computer sciences, programming becomes a technique rather than an art. It is a milestone, sometimes mandatory, in system development, representing one phase of the many necessary phases of software development. Simulation and qualification of the system.The simulation design must make it possible to launch the qualification of the system, that is, its validation through tests. The qualification consists of verifying the adequacy of the software to meet the specifications of the architectural plan and the service characteristics expected by the users.
Implementation of the system.The implementation phase prepares for the operation of the computer system in the context of the users. We must not only install the new or revised system but also prepare the structures that will support the software, the materials that will support the infor- mation bases, and the management and exploitation procedures that will ensure the quality of the system’s operation in the organization.
Exploitation of the system.This process is the final step in information systems engineering, testing in a real setting. It is guided by an evolu- tion plan that generally specifies a system breaking-in period, after which we must expect to revise certain system functions. Thereafter, we continuously observe the system, gather data about system operation in the target environment, analyze and synthesize these observations, and manage the changes that must be made to ensure the maintenance of the system.
In contrast to instructional design, instructional engineering is inspired by the design principles for information systems and adapts them to learning system design. Instructional engineering plans similar processes that are mostly executed in parallel and through successive iterations called deliveries. It precisely describes the products of these processes and their contribution to the general model of the learning system. It values developing a sound architecture for the learning system rather than the hasty and artistic devel- opment of instructional materials. Finally, it includes careful preparations of the installation and the delivery of the learning system.