Alternative System Building Approaches

What is Alternative System Development/Building Approaches ?


Systems differ in terms of their size and technological complexity and in terms of the organizational problems they are meant to solve. A number of systems building approaches have been developed to deal with these differences. This section describes these alternative methods which are RAD Model, prototyping, application software packages, end-user development and outsourcing.

Alternative Systems Building Methods


There are five different system development approaches in MIS are as below :

Different Types of System Development Methodology

Prototyping


prototype is a working model of system product, usually built for demonstration purpose and helps in understanding that how easy or difficult the implementation would be, when changes will happen in the software product.

Prototyping helps in developing use-case modelling. The main reason of making a prototype is to design system according to the user's need. In this, a developer can test and refine user interface and increase functionality of a system. Prototyping must involve all groups of people who are affected by the implementation of the new system. This includes the end users and management members which determine whether the structure of the prototype is able to meet the requirements for the overall design or not. The reasons for the prototype review are as follows :
  • To show that the prototype has been developed keeping in mind the specification and to conclude that the final specification is correct.
  • To check the errors and user interface problems that should be identified in the intermediate prototype phase. 
  • To give first look to the management and everyone involved with new system, about what the new technology can do.
Prototyping is a useful exercise at any stage of system development. It works simultaneously with preparation of functional specification. It is a model of the 'real' proposed system (working model) under analysis. For example, systems like food ordering system at a restaurant and air traffic control system of an airport. Prototyping is a methodology in itself which can take many forms and can be paper-based or computer based. The prototype can be built with real data or with sample data.

Activities in Prototyping


Requirement gathering is the basis of prototyping concept. Various activities of prototyping are listed as under :

Prototyping Paradigm

Step 1 :
In the first step, developer and customer schedule a meeting and define the overall objectives for the software. They also identify the known requirements and note down the uncertain areas.

Step 2 :
Customer shows a "quick design" which focuses on the input approaches, output formats, etc. 

Step 3 :
A prototype is constructed.

Step 4 : 
The prototype is reviewed by the customer/user and further refining is done to the software being developed.

Step 5 :
Iteration occurs until prototype does not satisfy customer needs and simultaneously enables the developer to understand the user requirements.

Conditions for Using Prototyping Model


Various conditions of using prototyping are as follows : 

1) Unclear Requirements :
Prototyping is most effective in projects where requirements are not clearly understood and confidence in gathered information is low. In such cases, if the waterfall model is used then it freezes the requirements so developers cannot continue the development. Any change brings about reworking at the time of development. Once a prototype is built and tested, then requirements become more understandable and stable.

2) Complicated and Large Systems :
Prototyping also suits large and complex systems for which there are no manual guidelines or existing system for requirement gathering.

3) Illustration of User Interface :
Prototyping aids in providing a clear picture of the input data formats, messages, reports and the interactive dialogues to the customer. This helps in understanding of user requirements well and later in designing the UID (User Interface Design). 

4) Unclear Solutions :
Sometimes, technical solutions seem ambiguous to the development team. At these times, building of a prototype provides an opportunity to engineers to critically examine all the technical concerns pertaining to the product development. 

5) Throw-away Plans :
In order to develop a good product, one must develop a dummy first to determine what defects can come up. This can be rectified later to come up with a quality product.

Advantages of Prototyping Model


  • As prototyping requires an intensive involvement by the users, it provides better definition of the users needs and requirements as compared to traditional system development approach.
  • In prototyping, a very short time span, like a week, is enough for development of a prototype model, which allow users to immediately examine the proposed changes. In contrast, when traditional system development approach is adopted, it may take a period of a year longer, before users can examine the changes of new system.
  • As the users evaluate each version of prototype via an interactive process, errors are detected and removed early in the development process. This leads to the development of a reliable and less costly systems compared to traditional systems development approach.

Disadvantages of Prototyping Model 


  • Prototyping will only be successful if users devote enough time to test the prototype and provide suggestions for change to the developers. 
  • Practically, this methodology can increase the system complexity because system can be extended beyond the scope of original document. 
  • Very difficult to integrate.

Rapid Application Development (RAD) Model


Rapid Application Development (RAD) is a software process model where the developments are carried out incrementally. The model gives importance to short development cycle. The RAD can be called an improvement of the waterfall model. Here the phases are carried out at a very high speed. In this component based construction approach is used to achieve the fast development.

The development team is able to come up with a system that is fully functional in nature within a very small time period using the RAD model. This is done in case the scope of the project is constrained and the requirements are well defined.

Rapid Application Development (RAD) Model

With the help of communication it is possible to understand the characteristics of the information and the problems that the software should address. More than team work in parallel on different functions of the system, it is very important to carry out planning. 
Following are the three major phases in the modeling process which are the basis of RAD's construction activity :
  1. Business Modeling
  2. Process Modeling
  3. Data Modeling
The construction activity in RAD is carried out on the basis of these design representations. Emphasis is given on the automatic code generation and pre-existing software components in the construction process. At the end system is deployed which forms the basis of future iterations. The time constraint that is enforced on a project built with RAD model should have scalable scope

Contents of Rapid Application Development (RAD) Package


1) Graphical User Development Environment : 
Just by using the drag and drop facility it is possible to create many objects related to the application.

2) Reusable Components : 
There is a library that contains dialog boxes, buttons, etc. (standard objects) which can be used by drag and drop.

3) Code Generator : 
The code for a particular component is written automatically in the application package after it has been dragged and dropped.

4) Programming Language : 
Visual Basic and C++ are some of the popular languages used in the package which is generally an Integrated Development Environment which allows creating, testing, and debugging the code.

Advantages of Rapid Application Development


1) Fast Product Output : 
Using this approach certain projects can be produced earlier than other approaches. 

2) Efficient Documentation : 
Whenever a project task is completed the documentation is generated as a by product.

3) Interaction with User : 
The stakeholders and users are able to interact a lot and carry out teamwork in the RAD process.

Disadvantages of Rapid Application Development (RAD)


1) Requirement of Live-ware Support : 
In RAD model enough human resource is required to build the required number of teams in case the project is large and scalable.

2) User may not like Fast Activities : 
The RAD model fails in case the customer and developer do not show commitment to complete the project within a short time period. 

3) Problematic Outputs : 
It will be difficult to build the components required for the RAD process in case the whole system cannot be divided properly.

4) Lack of Tuning between Interface and System Components : 
The RAD approach may fail to work in case the aim is to achieve high performance by tuning the interfaces of the components that make up the system.

5) Not Suitable for Technical Risks : 
In case there are high technical risks the RAD model will fail. For example, use of new technology in the application.

End User Development


End user development can be defined as the construction of the information system from the perspective of the user. The end-users can develop some systems with no or very little assistance from the specialists. This methodology is known as end-user development. This can be made possible with the help of software tools known as fourth-generation languages Using these tools the end-users are able to generate reports or design software applications without or very little help from the technical experts. The professional programmers can also enhance their productivity using these tools.

Compared to the conventional programming languages the fourth generation languages are less procedural or fully non-procedural. In case the procedural languages are to be used it is necessary to specify the steps how to be done one after another. The computer is told what to do and how to do. On the other hand it is only necessary to say what has to be done rather than saying how to be done when non-procedural languages are being used. There are seven types of fourth-generation languages which have been shown in table. In the table the tools have been shown in order as they are used by the users who are non-programmers. They mostly use query languages and PC software tools.

Compared to the conventional life cycle models it is possible to develop systems faster if the end users develop the system. The users are able to involve more with the system and are much more satisfied if they are able to specify the business requirements. This also improves the process of requirements gathering.

There are various risks associated with the end-user development process because they are not managed and controlled in the way traditional information systems are done. The documentation and testing may not be up to the mark when the systems are created using an informal development methodology. If the systems are outside the traditional information systems department the control over the data can be lost. Thus, it becomes necessary to control the developments done by the end users so that maximum benefits can be obtained from the applications that have been developed by the end users. This can be done by establishing standards regarding software, hardware and quality for the applications developed by the end users. This will also help in achieving cost justification. 

Categories of Fourth Generation Language

Fourth Generation Tool

Description

 

For Example

 

PC Software Tools

General-purpose application software packages for PCs.

WordPerfect, Microsoft Access

 

 

Query Language

Data retrieval languages to access data kept in files or databases. They support information requests that have not been pre-defined.

SQL

 

Report Generator

 

Wide variety of customized reports in different formats can be created which are not generally produced by an information system.

Compared to the query languages more control is gained over the organisation and formatting of data.

Crystal Reports

 

Graphics Language

 

Displaying of data from databases or files in the graphical format. There are some graphic software that have the ability to perform logical or arithmetic operations.

SAS Graph System

 

 

Application Generator

 

The development process can be speedup by using the modules that are pre-programmed and are capable to generate entire websites or applications. What has to be done is specified by the user. Appropriate code for various operations of the application such as input, update, validate, reporting and processing is generated.

FOCUS Microsoft FrontPage

 

Application Software Package

The need of in-house and custom-written software can be eliminated by buying or leasing software programs from commercial vendors.

Oracle Peoplesoft HCM mySAP ERP

 

 

Very High Level Programming Language

Compared to conventional languages like FORTAN or COBOL the program generated has fewer instructions.. They are mainly designed to serve as productivity tools for professional programmers.

APL Nomad2

 




Application Software Packages


During the last years the foundation of application software packages has been used to build many systems. There are few applications such as inventory control, payroll, general ledger or accounts receivable which are common to almost every business application. As these functions are standard in nature and remain same over a long time period a general system can be designed to meet the organisational requirements.

An organisation does not have to build a custom software if some package is available that can fulfill most of its requirements. A lot of time and money can be saved if the company uses such software which is pre-designed, written, and tested. The vendor who is selling the package provides support and maintenance services. Enhancements are also carried out to include the recent business and technical developments.

There are provisions for customization in many packages in case the organisation has some unique requirements that the software does not addresses. With the help of the customization feature it is possible to modify the package in such a manner that the unique requirements can be made without disintegrating the software. However, the advantages of the software packages are diminished in case a lot of customization has to be carried out in the software, the work might take a lot a time and consume significant amount of money.

There has to be an effort for evaluating the package in the system analysis phase in case the system is being developed with the help of an application software package. Some of the factors that are considered for carrying out the evaluation of the package are cost, documentation, database requirements, user friendliness, hardware and software resources, flexibility, installation and maintenance efforts and vendor quality. A Request for Proposal (RFP) is used to carry out the package evaluation process. It is a set of questions that is asked to the vendor who is selling the software package.

There is no control over the process of designing the system when the software package has been selected. In such a situation the requirements of the user are changed in such a manner that they can be supported by the features provided by the package as the design specifications of the system cannot be customized. In case there is conflict between the features of the package and the requirements of the organisation then it becomes necessary to change the operations and adapt to the change.

Advantages of Application Software Packages 


1) Lower Costs : 
The costs of the application package are shared among a number of users who are buying the package.

2) Increased Functional Power : 
The software keeps on getting powerful as more and more features are added continuously to accommodate. the requirements of a large number of users.

3) Increased Quality : 
A large number of users share the quality and testing measures. It becomes possible to test the operation of the software in real conditions as the software is being used by a lot of people. Defects are solved at an earlier stage as they are identified at a very initial stage of the life cycle.

4) Better Use of Specialized Knowledge : 
With the help of package software, specialized knowledge can be shared in an efficient way among large number of users.

5) Easier Compliance with Standards : 
To achieve this organisation has to acquire a software that meets the set standards.

6) Speed of Acquisition of Software : 
If the software is acquired externally then the acquisition time can be reduced as compared to in-house development.

Disadvantages of Application Software Packages 


1) Not Provides Competitive Advantage : 
Even the competitors might be using the same system.

2) Mismatch of Requirements : 
There will be some amount of mismatches between the offered features and what is required by the users.

3) Dependence : 
The organisation might face risks if they depend on the external supplier for implementation and testing the enhancements and changes. This is because requirements of the clients and market might drive the business objectives of the supplier.

4) Black box :
Reverse engineering processes cannot be applied on the code as only the interfaces of the software are documented.

5) Lack of Long Term Support :
Missing of long term agreements.

Outsourcing


If appropriately used, then outsourcing is an effective cost saving technique for performing various functions of any organisation. Sometime it is more reasonable to buy a good from organisations with relative benefits, than it is to produce the good internally. Outsourcing is a process of transfer of the whole industry function to an outside service provider. In this process organization (acts as client) and supplier agree on a contract, which explains about the transferred services and expenses.

In current business scenario by outsourcing, organisations outsource suppliers, even outside to the nation. Sometime it also referred as off shoring or offshore outsourcing. A few associated terms have developed to handle different parts of the complex relationship between outsourcing associations or systems, for example, near-shoring, multi-sourcing and vital outsourcing.

Outsourcing is popular trend followed by various IT and other industries for the facilities that are commonly regarded as intrinsic to running an organisation. Sometimes the complete information management of an organisation is outsourced together with planning and business analysis, installation, servicing of the network, administration and workstation.

Reasons for Using Outsourcing


People's desire to avoid administrative burdens and to work in strategic manner is compelling them to work in the ITES. Various other reasons responsible for outsourcing are explained below :

1) Reduce Costs : 
The reasons such as poor financial position, aim of increasing profits are responsible for reducing costs. In some situation, supplier can also assist in cost reduction.

2) Focus on Core Functions : 
The core functions are very less in number among the various functions being performed in the company. The company wishes to transfer the key or core functions to the trained and efficient people (who can accomplish the task efficiently).

3) Acquire New Skills : 
The number of highly technically skilled people is less, so in order to perform the tasks related to the engineering and computer services, the company needs outsourcing.

4) Acquire Better Management : 
The management support is not proper which leads to failure in the fulfillment of expected performance levels. So, to attain better management level, negative aspects such as high turnover, absenteeism, poor work products and missed deadlines should be minimized.

5) Assist a Fast Growth Situation : 
The role of management team is very important in raising any company. Hence, the responsibilities increase with the increase in workload. The supplier can play a major role in managing the workload which will allow the company to concentrate on the core functions. For example, the customer support functions are outsourced to a supplier (having trained staff and phone line for handling incoming calls) in case the company is at its peak situation.

6) Avoid Labour Problems : 
In case of having shortage of labour, the company should adopt outsourcing to maintain the productivity and performance level. To overcome this situation, the companies utilize the infrastructure, manpower and facilities of the suppliers and themselves focus on the methods to get more business or doing marketing.

7) Focus on Strategy : 
The main area to focus is strategy. The higher authorities such as managers should emphasize more on functional operations and tactical job aspects. The company can be i more focused towards strategic development areas (such as market positioning, new product development, acquisition and long-term financing issues) if the company outsources the tactical jobs where core team is present in the company.

8) Avoid Major Investments : 
In absence of proper amount of investment in the company, the function may not be as effective as it could be. The company does not outsource the in-house functions which will cause major investments for modernizing it. The only way to avoid these major investments is outsourcing. For example, the supplier will provide upgraded fleet to company, if the transportation activity is outsourced and the fleet has been sold to the supplier by the ageing transportation fleet company.

9) Handle Overflow Situations : 
In few situations, the functions are overloaded. To tackle such a situation, the retaining of supplier will be a wise step. The supplier will handle the overburdened function which the in-house staff is unable to perform. This will be fruitful as the situation of overflow or overburden occurs once in a while, not regularly.

10) Improve Flexibility : 
In this case, the supplier is handed-over with the while function and not must the over-flooded business. To cut the extra cost and handle the over-burdened task, the idea of outsourcing is very helpful. In this case, only the actual work done will be paid. Here arises the case of conversion of fixed cost into variable cost, which swings with the amount of work done.

11) Improve Ratios : 
Not in every case the function is outsourced to lessen the burden; many times it is done for quality enhancement of the function. For example, the company's return on assets will be increased by the outsourcing of a function in which assets are handed-over to the supplier. Functions of maintenance, manufacturing and computer services Improve the ratio. Profitability per person is another ratio which can be improved. The ratio can also be improved if the functions like manufacturing or sales (where a large number of employees) required are transferred to the supplier.

12) Jump on to the Bandwagon : 
Generally, just by following the trend, the companies outsource the functions. This trend will give an impression that the companies not following the trend of outsourcing will fail in accomplishing their goals.

13) Enhance Credibility : 
Outsourcing is also used for marketing purpose by the small companies. The marketing will enhance the company's credibility as the suppliers having a positive impact on customers while be doing the marketing. Hence, the customers will be assured of the quality. This will increase the demand of the suppliers having better market grip because the marketing will be deciding the future of the company in the market. The other ways to increase the market area are involving the suppliers with the company while dealing with the customers face-to-face or conducting any workshop for them to let them know more about the company.

14) Maintain Old Functions : 
In case, a company is transitioning to new technology or to a new location and the current in-house staff fails to maintain its old functions then the only option left will be outsourcing. The old function will be well maintained by the suppliers and the company can concentrate on the new function. For example, in computer services, the in-house staff is busy with working on the new computer system while the old "legacy" is transferred to the suppliers.

15) Improve Performance : 
The performance of the company may not be up to the mark and the costs may be bloated then the function is puts for bidding. In the bidding process, the internal members are also included. Both the in-house staff's and the outside suppliers bid are compared. The suppliers should be taken into the confidence that the process of bidding is fair, to avoid any further disputes. This will be applicable to each functional area.

16) Begin a Strategic Initiative : 
The choice of opting for in case of entire company's re-organisation may prove to be a very surprising step. This will also help in making in-house employees serious regarding the transformation of the company to the new company structure and they will be more focused towards carrying out the changes.

Problems for Companies Doing Outsourcing 


1) Limited Economics of Scale : 
Outsourcers may be able to negotiate for higher discounts on resources like hardware, etc.

2) Staffing : 
Companies have typically former employees, whereas in outsourcing highly skilled vendor staff is available for service.

3) Lack of Business Expertise : 
The companies may lose the former employees who are technically skilled.

4) Contract Problems : 
Normally customers are not able to properly specify their requirements initially which may lead to problems at later stage.

5) Internal Cost Reduction Opportunities : 
Organizations can reduce costs by improving their own IT management work style.

Guidelines for Outsourcing


1) Short Period Contracts : 
In IT industry the companies should opt for short term contracts because technology, user requirements, and business methodologies changes very rapidly.

2) Subcontracting : 
Vendors subcontracts some processes to other vendors. These contracts should be in such a way that it gives control over choice of vendors and conditions of subcontract.

3) Selective Outsourcing : 
Selective outsourcing is suitable for those companies who want to outsource only some limited processes.