Differences between Software Development and Information System Development

A. Definition of Software Development and Information System Development

Software development is the act of working to produce/create software. It refers to the activity of computer programming, which is the process of writing and maintaining the source code. In broader sense, software development includes all that is involved between the conceptions of the desired software through to the final manifestation of the software.

Software development may include research, new development, modification, reuse, re-engineering, maintenance, or any other activities that result in software products. It determines the requirements for a new computer-based function, and creating, obtaining and/or modifying one or more programs that performs that function. For larger software systems, usually developed by a team of people, some form of process is typically followed to guide the stages of production of the software.

Information System Development, or more often called as System Development, is defined as the activity to develop a computer based system for the purpose of improving the effectiveness and efficiency of that organization. It has to consider the capabilities of the information system to characterise the organization, its work systems, its people, and its development and implementation methodologies together determine the extent to which that purpose is achieved.

Therefore the connection between Software Development and Information System Development is that software development is part of system development. Software Development Information Systems is all activities carried out by a software development enterprise. It is important that the system development is well structured. One of the reasons is that along with the increase complexity of a system, the number of people required increases, thus the number of communication paths also increases. A higher probability of misunderstanding will be introduced. Further methodologies of system development are explained in part B below.

B. Information System Development Life Cycle

There are four most common defined and used system development life cycles models,

–          build and fix

–          waterfall,

–          spiral, and

–          recursive/parallel method.

All methods recognise four main elements or phase of system development and deployment, which are functional requirement or analysis, system design, system build, and system maintenance.

1. Build  and Fix. The build and fix model is not technically a life cycle model but represent the lack of one. This was the methodology typical of system development in the old days, when computers were expensive and people were cheap.

2. Waterfall

The waterfall model is a sequential development process, in which development is seen as flowing steadily downwards (like a waterfall) through the phases of requirements analysis, preliminary design, detailed design, implementation, testing (validation), integration, system testing, system rollout, and maintenance. The fundamental aspects of this model are that each step must be 100% completed before moving to the next step.

Picture 1.1. Waterfall Model

  1. Prototyping

The prototyping model is basically a non standalone methodology. It selects some portions from other methodologies depending on the requirement of the system development. It attempts to reduce project risk by breaking a project into smaller segments and providing more change flexibility.

Picture 1.2. Prototyping Model

  1. Spiral

The spiral model is the combination of prototyping and evolutionary system to primarily identify and evaluate risk and cost. This model divides the development activities into four quadrants: (a) Determine project objectives, (b) Evaluate the defined alternatives, (c) Develop a prototype, and (d) Re-evaluate and plan the next cycle.

Picture 1.2. Spiral Model

  1. Recursive/parallel

This model came from the idea that software is developed by applying work from all the major development cycle phases. The recursive/parallel model considers the ‘real’ way that expert system developers work and allows for more creativity by the object which at the end tends to smooth the process.

Picture 1.3. recursive/parallel model

References

  1. http://www.en.wikipedia.org/wiki/Software_development (accessed 11 July 2010)
  2. http://www.nekwib.org/survey-definitions.html (accessed 11 July 2010)
  3. Information systems development techniques and their application to the hydrologic database derivation application. http://cadswes.colorado.edu/PDF/RiverWare/DavidsonLV2002.pdf (accessed 12 July 2010)

Enterprise Resource Planning (ERP) and its implementation

A. Definition and Function of ERP

Enterprise Resource Planning or ERP is an integrated computer based system used to manage internal and external resources which includes tangible assets, financial, materials, and human resources. It functions to coordinate the information flow that parallels the physical flow of goods coming from raw materials to finished goods. With the increasing demand of more integrated chains throughout organizations, the use of ERP has optimised the value chain in a company.

ERP connects the components of business process through a logical transmission and sharing of common data within an integrated framework. These are done by converting transactional data to information and collate data for analysis that will support business decisions. There are few criteria that a system can be called ERP:

  • The system is integrated and has a real time operation. There are no periodic batch update
  • All applications should access one database to prevent multiple data
  • All modules should have the same appearance look
  • Users of the system should be able to access information without the need to contact IS department

B. Brief history of ERP

The name ERP was derived from MRP which stands for Material Requirement Planning and later to be changed to Manufacture Requirement Planning. MRP was an integrated computer system that coordinates the needs of production process links. Awareness of linking outside manufacturing area to have a more integrated system was started in 1990, when many companies were facing Y2K problems. The demand of ERP has been grown ever since.

It has been realised that capacity planning in manufacture should take into account the actual customers’ demand. Planning on the materials should also be based on customers’ behaviour in order to give more accurate preparation, resulting in faster lead time. ERP has also involved all functional departments related to production such as financial, human resources, marketing, and strategic management.

A famous example of ERP is SAP R/3 system, the largest ERP system seller in the world. SAP stands for System Applications and Products (in data processing). It was developed in Germany in 1972 by ex IBM programmers.

C. Implementation of ERP

With the growing demand of globalisation, the ERP system has more complexity to accommodate additional functionality. Therefore it will be more challenging to implement the system. Commonly, companies use third party vendor to provide services in ERP. A consulting team from the vendor normally include the services of (i) consulting, (ii) customisation and (iii) support. The activities normally derived from the services are selection process, planning, training, testing, implementing, and delivery to the end users.

  1. Length of Time. The length of time of ERP implementation in a company depends on business size, number of modules required, the extent of customisation needed, scope of change, and willingness of clients to take over the ownership of the system. Normal small business size may require 3-9 months, whilst big business size with high degree of customisation may take 1-2 years.
  2. Implementation phase. There are four phase in ERP implementation:
  • Preparation and Training phase. Implementation successfulness depends on organisational fit and contingency. It is therefore important to have a comprehensive preparation plan that covers: (i) Deciding the number of modules required, (ii) Deciding qualified power and key users from clients, (iii) The blueprint of the actual process, (iv) Master data preparation. Training must be delivered in the most effective ways to deliver the as many knowledge as possible from consultants to users. Best practice documents should be available and provided by vendors. The availability of best practices in pace has reduced risk by 71% of failed implementation.
  • Performance and Usefulness phase. Usefulness and the ease to use are primary drivers for clients to adopt new technology. Performance and usefulness are normally the standard benefits that vendors offer to their clients. Elements that are derived from this are better productivity, more job effectiveness, and the ease of doing the jobs.
  • Transition phase. Transition phase is the key factor of ERP implementation. By users’ perception, transition phase is very important. Transition must be carefully plan in a comprehensive ways to avoid bad experience and negative comments from users.
  • Maintenance phase. Maintenance work is substantial. It needs to be explained to users as the trade off for improved performance and usefulness.

3. Successful Factors. To ensure that ERP implementation is successful, there are few factors that companies must be aware of, such as:

  • Strong and communicated leadership
  • Open and honest communication between clients and vendors
  • Balanced and empowered implementation team

References

  1. http://en.wikipedia.org/wiki/Enterprise_resource_planning
  2. Subramanian, G., and A. Peslak. 2010. USER PERCEPTION DIFFERENCES IN ENTERPRISE RESOURCE PLANNING IMPLEMENTATIONS. The Journal of Computer Information Systems 50, no. 3, (April 1): 130-138.  http://www.proquest.com/ (accessed 11 July, 2010).

Urgency of Software Maintainability

Within time, software systems will deteriorate and changes will be required. It is one of the very goals from software architects to build systems that are understandable and maintainable. Software maintainability is the ability of a computer program to be retained in its original form, and to be restored to that form in case of a failure. Typical enterprise business application spends at least 80% of its time in maintenance. Producing software that is easy to maintain may potentially save large costs.

Few main reasons why is it important to have software maintainability in place are:

  1. Software Deterioration. Although software exists in digital form which is not subjected to decay, software must still adapt when the environment of the system is changing. Software deteriorates as it ages and is being maintained.
  2. Defect Fixing. A common situation when software was about to go from development to production implementation.
  3. New business requirements. The stage of system development can experience changes in clients’ requirement which leads to requirement changes in the software development once it goes into production.
  4. Architecture-Level. It is likely that in future more and more software is built from different components. Therefore it is important to prepare and estimate the maintainability on the early architectural level.
  5. Changes to the software’s execution context. This refers to the hardware and other software required for a business application to run. The context includes items such as operating system, database, application/web server, programming libraries, and network.

It is important to plan the maintainability estimation in early stage of software development. Maintainability sometimes increases or decreases. In order to keep the traceability, it is advised to use waterfall development methodology with the requirements fixed up front in the requirements phase. In this way, clients will have a backlog of changes, which makes the software traceable. It is important that the maintainability of the software is kept with minimal risk and impact to existing users. Research that highlight the important of measuring software maintainability is spreading which is emphasised more the urgency of software maintainability.

References

  1. http://www.businessdictionary.com/definition/software-maintainability.html (accessed 12 July 2010)
  2. Measurements of Software Maintainability. http://www.artes.uu.se/events/gsconf02/papers/Land_Maintainability.pdf (accessed 12 July 2010)
  3. The Importance of Maintaibable Software. http://www.basilv.com/psd/blog/2006/the-importance-of-maintainable-software (accessed 12 July 2010)

Phenomenon of System Conversion in Organisation

A. Company Fatal Mistakes in Handling System Conversion

A company can easily request third party or a vendor to do the system change. However it is important to note that the ownership of the system is still the company itself. The decision to invest in new software and the selection of a particular package are the easiest part of the process. Top managements have often underestimated the function of a Records and Information Management (RIM) system, which later will result in the disaster of system implementation. Software solution should also aim at systematic creation of organisational learning that is adding to the knowledge structures of employees in the company.

Few common pitfalls from companies in converting the new systems are:

  • Inadequate training and testing
  • Incomplete or inappropriate data set up
  • Suitable procedures not established for new system
  • Inaccurate file conversions
  • Users unfamiliar with key reports and sources of information
  • Inventory control and stock handling discipline not implemented
  • Credit card transmissions not established
  • Options not set appropriately
  • Not prepared to handle exceptions
  • Inoperative hardware components and data communications

The bottom line is that organization must do a proper knowledge management in conversion of their system. One of the main roles of information technology in knowledge management programs is to accelerate the speed of knowledge transfer and creation. The knowledge management tools intend to help the processes of collecting and organizing the knowledge of groups of individuals in order to make this knowledge available in a shared base. Technology vendors are developing different implementations of the knowledge management concepts in their software products.

B. Type of System Conversion

When the development of a system will replace or improve a current system, a conversion process will be needed.  Conversion methods are used for managing system change and managing both the cost and risk associated with a failure of the new system.

Four major forms of system conversion are common:

  1. Parallel.  This involves operating both the old and the new system at the same time for some period until the project development team and end user management agree to switch over completely to the new system. This is the least risky approach but the most costly, since resources must be used to keep both the new and old system operational.
  2. Pilot.  Here one department or often an off-site office gives the new system a trial run to see how it works and to catch any problems before the system is implemented company-wide. This is a less costly approach.  Risk of failure is isolated to the department or office which receives the new system.
  3. Phased.  Here the new system is implemented gradually throughout the organization according to some diffusion plan, such as department by department, section by section, or even floor by floor.  This approach exposes the organization to more risk, but is less costly.
  4. Plunge.  This “cold turkey” approach ends use of the old system and begins use of the new system all at once.  This approach has the highest risk, but is the least costly to implement. Can be considered for non-critical applications, or application improvements that are marginal.

References

  1. Carvalho, Rodrigo Baroni and Ferreira, Marta A.T. 2001. Using information technology to support knowledge conversion process. Information Research, Vol. 7 No.1, October 2001. http://informationr.net/ir/7-1/paper118.html (accessed 12 July 2010)
  2. Kuipers, William.  1995. Surviving a system conversion. Catalog Age, March 1, 67.  http://www.proquest.com/ (accessed 12 July 2010)
  3. O’Brien, James A. 2002. Introduction to Information Systems, 11th edition. McGraw-Hill. New York.

Differences between Software Development and Information System Development

A. Definition of Software Development and Information System Development

Software development is the act of working to produce/create software. It refers to the activity of computer programming, which is the process of writing and maintaining the source code. In broader sense, software development includes all that is involved between the conceptions of the desired software through to the final manifestation of the software.

Software development may include research, new development, modification, reuse, re-engineering, maintenance, or any other activities that result in software products. It determines the requirements for a new computer-based function, and creating, obtaining and/or modifying one or more programs that performs that function. For larger software systems, usually developed by a team of people, some form of process is typically followed to guide the stages of production of the software.

Information System Development, or more often called as System Development, is defined as the activity to develop a computer based system for the purpose of improving the effectiveness and efficiency of that organization. It has to consider the capabilities of the information system to characterise the organization, its work systems, its people, and its development and implementation methodologies together determine the extent to which that purpose is achieved.

Therefore the connection between Software Development and Information System Development is that software development is part of system development. Software Development Information Systems is all activities carried out by a software development enterprise. It is important that the system development is well structured. One of the reasons is that along with the increase complexity of a system, the number of people required increases, thus the number of communication paths also increases. A higher probability of misunderstanding will be introduced. Further methodologies of system development are explained in part B below.

B. Information System Development Life Cycle

There are four most common defined and used system development life cycles models,

  • build and fix
  • waterfall,
  • spiral, and
  • recursive/parallel method.

All methods recognise four main elements or phase of system development and deployment, which are functional requirement or analysis, system design, system build, and system maintenance.

  1. Build  and Fix. The build and fix model is not technically a life cycle model but represent the lack of one. This was the methodology typical of system development in the old days, when computers were expensive and people were cheap.
  2. Waterfall. The waterfall model is a sequential development process, in which development is seen as flowing steadily downwards (like a waterfall) through the phases of requirements analysis, preliminary design, detailed design, implementation, testing (validation), integration, system testing, system rollout, and maintenance. The fundamental aspects of this model are that each step must be 100% completed before moving to the next step.
  3. Prototyping. The prototyping model is basically a non standalone methodology. It selects some portions from other methodologies depending on the requirement of the system development. It attempts to reduce project risk by breaking a project into smaller segments and providing more change flexibility.
  4. Spiral. The spiral model is the combination of prototyping and evolutionary system to primarily identify and evaluate risk and cost. This model divides the development activities into four quadrants: (a) Determine project objectives, (b) Evaluate the defined alternatives, (c) Develop a prototype, and (d) Re-evaluate and plan the next cycle.
  5. Recursive/parallel. This model came from the idea that software is developed by applying work from all the major development cycle phases. The recursive/parallel model considers the ‘real’ way that expert system developers work and allows for more creativity by the object which at the end tends to smooth the process.

References

  1. http://www.en.wikipedia.org/wiki/Software_development (accessed 11 July 2010)
  2. http://www.nekwib.org/survey-definitions.html (accessed 11 July 2010)
  3. Information systems development techniques and their application to the hydrologic database derivation application. http://cadswes.colorado.edu/PDF/RiverWare/DavidsonLV2002.pdf (accessed 12 July 2010)
Skip to toolbar