Having discussed outsourcing in the previous video, we now look at in-house developments of information systems. Creating the software package in-house is a step that is rarely taken. It is usually only done when there is an important or strategic reason to do so. This is because developing an entire system in-house requires significant resources. There are certain techniques used to develop softwares in-house.
One technique is prototyping which is useful when the business cannot clearly ascertain its needs and visualize the form of AIS to be used, as well as when there is a high likelihood for failure. Prototyping involves the programmers taking into consideration the basic needs of users to develop a prototype software. The user can then experiment with the prototype and return feedback to the programmers for modification until it meets requirements. The prototype may be developed into the fully functional final system used as specifications for application development or be discarded altogether. The benefits of prototyping are as follows.
Better definition of user needs
Higher user involvement
However, the high user involvement also means that users have to commit much time to test the prototype. The biggest problem with prototyping is that it risk getting trapped in a never ending cycle when users continually request for more, resulting in more and more iterations and never ending software development.
Another method of in-house development is using computer-aided software engineering, also known as CASE. This involves using software to help plan, analyse, design, program and maintain an information system. Note that the software does not code the entire system, but rather, aids the coding through managing project plans, assignments and scheduling. Let us do a short recap of ABC company. ABC’s current system is an ASP, which is suffering from issues relating to reliability and flexibility. After careful system analysis and development of the system, the company has concluded that the best method to resolve its problems would be to use two separate systems. Firstly, commercial off-the-shelf (COTS) system to handle the accounting and secondly, an in-house developed system to handle inventory management. As ABC’s core business relies on inventory availability and turnaround time to gain competitive advantage, it is best that the inventory management system be developed to meet ABC’s exact needs. Let us now head back to ABC company to view their additional meeting for an in-house software development.
The brief discussion between john and Abigail illustrates the system design phase of in-house development. System design is an important step for defining the features and characteristics which will satisfy both the businesses and system’s strategic needs as well as the users’ needs. System design involves all system components which include user views/external schemas, database organization which refers to the structure of relational databases, and the design of business processes and internal controls in relation to the capture, processing and data storage of transactions. Viewing AIS as a system which allows inputs, processing, storage, and output of data to support useful decision making, the system design phase may be broken down into these few components too.
Starting with an end in mind, we shall first examine what type of data should be drawn from the system and in what form they should be presented. This is termed as output design. Hence the business has to determine the nature, format, type, content and timing of data output. This thus results in these few categories of reports.
Scheduled reports which have a prescribed content and format and are produced on a regular basis
Demand reports which also have a prescribed content and format but only prepared on demand as the name suggests
Triggered exception reports which have a prescribed content and format but produced only when business activities occur beyond a specific control limit such as high absenteeism, security access breach by personnel, costs overrun and significant production
Special purpose analysis reports which do not have any prescribed content and format and are not prepared on a regular basis but in response to stakeholders’ requests to evaluate issues. Such reports are typically of strategic purpose and adhoc in nature.
Once the output design phase is completed, the business will be able to design the nature of its data storage in terms of:
Storage medium, for example whether to use the cloud storage or data servers
Processing mode, which refers to the manual, batch or real time processing mode
Acceptable simultaneous activity levels within each database, for example how many records can be added, edited, deleted by different users concurrently
Number of records that remain accessible before archival takes place
Processes for database maintenance
We shall first examine the input design which considers how each data type will be captured into the system. Examples of such consideration include:
Medium of data entry, whether by the web, flat file or some other medium
The format and type of data to be captured, whether it is date, numerical or text format
The nature of training to provide to users to ensure accurate and complete data entry
How errors can be detected and corrected
How much cost is incurred to implement the design of the input system
These considerations will determine how input forms and computer screens will be designed to promote efficient and effective data entry. As illustrated by Abigail and john earlier, their discussion revolved around:
How the screen should be organized to avoid clutter and to facilitate eye movement and attention focused on important data entry points
How related groups of data should be organized to ease logical correlation of data points and to facilitate logical algorithms to check and highlight errors
After determining the capture of data into the systems, the nature of their storage and the output from the system, the business can then design the systems program, procedures and controls which will work together to meet the need of input and output design.
The program design phase is the most time and resource consuming phase as it is highly dependent on the needs of the business and the stakeholders. Once stakeholders needs have been ascertained, program designers will create the development plan, code the system with programming language, test the program and make further modifications when necessary until such time when stakeholders’ needs are met.
Finally the design of procedures and internal controls must ensure the overall operational integrity of the systems program as well as the data input, output and storage activities. This relates to procedures surrounding the preparation of data for input, processing of transactions, detection and correction of errors, reconciliation of balances, access to database, preparation and distribution of output, and instructions for all users. With each business being unique, these procedures will exist in different combinations. Regardless of the manifestation, the internal controls to be considered must involve assuring the validity, accuracy and security of data, the appropriate authorization framework to be in place and the availability and maintainability of the system.
We have come to the end of our discussion about system design phase. In short, it involves the design of data inputs, output, storage and processing capabilities of the system together with procedures and internal controls in consideration. The design phase of any system demands time and effort. It is non-linear and highly iterative.
To conclude this section, the advantages of in-house development is the flexibility to be enjoyed by the business as the business controls the entire process of planning, acquiring the software and modifying the software to suit their needs. However, in-house development may require much time and if the company is inexperienced in software development, it may result in incorrect requirements, overly-complex software or development issues.
One important thing to note is that it is possible to have a combination of both outsourcing and in-house development. If the company has certain specific value chains that need a tailored support system, they may consider developing their own bolt on system. Moving back to ABC company, you may wonder, how would they integrate the accounting COTS system and the in-house software to ensure that data will all flow? This will be possible with the use of bolt on software to integrate various systems into one while providing for additional functionality. For commercial work systems, an essential work area involves the assessment of fit between the existing functionality and business process requirements. Areas of COTS which do not fit into the business will then have to be customized to meet the needs and requirements of the company.
We have now come to the end of the in-house development section. In subsequent videos, we will talk about system testing, conversion from the old system to the new and maintenance of the system.