Sunday, April 15, 2012

Chapter 13 - Building and Managing Systems

Building a new information system is a planned organizational change.  Information technology can promote various degrees of organizational change.  Four kinds of structural organizational change that are enabled by information technology include automation, rationalization, business process redesign, and paradigm shifts.  Each of these carries different risks and rewards.  Automation is the most common form of IT-enabled organizational change.  It is using the computer to speed up the performance of different tasks.  It frequently reveals new bottlenecks in production and makes the existing arrangement of procedures and structures painfully cumbersome.  Rationalization of procedures is the streamlining of standard operating procedures.  It is often found in programs for making a series of continuous quality improvements in products, services, and operations.  Business process redesign is where business processes are analyzed, simplified, and redesigned.  It reorganizes workflows combining steps to cut waste and eliminate repetitive, paper-intensive tasks.  Paradigm shift refers to rethinking the nature of the business and the nature of the organization.

Many businesses are trying to use information technology to improve their business processes.  Organizations are turning to business process management.  This provides a variety of tools and methodologies to analyze existing processes, design new processes, and optimize those processes.  Companies practicing business process management go through several steps.  The first step is to identify processes for change. The next step is to analyze existing processes.  The third step is to design the new process.  Step four is to implement the new process.  Step five is to continuously measure the implemented process.  Tools are also provided by software firms to help businesses identify and document processes requiring improvement, create models of improved processes, capture and enforce business rules for performing processes, and integrate existing systems to support new or redesigned processes.  Some BPM tools can document and monitor business processes to help firms identify inefficiencies.  BPM tools can also automate some parts of a business process and enforce business rules so that employees perform that process more consistently and efficiently.  Another category of tools can help businesses integrate their existing systems to support process improvements.  They can automatically manage processes across the business, extract data from various sources and databases, and generate transactions in multiple related systems.

Systems development are the activities that go into producing an information system solution to an organizational problem or opportunity.  It is a structured kind of problem solved with distinct activities.  These activities consist of systems analysis, systems design, programming, testing, conversion, and production and maintenance. 

System analysis is the analysis of a problem that a firm tries to solve with an information system.  It consists of defining the problem, identifying its causes, specifying the solution, and identifying the information requirements that must be met by a system solution.  The systems analysis process identifies several alternative solutions that the organization can pursue and assess the feasibility of each.  The systems analyst must define the specific information requirements that must be met by the chosen system solution.  The information requirements of a new system involve identifying who needs what information, where, when, and how. 

Systems design shows how a system will meet the information requirements as determined by the systems analysis.  It consists of all the specifications that give the system its form and structure.  Systems designer details the system specifications that will deliver the functions identified during systems analysis.

Programming is where system specifications that were prepared during the design stage are translated into software program code.  Testing must be conducted to ascertain whether the system produces the right results.  Testing can be broken down into three types of activities:  unit testing (testing each program separately in the system), system testing (tests the functioning of the information system as a whole), and acceptance testing (provides the final certification that the system is ready to be used in a production setting).  A test plan is then developed which includes all the preparations for the series of tests.  Conversion is the process of changing from the old system to the new system.  Four main conversion strategies can be employed.  These include the parallel strategy (both the old system and its potential replacement are run together for a time until everyone is assured that the new one functions correctly; it is the safest conversion approach), the direct cutover strategy (replaces the old system entirely with the new system on tan appointed day; it is a very risky approach), the pilot study strategy (introduces the new system to only a limited area of the organization), and the phased approach strategy (introduces the new system in stages, either by functions or by organizational units).  Documentation showing how the system works from both a technical and end-user standpoint is finalized during conversion time for use in training and everyday operations.

During the production stage, the system is reviewed by both users and technical specialists to determine how well it has met its original objectives and to decide whether any revisions or modifications are in order.  Once fine-tuned, the system must be maintained while it is in production to correct errors, meet requirements, or improve processing efficiency.  Maintenance is the changes in hardware, software, documentation, or procedures to a production system to correct errors, meet new requirements, or improve processing efficiency.  Maintenance is approximately 20 percent debugging or correcting emergency production problems, 20 percent concerned with changes in data, files, reports, hardware, or system software, and 60 percent consists of making user enhancements, improving documentation, and recoding system components for greater processing efficiency.

Structured methodologies and object-oriented development are two alternative methodologies for modeling and designing systems.  Structured methodologies are used to document, analyze, and design information systems, progressing from the highest, most abstract level to the lowest level of detail.  They are process-oriented, focusing primarily on modeling the processes, or actions that capture, store, manipulate, and distribute data as the data flow through a system.  This method separates data from processes.  The primary tool for representing a system’s component process and the flow of data between them is the data flow diagram.  It offers a logical graphic model of information flow, partitioning a system into modules that show manageable levels of detail, and it specifies the processes or transformations that occur within each module and the interfaces that exist between them.  Another tool is a data dictionary.  It defines the contents of data flows and data stores so that systems builders understand exactly what pieces of data they contain.  Also, software design is modeled using hierarchical structure charts, which is a top-down chart showing each level of design, its relationship to other levels, and its place in the overall design structure.

Object-oriented development uses the object as the basic unit of systems analysis and design.  It is based on the concepts of class and inheritance.  Objects belong to a certain class, or general categories of similar objects.  These classes are grouped into hierarchies in which a subclass inherits the attributes and methods from its superclass. 

Computer-aided software engineering (CASE) is the automation of step-by-step methodologies for software and systems development to reduce the amounts of repetitive work the developer needs to do.  CASE tools facilitate the creation of clear documentation and the coordination of team development efforts.  They enforce common methods and standards, which may discourage their use in situations where organizational discipline is lacking.

Alternative systems-building approaches have been developed to deal with the fact that systems differ in terms of their size and technological complexity and in terms of the organizational problems they are meant to solve.  Such approaches include the traditional systems life cycle, prototyping, application software packages, end-user development, and outsourcing. 

The systems life cycle is a phased approach to building a system, dividing systems development into formal stages.  It maintains a formal division of labor between end users and information system specialists.  It is used for building large complex systems that require a rigorous and formal requirements analysis, predefined specifications, and tight controls over the system-building process.  However, it can be costly, time-consuming, and inflexible.

Prototyping is the building an experimental system rapidly and inexpensively for end users to evaluate.  The process of building a preliminary design, trying it out, refining it, and trying again is known as an iterative process of systems development.  Prototyping is more explicitly iterative and it actively promotes system design changes.  The four steps of prototyping are to identify the user’s basic requirements, develop an initial prototype, use the prototype, and revise and enhance the prototype.  Once no more iterations are required, the approved prototype then becomes an operational prototype that furnishes the final specifications for the application.  Prototyping encourages intense end-user involvement throughout the systems development life cycle, however it can miss essential steps in systems development and may not easily accommodate large quantities of data or a large number of users in a production environment.

End-user development are types of information systems developed by end users with little or no formal assistance from technical specialists.  Fourth-generation languages make this possible.  These are software tools that enable end users to create reports or develop software applications with minimal or no technical assistance.  They tend to be nonprocedural, or less procedural, than conventional programming languages, which means they only specify what has to be accomplished rather than provide details about how to carry out the task.  End-user developed systems can be completed more rapidly than those developed through the conventional systems life cycle.  However, is poses organizational risks because it occurs outside of traditional mechanisms for information systems management and control, and when systems are created rapidly, testing and documentation may be inadequate.

Using software packages that are common to all business organizations can save a company time and money.  If the software package does not meet all requirements for an organization, it can be customized.  This feature allows a software package to be modified to meet an organization’s unique requirements without destroying the integrity of the packaged software.  If the package cannot be customized because the organization’s requirements conflict with the way the package works, then the organization will have to adapt to the package and change its procedures.

Outsourcing is contracting the applications development to external vendors.  Firms may use this if they do to want to use their internal resources to build or operate their information systems.  A company could also hire an external vendor to design and create the software for its system, but that company would operate the system on its own computers.  Outsourcing vendors may be domestic or in another country.  Domestic outsourcing is driven by the fact that outsourcing firms possess skills, resources, and assets that their clients do not have and it is often less expensive.  Offshore outsourcing is more cost-driven and many of these firms offer world-class technology assets and skills.

In order to keep up with the digital environment and respond to new opportunities, organizations need to be able to add, change, and retire their technology capabilities quickly.  Fast-cycle techniques such as rapid application development (RAD), joint application design (JAD), agile development, and reusable standardized software components allow them to do so.  RAD is the process for developing systems in a very short time period by using prototyping, fourth generation tools, and close teamwork among users and systems specialists.  JAD is the process to accelerate the generation of information requirements by having end users and information systems specialists work together in intensive interactive design sessions.  Agile development focuses on rapid delivery of working software by breaking a large project into a series of small subprojects that are completed in short periods of time using iteration and continuous feedback.  Component-based development enables a system to be built by assembling and integrating existing software components.  Web services can be used as tools for building new information system applications or enhancing existing systems.  They can perform certain functions on their own and they can engage other Web services to complete more complex transactions.

No comments:

Post a Comment