Chapter 5 System Development | 129
Chapter 5 Development “Knowledge is experience…everything else is just information.” Albert Einstein
Developing the Information System Information technology is significantly changing the development environment. In recent years, rapid advances in hardware, software and communications technologies have yielded increases in productivity and effectiveness for office personnel, particularly in the areas of information collection and reporting. Depending on the size of the Project, using technology to speed up the information-management process may be useful. Using technology is not an end to itself, but a tool to help the automatization of a well-designed process. The use of technology can assist in the data-capture, storage and distribution of information to all stakeholders, but the analysis remains in the hands of the people involved in the project. Selecting the right technology for the right job is not an easy task. The project needs to evaluate the right “doses” of technology that will help the project. Too much technology can actually hinder the project’s ability to operate efficiently, and instead of working with technology the project ends up working for technology. Computers are efficient in managing large amounts of data and producing reports, and can help M&E by organizing the information and presenting the results quickly for the project to make decisions. Deciding to use technology to automate the PIMS process should not be done until the information man-
130 | Project Information Management Systems for Development Organizations
agement process is well defined. If the process is not working then technology will not help at all; on the contrary, it may add more problems, and staff may feel the culprit is the technology and not the process.
Deciding to Computerize PIMS The size and complexity of the project will define the level of technology that can be implemented. Use of technology is not a necessary element for all work in the project. The use of computers can assist in the organization of information, but at the end, it is the project members who are in charge of the analysis and use of the information processed by technology. When deciding to computerize the PIMS, take in consideration the following questions: Do all project staff and partners have adequate skills to use computers? How much it will take to train staff to the desired level? What are the manual processes that technology will help in the project? If the process is simple, then a complex database system may not be needed at all. Do all project locations have good access to technical support? What would be the cost of the support to maintain and fix the computers? The purpose of having a computerized PIMS is to facilitate and expedite the handling of large amounts of information. Before the project decides to computerize PIMS, a careful analysis should be made on the information management requirements. The computer will not be of any help if the project team doesn’t have a good grasp of what is needed; adding technology for technology’s sake will not help.
Technology Related Issues Although the use of technology can have significant advantages to a project, it should not be viewed as a one-stop solution or a way to solve other nontechnical related problems. The project team needs to carefully consider the type and complexity of its information-management needs to decide the level and complexity of the technology solutions. It can be quite easy for project team to implement a complex system without first understanding the challenges of using and supporting the technology.
Chapter 5 Managing the Information| 131
When making technology-related decisions, the following activities should be conducted: Perform a cost/benefit analysis of the technology Identify the level of resources available to the project for technology (both monetary and human resources) Review the types of technology or technological services available to meet the needs of the project Seek best practices from other comparable projects Human resources are required to maintain information systems. Obviously, programming and technical resources are required to install the hardware and software. However, a system is only as effective as the people who use it. Accurate work-flow design, development of policies and procedures, and adequate training are vital for a successful implementation. Some key elements to remember are: Do not automate an existing work flow without reviewing other alternatives. Often, the implementation of a new system provides an opportunity to evaluate and modify processes, policies and procedures. Get input from the eventual end users of the system during the design or package-selection phase of the project. This step is beneficial for several reasons. First, people generally fear change; it is important for end users to feel involved in the process to make change happen. Second, informal work patterns develop over time. Recognize that they exist and incorporate them into the new system. Develop detailed technical and user documentation, including workflow policies and procedures. Information systems generally have a life-span of five years. Because the information is an on-going process, user documentation and on-going training is important because of new hires and staff turnover. Train staff as close to implementation as possible; people tend to forget systems training if it is done too far in advance of their actually working on the system.
132 | Project Information Management Systems for Development Organizations
Developing a Technology Solution One of the most critical steps in developing an automated PIMS is the development of a software\hardware solution that will meet all the information-management requirements. For most projects and development organizations, the options are configuring a commercial package or developing a customized solution from scratch. Configuring a commercial package means, in most cases, that the selected product will not be able to meet certain requirements, and that the project will need to use a careful identification and selection process to choose the system that finds most of its needs and other methods (or tools) to fill in the gaps. In other instances, the project manager may decide to contract a consultant to develop customized solutions that can meet all of the requirements. Here is a list of the advantages and disadvantages of both approaches:
Configured Solution Advantages
Disadvantages
The least time required to get a PIMS in the project Supported by a company that has expe- rience and a customer base The system can be licensed per user or per time to reduce costs
May not meet all requirements Difficult to modify for future needs May require third-party tools to fill in the requirements gaps The project doesn’t own the code
Customized Solution Advantages
Disadvantages
Meets most if not all of the requirements Adaptable to future needs of the project The project owns the code
Expensive if requirements are large Costly to own the code Dependency on the consultant to make any future modifications
Whatever approach the project decides to take, it should take into consideration the development of a very detailed statement of work document that will describe the work a system analyst or software developer should make in order to deliver a solution that meets all requirements. One method is to hire an external consultant, usually a company with a good history of devel-
Chapter 5 Managing the Information| 133
oping similar systems in the past who will bid for the contract. The usual approach is to develop a request for proposal (RFP) that will detail the scope of work (SOW) the consultant of a system developer will do. Here is a list of the basic content a good RFP should contain: A description of the project, its objectives and the type of environment the consultant will work in. A description of how the system (PIMS) will be used in the project, and how the system will help the project achieve its objectives. A description of the project environment, number of users, technical environment, level of experience in the number of similar systems, number of PCs, access to the Internet, type of network, level of IT support the project will have, and any other technical information that will help the consultant design the system. A list of the critical functionality the system should have, such as data management, reports, security, controls, calculations, and any other functionality the project needs from the system. A list of requirements to include in the proposal, such as time to develop the system, total development costs, method used by the consultant to develop the system, fees for support and system maintenance, code ownership. A list of administrative instructions such as date to send the proposal, format of the proposal, consultant experience, references, place to send the proposals ( hard copies or electronic copies), and expected date when a decision will be announced.
The System Development Life Cycle The System Development Life Cycle (SDLC) is a logical process used by a system developer or software consultant to develop an information system; it details the steps for gathering requirements, analysis, design, development, test, training, and user ownership. The goal of a good SDLC it to produce a high-quality system that meets or exceeds the expectation of the users, reaches completion within time and cost estimates, and manages work in an effective and efficient manner. The project manager or development organization should have a basic understanding of this methodology to ensure that the development of the PIMS
134 | Project Information Management Systems for Development Organizations
follows the basic steps to ensure the solution develop meets the requirements and achieves its stated goals. The SDLC consist usually of seven basic steps: System requirements: in this step, the consultant gathers all the functional and technical requirements for the system, including descriptions about what the system should do; the consultant will interview the project team and other stakeholders who will either use the system or receive information from the system. The consultant then analyzes the requirements to identify which approach to use in the development of the system. This may include making decisions about the use of development tools, reviewing initial estimates and identifying constraints. System Design: here the consultant will develop a design of what the system will look like. Development of plans concerning the software development, hardware, operating systems, programming languages, communications, and security issues are presented to the project for approval. The goal is to ensure that the design meets all the requirements before any work is done. System development: in this step, the consultant develops the system, builds all the software code, test the functionality, and resolves any issues caused by errors in the code. Test the solution: the users will test the system and will ensure that all the required functionality is working according to the specifications. Once the system passes the users' test, the solution is ready for deployment. User training: includes training of all system users; this is a detailed training to ensure all users have the knowledge to use the system, including procedures, controls and security policies established by the project. System deployment: the system is now ready for use by the project; the system is installed in the final place, and access is given to all authorized users who have either access the data or access to reports. Once the new system is up and running for a while, it should be exhaustively evaluated, and users of the system should be kept up-to-date concerning the latest modifications and procedures. The team should continuously monitor the performance of the system against the expected parameters. Any changes
Chapter 5 Managing the Information| 135
in performance should be notified to the software developer for fixes or changes to the software code or even improvements in the hardware and network configurations. The SDLC follows a circular method to manage the different process steps: System Requirements
Deploy Solution
Design of Solution
SDLC Development of Solution
User Training
Test the Solution
Figure 27 The SDLC Cycle
This cycle can be repeated after each development phase. It is a good practice to breakdown the development of a complex system into manageable phases; that way the project team has the time to learn and use the system and move into functionality that is more complex. After the first phase is completed and the project team has had enough practice with the system, the project can start a new phase of the cycle with new requirements and additional functionality to meet new needs. This cycle approach reduces the risks associated with developing information-management systems, allows a gradual acceptance and use of the system by the project, the organization and stakeholders. However, it ensures the ownership of the system as a tool to help the project manage its information, and generate the required reports and analysis to ensure the project is on track.
136 | Project Information Management Systems for Development Organizations
The use of the cycle is useful for simple systems that will not require exhaustive controls and modifications during its development. For complex systems the cycle can incorporate iterations among some of the phases. In this situation it is good practice to develop the system in smaller components and after each component is developed the users will have a chance to test it. After the testing phase, users will have an educated understanding of the system and are in a better position to suggest improvements or changes to the system; this is an opportunity to use that information and redesign the component. The advantage is that there is no need to wait until the entire system is completed to review it and reduces the costs of redesigning the system.
System Requirements This phase formally defines the detailed functional user requirements using high-level requirements identified in the Scope of Work (SOW) or Request for Proposal (RFP) sent to the consultant. This phase also delineates the requirements in terms of data, system performance, security, and maintainability requirements for the system. The requirements are defined in this phase to a level of detail sufficient for systems design to proceed. They need to be measurable, testable, and relate to the project’s needs. Once all the requirements are listed and approved, they are used to test the system and determine acceptance of the final product. The purposes of this phase are to: Further define and refine the functional and data requirements and document them in the Requirements Document. Complete the information management process. Develop detailed data and process models including system inputs and outputs. Develop the test and evaluation requirements that will be used to determine acceptable system performance. An important document during this phase is the Requirements Document. It is basically a matrix that lists all the information management requirements and organizes them by category and priority.
Chapter 5 Managing the Information| 137
The consultant will facilitate the requirements review sessions with the project team and develop the requirements document. The project manager should ensure that the team is available for these sessions and may invite other key stakeholders that will be users of the system. Example of a Requirements Document Matrix: Number
1.1.1
1.1.2
1.1.3
Requirement Description
Category
The system will have security lev- Security els to access information based on roles in the system The system will be able to perform Connectivity independent of any access to the internet or slow connectivity The system shall have a detailed Usability help guide available on and off line
Importance
Critical
Important
Desired
The document needs the approval of the project manager before moving to the Design Phase. The approval has the purpose to confirm that all of the requirements have been captured and that they are complete and accurate. It also provides the Project Manager with the opportunity to ensure a complete understanding of the requirements and that the documented requirements can support a detailed design of the proposed system.
Design the System During this phase, the system is designed to satisfy the functional requirements identified in the previous phase. Since problems in the design phase can be very expensive to solve in later stages of the system development, a variety of elements are considered in the design to mitigate risk. These include:
Identifying potential risks and defining mitigating design features. Performing a risk assessment of the proposed solution Develop a conversion plan to migrate current data to the new system. Determining the operating environment. Allocating processes to resources.
138 | Project Information Management Systems for Development Organizations
The objective of the Design Phase is to transform the detailed, defined requirements into complete, detailed specifications for the system to guide the work of the Development Phase. The decisions made in this phase address, in detail, how the system will meet the defined functional, physical, interface, and data requirements. One of the deliverables from this phase is a Design Document that describes the necessary specifications for the hardware, software, people and data resources. During this phase the consultant may develop a series of mock-up design or a prototype of the solution to show the graphical interface and how the different components and interfaces will look like. Just like in the requirements phase, the design document will also require the review and approval of the project manager.
Development of the System The development phase involves building (coding, configuring) the application using the agreed-upon environment and specialized tools. Developers create the application by using the design document as their guide. During this phase, the project manager must have an understanding of the work so that he or she can oversee the project in a monitoring role. This phase also puts in place the hardware, software, and communications environment for the system and other important elements of the overall system. During this phase other elements of the system are developed including: Test procedures and instructions that users will use in the test phase Setup a lab or a testing environment with the required software and hardware. Document any changes on the initial requirements. Start the development of user manuals and system installation instructions.
Chapter 5 Managing the Information| 139
Test and Approve the System The testing phase ensures that all requirements are met. Work conducted at this stage includes verifying that the functions are performed accurately, that the system works with all components in the systems, and that the new system meets quality and/or standard requirements. Once it is completed, the project can move on to the final phase of the IT project life cycle phase. The test phase involves the test of all the system functionality per the approved functional requirements. In this phase, the system user tests the system to ensure that it complies with the agreed expectation, performs according to the design and produces the information requested by the project. User sign off constitutes the acceptance of the system by the users. In this phase there is an active participation of the project team, especially those that will use the system. The testing may discover software errors that will be documented and the developer will address. This is a process that may take a couple of iterations; the errors are identified and solved until there are no more errors to report. Once the system is fully tested the project manager will formally accept the delivery of the system. This is an important step as it shifts the responsibility of the system from the developer to the project manager.
User Training The training phase is designed to train all users of the new system. This phase exposes the full functionality of the solution to users in a learning environment, where users can experience the solution, enter information, run reports and. Once it is completed, the project can move on to the final phase of the SDLC life cycle—the deployment phase. The training phase teaches all users the solution functionality; it makes use of exercises, theory and hands on use of the solution. In this phase, there are two types of documents created: 1. User Training Plan 2. User Training Evaluation
140 | Project Information Management Systems for Development Organizations
Once all users have been trained and have the ability to use the system, the project manager can authorize the deployment of the solutions to the various areas or units where the system will be used.
Deploy the System In this phase, the system is installed and made operational. The phase is initiated after the system has been tested and accepted by the users. Activities in this phase include notification of implementation to end users, process to enter new information, assignment of user roles, and support and maintenance procedures. The new system can fall into three categories, replacement of a manual process, replacement of a legacy system, or upgrade to an existing system. Regardless of the type of system, all aspects of the implementation phase should be followed. This will ensure the smoothest possible transition to the project’s desired goal. More than half of the system development costs are attributed to the operations and maintenance of systems. During the first months of the system deployment, the system is being used and scrutinized to ensure that it meets the needs initially stated in the planning phase. Problems with the system may be detected and new needs or requirements can arise. This will results in the modification to system, new functionality developed, and/or hardware changes. It’s important to understand that during the first couple of months using the system all the users will require close support. New users will require training and others will require training as well. The emphasis is to ensure that the user’s needs are met and the system continues to perform as specified in the requirements document. Additionally, as users become proficient in the use of the system they may become aware of better ways to improve the system and therefore make recommendations. Changes will be required to fix problems, possibly add features, and make improvements to the system. The consultant should be available to provide this support as long as the system is in use.