Software Lifecycle Management Guidelines

The purpose of these guidelines is to define and standardize the process for acquiring, implementing, and maintaining software in Government institutions in Rwanda. 

Introduction

The purpose of these guidelines is to define and standardize the process for acquiring, implementing, and maintaining software in Government institutions in Rwanda. They provide leading practices for managing software at each stage of the software lifecycle with the objective of reducing software implementation risks leading to successful software projects.

In an increasingly digital era, government institutions are leveraging software systems to deliver services online, digitalize internal processes, improve efficiency, and foster transparency. The effective management of these software systems, from their initial conceptualization to their decommission is paramount to achieving these goals.  This necessitates a robust approach to develop software lifecycle management guidelines ensuring that software systems are not only fit for purpose but also secure, sustainable, and deliver optimal value throughout their operational lifespan. 
This document outlines guidelines to facilitate software lifecycle management specifically developed and implemented by government institutions, with emphasis on the procurement of software systems and inhouse developed systems from the point of project initiation, implementing and retirement.


These guidelines will empower government institutions to make informed decisions, foster innovation, and ultimately deliver superior digital services to the citizens they serve.
RISA serves as the central coordinating body mandated to provide oversight, standardization, and expertise to ensure that software development and acquisition aligns with national strategies including; ( NST2 - the second generation of the National Strategy for Transformation (NST2) emphasizes the need to optimize governance structures to support efficient implementation, institutional framework, planning and coordination structures will be optimized and aligned with NST2 priorities thereby enabling faster and better service  delivery. 


Data protection law,  ICT sector strategic plan, National data sharing policy, Blueprint digitalization transformation roadmap. ), promotes interoperability, mitigate risks, and optimize public expenditure, by centralizing the governance of ICT project, we aim to prevent fragmented systems, reduce duplication of efforts, enhance cybersecurity.
RISA, in collaboration with government institutions, will take the lead in software systems procurement processes, and provide support throughout the implementation of software systems. 

Scope and Objectives

These guidelines cover the entire software lifecycle from initiation definition to decommissioning.

They are mandatory and applicable to all Government institutions in Rwanda and should be followed by Government staff as well as any external parties involved in the acquisition, implementation and maintenance of software within Government institutions. Key objectives of these guidelines include:

Overview

Software life cycle process [Mandatory]

Software Lifecycle Management refers to a structured process acquiring, implementing and maintaining high quality software. Government institutions should follow the following steps when deploying new software:

software-lifecyle-jpg.png

  1.  Concept note/feasibility study
  2. Requirements Analysis and Terms of Reference
  3. Software acquisition
    a. External Procurement
    b. Inhouse Development
  4. Architecture & Design
  5. Development
  6. Testing
  7. Deployment
  8. Operations & Maintenance
  9. Upgrading and Decommissioning

Agile approach [Recommended]

The design, development, testing and deployment (Steps 4 to 7) should be done through an agile approach which is the recommended approach for software development in Government institutions.

Concept Note / Feasibility Study

In this phase the need for a new software project is identified through a situation assessment that defines the current problems or gaps, possible alternative solutions, the proposed solution option and goals or outcomes that need to be achieved. The identified project should be aligned with the sector specific strategies and with the institution's IT blueprint and roadmap. Depending on the expected value of the project, a concept note or feasibility study is required.

Concept Note / Feasibility Study

Concept note for projects below USD 1 M  [Mandatory]

For projects expected to have a value below 1 million USD, a concept note is required.

The concept should have the following key components:

  1. Situation assessment and identification of possible alternative solutions
  2. Logical framework outlining the Project’s result chain through presentation of overall objective (impact), specific objectives (outcome(s)), outputs, and activity matrix with details on means (resource inputs) and costs
  3. Justification of the selected technical option
  4. Conceptual solution for the selected option
  5. Detailed budget estimates for the project
  6. Basic implementation plan and milestones
  7. Identification of Funding and Cost Recovery Options
  8. Project’s Socio-Economic Impact
  9. Justification in relation to the National Planning Framework and sector objectives
  10. Conceptual Study
Concept Note / Feasibility Study

Feasibility study for projects above USD 1M [Mandatory]

A feasibility study is required for projects whose expected value is above USD 1 million.

Key components of a feasibility study include:

  1. Description of the context
  2. Definition of objectives and logic of the intervention
  3. Identification of the project
  4.  Demand and option analysis
  5. Environmental and social considerations including Environmental and Social Impact Assessments
  6.  Technical design and cost estimates
  7. Plan for implementation and - if applicable - operation of the project
  8. Financial, economic and sensitivity analysis
  9. Risk analysis
  10. Conclusions and recommendations
Concept Note / Feasibility Study

Approval process for concept note / feasibility study [Mandatory]

The Chief Digital Officer/Head of IT Unit should take the lead in developing the concept note or feasibility study. The identified project should be in line with the institution's IT blueprint and roadmap.

The concept note or feasibility study should be approved by the Head of the institution/Chief Budget Manager before submission to RISA for approval along with the ICT Needs Planning Template.

For more details on the submission and approval process for new software projects please refer to the ICT Spend Control Guidelines for Public institutions.

Outputs: Project concept note or Feasibility study

Requirements Specifications and Terms of Reference

This phase involves gathering the needs of the stakeholders and analyzing them to define detailed software requirements and Terms of Reference for acquisition of the software.

Requirements Specifications and Terms of Reference

Software requirements [Mandatory]

Software requirements should include:

1. Functional requirements based on the needs of the institution’s operations and processes. This involves:

a. Reviewing “Existing” process flow
b. Developing “To be” process flows
c. Developing user stories based on the “To Be” process
d. Use case elicitations based on user stories

2. Technical requirements including:

a.    Technologies supported or technology stack requirements
b.    Minimum performance metrics
c.    Reliability and availability requirements

3. Security, data privacy and risk requirements 

Requirements Specifications and Terms of Reference

Terms of reference [Mandatory]

Terms of reference define the project , objectives and the scope of work. They should include:

Outputs:  Terms of Reference for software acquisition, Software requirements specification document (SRS)

Software Acquisition

Reference is made to the ministerial instructions No 001/MINICT/20212 of 12/03/2012 related to the procurement of information and communications technology for goods and services by Rwanda public institutions providing guidance on leading procurement proceedings of ICT related supplies and other services on behalf of all government institutions by RDB which was later transferred to RISA.Click Here

Software Acquisition

RISA framework contract [Mandatory]

Once the project is approved as per the process defined in the ICT Spend Control Guidelines for Public institutions , the software can be developed inhouse or procured from an external vendor. For Government of Rwanda institutions software should be acquired through the RISA framework contract.

In exceptional cases which require approval from RISA, external procurement and tender process may be followed. 

Software Acquisition

Inhouse Development [Recommended]

An institution can internally develop and implement the solution if they have the required resources, skills and capacity. The agile approach is recommended for software development. Before opting for inhouse development an institution should consider the following:

Software Acquisition

External Procurement Process [Mandatory]

For externally procured software, RISA should be involved as it has the mandate of ensuring centralized software procurement. Government institutions should follow the following process for external procurement:

  1. The institution submits the Terms of References (ToRs) including the Software Requirement Specifications to RISA.
  2. RISA reviews the Terms of Reference and provides inputs and either approves or rejects the procurement request with reasons in consultation with the requesting institution.
  3. If the Terms of Reference are approved, they are submitted to the designated service provider under the framework contract.
  4. In the event the solution cannot be implemented under the framework contract, the institution shall officially request a no-objection from RISA to utilize other alternative options.
  5. Once a no-objection is received from RISA, the institution will follow the RPPA public procurement process. The following should be considered at the various procurement stages.
Software Acquisition

Request for Proposal [Mandatory]

A request for proposal (RFP) document is developed based on the Terms of Reference and software specifications. Evaluation criteria should also be developed to guide the evaluation process. The RFP and evaluation criteria should cover the following:

1.Technical capabilities of the vendor. This includes:

a.    Experience of the vendor in successfully delivering similar projects
b.    Experience and qualifications of the proposed vendor team

2. Strengths of the proposed solution. This includes:

a.    Fit of the proposed solution and how it addresses the institution’s requirements
b.    Proposed methodology and approach for implementation

3. Financial proposal which includes assessing the total cost of ownership of the proposed software

Outputs:  Request for Proposal, Evaluation criteria

Software Acquisition

Technical evaluation [Mandatory]

Technical evaluation involves evaluating the technical proposal based on the evaluation criteria. Where possible this can include requesting vendors to demonstrate their solutions as well as making reference calls or visits to validate vendor’s experience.

Software Acquisition

Financial evaluation[Mandatory]

Financial evaluation[Mandatory]

Financial proposals should be evaluated as per the evaluation criteria and in accordance with the Public Procurement guidelines. When evaluating the cost of the proposed solutions, it is important to consider total cost of ownership including acquisition or development cost, any applicable licenses,  maintenance and support costs.

Outputs: Tender Evaluation Report

Software Acquisition

Negotiations and Contracting [Mandatory]

Contracting process involves the following:

  1. Negotiations - Negotiations with the selected vendor covering the scope of work  and financial proposal.
  2. Contract drafting: The contract should be drafted by the institution's legal team and technical input from IT team. The contract should include the agreed terms and conditions of the software procurement, including the price, the scope of work, the support and maintenance terms and the termination terms.
  3. Contract review: The contract should be reviewed with the vendor to ensure that the terms and conditions are acceptable to both parties. Contract review process should follow the Public Procurement guidelines.
  4. Contract signing: The contract should be signed by both parties before the software project commences.

Outputs:  Vendor Contract

The section below details the stages of the software development process. While these are shown sequentially, they can be implemented using the agile methodology.

Architecture and Design

The Architecture and Design phase involves transforming the software specifications into a technical design. This phase involves designing the software architecture, user interface, the database and integration interfaces. The activities to be carried out in this phase include:

Output: System Architecture Document, User Interface (UI) Design, Integration Design, Database Design

Development

The Development phase involves the process of transforming the design into a working software system. This phase involves coding the software, unit testing it, and integrating it with other components of the system. Institutions should refer to RISA guidelines for web and mobile applications development. Key guidelines include:

Output: Source code, Software deployed in Test environment

Testing

Testing is the process of verifying and validating that the software meets the requirements of the institution and its stakeholders. This phase involves a variety of testing activities, such as unit testing, system testing, integration testing, user acceptance testing, performance testing and security testing.

The activities to be carried out in this phase are detailed below.

Testing

Test planning [Mandatory]

Test planning [Mandatory]

The objective of test planning is to define the scope, approach, resources and schedule of testing activities. It includes:

  1. Defining test scope and objectives
  2. Defining the required resources including testing team, infrastructure, logistics and testing tools
  3. Defining the approach for testing including the entry and exit criteria for each testing stage
  4. Defining the expected test deliverables
  5. Scheduling test activities in an appropriate manner

Output: Test strategy and test plan

Testing

Test design [Mandatory]

This step involves defining the test scenarios required to test the software requirements and the test cases required to test each scenario. Test cases should include:

 

  1. The reference to the requirement being tested
  2. Description of the function or feature being tested
  3. Test data & instructions to run the test
  4. Expected test results

It is crucial to keep in mind that tests should be designed to test both the specified and unwritten requirements including expected user behavior and arbitrary scenarios that could break the system.

Output: Test scenarios and test cases

Testing

Test execution[Mandatory]

In this step testing is executed based on the test plan and test cases. Ensure the testing teams are aware of their responsibilities prior to testing. Ideally the testing team should be in one location to enable easier collaboration. Key activities include:

  1. Preparation and setup of the test environment
  2. Execution of test cases based on the test plan
  3. Recording of test results
  4. Recording, classification and prioritization of identified defects
  5. Resolution of defects based on priority
  6. Regression testing after defects have been resolved

The minimum test types to conduct include

Output: Test reports with test completion status and test pass rates, Defect logs

Testing

Test closure [Mandatory]

This is the final step in the testing process. The testing phase is closed when the following is achieved:

  1. All the tests have been completed and there are justifications for any tests that cannot be completed
  2. All critical defects have been resolved. If any defects are open, then reasons for defects being open should be provided. Defects should be analysed based on their impact on the operations of the institution. A decision should be made on which defects must be closed before the software or a component of the software can go to production

Output:  Final testing report showing completion rate, pass rate and status of defects

Deployment

Deployment is the process of transitioning the new software into production and making it available to users. This phase involves activities such as installing the software, configuring it, and training users on how to use it.

The activities to be carried out in this phase include:

Outputs: Technical system documentation, User documentation

Operations and Maintenance

The Operations and Maintenance (O&M) phase involves keeping the software up and running after it has been deployed. This phase involves activities such as monitoring the software, fixing bugs, and making changes to the software as needed. The activities to be carried out in this phase include:

Outputs: Software support issue logs, Updated user and technical documentation

Upgrade or Decommission

The Upgrade or Decommissioning phase involves retiring or removing a software system from service. The software may then be replaced by new or upgraded software. This phase involves activities such as archiving the software, disposing or repurposing of the hardware, and notifying the users.

Upgrade or Decommission

Factors influencing the decision to upgrade or replace software

Software may need to be upgraded when it starts impacting efficiency, productivity, scalability, security, user experience or compatibility with modern technology. Some of the factors that may result in the need to upgrade software include:

Upgrade or Decommission

Measures to implement when upgrading software

The following should be considered when upgrading software to minimize the risks involved in the process such as data loss or security risk.

Outputs: Business case/justification for upgrading or replacing the software, Impact analysis including risks and mitigations, Data migration strategy covering data security controls, data migration and archival plans, Stakeholder communication plan, Archived software and data

Software project management and delivery success factors

Software projects can be complex and with a high failure rate and need effective management to increase the chance of success. Key success factors in delivering software projects include:

Software project management and delivery success factors

Planning and scoping [Recommended]

Software project management and delivery success factors

Vendor management [Recommended]

Software project management and delivery success factors

Governance, roles and responsibilities [Recommended]

Software project management and delivery success factors

Adopt agile software delivery approach [Recommended]

Agile software development is the recommended approach for Government institutions. The iterative nature of the approach helps to manage complexity, ensure timely feedback from stakeholders, achieve incremental delivery of software where feasible and enable continuous improvement in the delivery process.

Software project management and delivery success factors

Adoption / change management plan [Mandatory]

New software projects often lead to new ways of working for users and key stakeholders. Change management is therefore important to ensure a high level of engagement of staff and other project stakeholders leading to greater adoption and success of new software projects.  Key considerations for change management include: