Once the project implementation plan has been completed and the required resources have been obtained, it is time to put the plan into effect.
Some of the activities that occur during this stage are: hiring consultants, purchasing hardware and basic software, installing hardware, training staff, bench-testing the software implementation and monitoring the progress of the project. Each of these issues will be discussed in the following sections.
Suppose your organization has decided to develop its own software, and hire a computer professional to do the work. Then there are a few issues you must consider in order to protect your interests and make things easier for the future evolution of the system. Let us examine these issues more closely:
Software development strategy An incremental, step-by-step approach that can quickly demonstrate to doubting managers, staff and members, through a series of visible outputs or events, how they can benefit from computerization is preferred.
SANCOR United Cooperatives Ltd., Argentina has standardized its administrative operations to optimize relations with secondary cooperatives, by providing each of them with the same administrative software package.
Documentation: most programmers and system architects are reluctant to write things down, not only because it is an arduous, non-creative task, but also since not doing it increases the businesss dependence on their continued employment.
So, insist on proper documentation and make it a strict condition of any contract that you have with them. Such documentation must include: information on the systems internal design processes, data table structures and relationships, source code, installation requirements.
A well-documented system is easier to maintain, makes problem solving easier, and most important of all, gives you freedom to hire subsequently contractors other than the original ones if the developer does not satisfy your needs. Documenting is also fundamental if you plan to share or sell your software to other organizations. It is also a good idea to include the development of administrators and users manuals as part of the documentation bundle.
Contracting issues: if you decide to hire software developers, it is strongly recommended that you prepare a detailed service contract with them that defines among other issues the:
Scope and limitations: be sure to include the scope and limitations of the services you hire, especially regarding user support, documentation, error correction and updates over time.
Source code: as previously mentioned, source code files are necessary to make future changes to the system. If you pay for the development of the source code, you should insist on securing copies of these files. This gives you the exclusive right to modify and sell them if you wish.
Licensing and intellectual property rights: if you have hired a programmer to develop software for the cooperative, make sure that the cooperative has the exclusive ownership and possession of the source code files. Many software development agreements do not include clauses requiring the sharing of source codes, to the chagrin of cooperatives which decide to modify the code later on.
That may not be a problem as long as the service provider agrees to provide maintenance and updating support (at a reasonable cost) in the post-project period. However, there are some instances where the provider has had complete rights to the source code and then goes bankrupt. In these cases, the cooperative is unable to recover the code and there is no way to correct errors or improve the software. One way to cope with this problem is by placing the source code in escrow, i.e. held "in-trust" by a third party. In case certain specified events happen, the user is then allowed access to the code.
You might also have to register the intellectual property rights of the system so that it cannot be sold to someone else or copied without your authorization. The procedure is different for each country. Consult a lawyer to learn the specific procedures in your country. If, on the other hand, you acquired pre-packaged software from a vendor, you will be bound by the licensing contract you signed with the vendor: it might limit the quantity of computers the software is installed in or have other licensing restrictions.
The project team should require all those involved in project implementation (especially hired contractors or consultants) to report to it regularly on progress in completing required tasks, activities and outputs. Such reporting requirements should be made a standard part of all contracts and final payment made only upon satisfactory completion of assigned work.
On the other hand, the project team is responsible for keeping elected leaders and cooperative members periodically informed on project progress achieved, problems encountered and action taken to solve those problems. This can be done through a series of open meetings (monthly or bi-monthy) held during the project development and implementation phases.
Bench-testing is the last stage of development where the system is tried by a few users to identify the final adjustments that are needed. Testing should be conducted by people other than those who have been directly involved in developing the software program for the simple reason that the latter usually have a vested interest in shielding their work from excessive critical analysis. A formal defect correction process also needs to be developed in case mistakes are made which have a negative impact on project performance. Testing carried out by programmers rarely works since programmers are usually blind to functional shortcomings in their own code. A successful bench test result should be made the last condition that the contractors or consultants should have to meet before they receive their final payment for work done.
Once the bench-testing is over, you should be in a position to begin using the first functional version of the programme. During the first months of operation, it is best to keep the manual system running in parallel until you are sure that the computerized system runs effectively and can completely replace the manual processes.
Also, now that your data are stored in digital media (diskettes, hard disks, tapes, CDs) instead of on paper, do not forget to define a regular backup strategy to protect the data stored in case of system failure or disaster. The backup strategy should include the following:
regular duplication of the data files, according to the value and rate of update of each;
data should be backed up on diskettes, tape, zip drives or hard disk media according to the volume of information and cost of the media hardware;
a copy of the files should be stored at least once a month outside the building where the system is located;
a copy of the most critical system and data must be kept, in order to be able to continue work in case of failure of the main hard disk or server.
The amount and type of training that staff and members will need to operate and maintain the new system will depend on a host of factors, including the existing skill capacities and experience of cooperative staff and members, the tasks to be performed and the particular characteristics and maintenance requirements of the hardware and software system used.
The subject matter content and focus of training should be based on a careful pre-assessment of existing end-user skill capacities and training needs. Training of end-users and other stakeholders is crucial for the system to function effectively. The following stakeholders need to have targeted training:
Cooperative administrative staff: The cooperative staff must be trained thoroughly in the usage of the new information system. Training should include a general introduction to computers, operating system basics, as well as specific training in the use of the system.
Elected leaders: Executive leadership of the cooperative should have good familiarity with what the software can do and what it cannot. Elected leaders should receive basic training in the use of the software, with emphasis on financial and business reporting and interpreting data for decision-making purposes. Keeping elected leaders informed about the project and its advantages and problems will help ensure the projects survival in the long term.
Cooperative management: Cooperative management should receive the same training as cooperative staff plus more specialized training on financial and business record keeping and analysis, and on preparing reports for the elected leadership and regular members.
Cooperative members: Members should be trained in the use of the system if they will access it. Otherwise, they should be informed regularly about the projects evolution and the value added services it provides, so that they will be able to perceive the return on their invested capital. Training should include a general introduction to the system, its objectives and how it works, a view of the main features of the system, reports generated of interest to members, how to interpret and analyse the information they present, and how to connect and access the system (if they will have access to it).
Information systems staff: At least one employee (but preferably two) should be trained in the usage, testing, maintenance, and troubleshooting of the information system. Their main responsibility will be to provide support to other staff users of the system as questions arise, and to solve technical issues related to system backup, recovery, network operation, and electrical problems, and take the lead in reporting and defining suspected defects in the automated system.
Training is a continuous process: Computer training should not be regarded as a one-off event, but rather as a continuous process. ICT technology develops so fast that continual training courses are necessary to keep users up to date. With new computer models and software updates appearing in the market almost monthly all users have to keep up to date with these changes. That requires continual training courses, not only at the initial stages but also as people, processes and systems change and evolve.
Employee resistance to change: Computerization projects by their very nature involve change. Employee fear of changing job roles and skill sets due to computer automation can damage the success of the project. Strategies to overcome this problem include: keeping them informed about the project status, objectives and their new roles, involving them in the project right from the start (designing, reviewing, testing), and ensuring that they receive adequate training.
Behavioural changes: The use of a computerized information system might alter some of the power balance of an organization. Since the crucial information will be contained in a computer, those who can access will have more "power" over those who cannot. This is a normal situation, and training and good communications are key elements to help solve this situation.
Banaskantha District Cooperative Milk Producers Union, in Gujarat, India, has been very innovative stimulating "buy-in" by the staff and members through rigorous use of training strategies, thereby overcoming many attitude-related problems.