annex b revision no. 1 · terms of reference june 2019 page 1 of 23 annex b terms of reference...

24

Upload: others

Post on 19-Apr-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ANNEX B REVISION NO. 1 · terms of reference june 2019 page 1 of 23 annex b terms of reference revision no. 1 june 2019 for the provision of software engineering services support
Page 2: ANNEX B REVISION NO. 1 · terms of reference june 2019 page 1 of 23 annex b terms of reference revision no. 1 june 2019 for the provision of software engineering services support

Terms of Reference June 2019 Page 1 of 23

ANNEX B

TERMS OF REFERENCE

REVISION NO. 1

JUNE 2019

FOR THE PROVISION OF SOFTWARE ENGINEERING

SERVICES SUPPORT

FOR SEISMIC / HYDROACOUSTIC / INFRASOUND (SHI)

RE-ENGINEERING ON A CALL-OFF BASIS

Page 3: ANNEX B REVISION NO. 1 · terms of reference june 2019 page 1 of 23 annex b terms of reference revision no. 1 june 2019 for the provision of software engineering services support

Terms of Reference June 2019 Page 2 of 23

I. INTRODUCTION .......................................................................................................... 4

II. SCOPE OF WORK ........................................................................................................ 6

II.1 Tasks 1, 2, and 3: Design, develop and integrate new software modules ............................... 7

II.2 Task 4: Design, implement and support continuous delivery and deployment ...................... 8

II.3 Tasks 4 and 5: Support the testing of newly developed and integrated software modules ..... 9

II.4 Task 1: Evaluate the results of newly developed and integrated software modules ............... 9

II.5 Tasks 1, 2, and 3: Second level support and maintenance for integrated software modules 10

III. PROVISION OF SOFTWARE ENGINEERING SERVICES ................................ 11

III.1 Task 1: Digital Signal Processing Software Engineering Support ........................................ 11

III.1.1 Requirements ................................................................................................................. 11

III.1.2 Work Specifications....................................................................................................... 11

III.1.3 Deliverables .................................................................................................................. 11

III.2 Task 2: Back-End Software Engineering Support ................................................................ 11

III.2.1 Requirements for the Software Team ............................................................................ 12

III.2.2 Work Specifications....................................................................................................... 12

III.2.3 Deliverables .................................................................................................................. 12

III.3 Task 3: Front-End Software Engineering Support ................................................................ 13

III.3.1 Requirements ................................................................................................................. 13

III.3.2 Work Specifications....................................................................................................... 13

III.3.3 Deliverables .................................................................................................................. 13

III.4 Task 4: DevOps Software Engineering Services .................................................................. 14

III.4.1 Requirements for the Software Team ............................................................................ 14

III.4.2 Work Specifications....................................................................................................... 14

III.4.3 Deliverables .................................................................................................................. 14

III.5 Task 5: Software Testing Support ......................................................................................... 14

III.5.1 Requirements for the Software Team ............................................................................ 14

III.5.2 Work Specifications....................................................................................................... 15

III.5.3 Deliverables .................................................................................................................. 15

IV. LOCATION OF PERFORMANCE ........................................................................... 16

V. REQUIREMENTS FOR THE CONTRACTOR ...................................................... 17

V.1 General requirements ............................................................................................................ 17

V.2 Team Roster .......................................................................................................................... 17

V.2.1 Constitution of the Team Roster .................................................................................... 17

V.2.2 Maintenance of the Team Roster, conditions of amendment ........................................ 18

Page 4: ANNEX B REVISION NO. 1 · terms of reference june 2019 page 1 of 23 annex b terms of reference revision no. 1 june 2019 for the provision of software engineering services support

Terms of Reference June 2019 Page 3 of 23

V.2.3 Software Team .............................................................................................................. 18

V.2.4 Requirements for each staff on the Team Roster .......................................................... 19

VI. ORGANIZATION OF WORK ................................................................................... 20

VI.1 FRD Call-off ......................................................................................................................... 20

VI.1.1 Initiating Work .............................................................................................................. 20

VI.1.2 Completion and Acceptance .......................................................................................... 20

VI.1.3 Invoicing and Payment .................................................................................................. 21

VII. METHODOLOGY, STANDARDS, AND TECHNOLOGY .................................... 22

VII.1 Work environment ............................................................................................................ 22

VIII. MONTHLY REPORT ................................................................................................. 23

Page 5: ANNEX B REVISION NO. 1 · terms of reference june 2019 page 1 of 23 annex b terms of reference revision no. 1 june 2019 for the provision of software engineering services support

Terms of Reference June 2019 Page 4 of 23

I. INTRODUCTION

The Preparatory Commission for the Comprehensive Nuclear-Test-Ban Treaty Organization (the

Commission/CTBTO) operates software to process time-series data from seismic, hydro-acoustic, and

infrasound (SHI) sensors from around the world. The data are transmitted to the International Data

Centre (IDC) in Vienna in near-real-time (within 5 min).

The data are processed to locate events that may be nuclear test explosions. Thus the processing

system is required to be very sensitive to small events in unusual locations.

The software infrastructure used for processing of the data has been developed mainly in the 90s,

based on C source code mixed with FORTRAN 77 and FORTRAN 95, as well as parts written in

C++, Scheme, Perl and Python. While new scientific modules have been integrated and efforts have

been made to port the software to open source platforms, the Commission is currently, in cooperation

with National Data Centres (NDCs), working on a re-implementation of the back-end and front-end

infrastructures as well as an updated data model. The re-engineered system will be based on modern

principles and design approaches such as micro-service architecture, REST and GraphQL APIs,

component-based backend services and interactive applications based on web technology.

This project is planned as a multi-year project with a duration of five years. For the first years the

system will be deployed on an evaluation platform, specifically designed for the needs of the

reengineered system, and will be run in parallel to the production system. The overall effort is

expected to be more than 60 person years, which includes commission staff as well as contracted

staff.

In its project planning the Commission has identified five areas of skill sets which will be contracted

to outside companies. Specifically, the Commission is looking for companies providing:

Digital Signal Processing Software Engineering Services;

Back-End Java Software Engineering Services;

Front-End JavaScript Software Engineering Services;

DevOps Engineering Services; and

Software Testing Support.

Companies are invited to bid on each of these tasks individually. Companies can bid for one task only,

or for more tasks, as long as they have the capacity to execute them synchronously, in parallel.

Except for coordination and management tasks, the company shall not assign the same person to

multiple tasks offered. The Commission will evaluate the offers for each task individually and select

the best offer per task.

For the interactive front-end applications, web-based technologies will be used. It will be based on the

React view layer as well as the GoldenLayout window manager, developed in Typescript and

prepared for deployment using NodeJS and NPM.

For the backend services, Java will be used as the programming language. The data will be stored in a

combination of database service (Oracle and/or PostgreSQL) and optimized time-series storage. The

Page 6: ANNEX B REVISION NO. 1 · terms of reference june 2019 page 1 of 23 annex b terms of reference revision no. 1 june 2019 for the provision of software engineering services support

Terms of Reference June 2019 Page 5 of 23

backend services will be modular, with services communicating via Remote Procedure Calls based on

REST and GraphQL.

For the deployment of the system, container technology (Docker) will be used, supported by a suitable

orchestration mechanism (e.g. Kubernetes).

The existing Continuous Automated Test System (CATS), which has been developed for the

Commission, will be used and enhanced for the purpose of the project, including continuous

integration, testing and delivery. It is based on Jenkins and Robot Framework.

The software is designed to run on the open-source 64bit Linux operating environment (currently

RHEL 7).

Details of the technologies and components used are subject to change due to the multi-year nature of

the project.

The Commission seeks to establish new Contracts for the supply of software engineering services for

the IDC SHI reengineering project in accordance with these Terms of Reference.

Page 7: ANNEX B REVISION NO. 1 · terms of reference june 2019 page 1 of 23 annex b terms of reference revision no. 1 june 2019 for the provision of software engineering services support

Terms of Reference June 2019 Page 6 of 23

II. SCOPE OF WORK

The Commission seeks to establish one or more contracts for a period of five (5) years, subject to one

optional extension of two (2) years. These Terms of Reference (hereinafter referred to as “ToR”) form

the technical framework for the supply of on-site and off-site software engineering services for work

on the re-engineering SHI data processing software (hereinafter referred to as “Services”).

The Contractor and the services it provides shall meet the requirements specified in these ToR.

Task 1: Digital Signal Processing:

The volume of work under the Initial Call-off Period is expected to be about two hundred fifty (250)

person-days per year throughout 2020 and 2021, about four hundred fifty (450) person-days in 2022

and 2023, and about fifty (50) person-days for subsequent years. This volume is just an indication and

the Commission reserves the right, at its sole discretion, to call-off more, less or no person-days at all.

The Contractor will be required to:

Design, develop and integrate new software modules

Support the testing of newly developed and integrated software modules

Evaluate the results of newly developed and integrated scientific software modules

Second level support and maintenance for integrated software modules

Task 2: Backend Java:

The volume of work under the Initial Call-off Period is expected to be about three hundred fifty (350)

person-days per year throughout 2020 and 2021, about eleven hundred (1100) person-days in 2022

and 2023, and about one hundred fifty (150) person-days for subsequent years. This volume is just an

indication and the Commission reserves the right, at its sole discretion, to call-off more, less or no

person-days at all.

The Contractor will be required to:

Design, develop and integrate new software modules

Support the testing of newly developed and integrated software modules

Second level support and maintenance for integrated software modules

Task 3: Front-End JavaScript:

The volume of work under the Initial Call-off Period is expected to be about one hundred (100)

person-days per year throughout 2020 and 2021, about three hundred fifty (350) person-days in 2022

and 2023, and about fifty (50) person-days for subsequent years. This volume is just an indication and

the Commission reserves the right, at its sole discretion, to call-off more, less or no person-days at all.

The Contractor will be required to:

Design, develop and integrate new software modules

Page 8: ANNEX B REVISION NO. 1 · terms of reference june 2019 page 1 of 23 annex b terms of reference revision no. 1 june 2019 for the provision of software engineering services support

Terms of Reference June 2019 Page 7 of 23

Support the testing of newly developed and integrated software modules

Task 4: Dev-Ops Support:

The task is planned to start in Q4/2019, with a volume of work expected to be about sixty (60) person-

days for the months October-December 2019.

The volume of work under the Initial Call-off Period is expected to be about six hundred (600)

person-days per year throughout 2020 and 2021, about eight hundred fifty (850) person-days in 2022

and 2023, and about one hundred fifty (150) person-days for subsequent years. This volume is just an

indication and the Commission reserves the right, at its sole discretion, to call-off more, less or no

person-days at all.

The Contractor will be required to:

Design, implement and support continuous delivery and deployment

Support the testing of newly developed and integrated software modules

Task 5: Software Testing:

The volume of work under the Initial Call-off Period is expected to be about two hundred (200)

person-days per year throughout 2020 and 2021, about three hundred fifty (350) person-days in 2022

and 2023, and about fifty (50) person-days for subsequent years. This volume is just an indication and

the Commission reserves the right, at its sole discretion, to call-off more, less or no person-days at all.

The Contractor will be required to:

Support the testing of newly developed and integrated software modules

II.1 Tasks 1, 2, and 3: Design, develop and integrate new software modules

Development of new and integration of existing software modules generally involves the execution of

the software design and implementation phases, and the support of the deployment of these modules

through the established change management and release processes of the IDC. The Contractor is also

expected to be involved in requirements definition for these systems.

In particular, the work involves the following main activities:

Defining requirements in accordance with IDC requirements engineering practices, or reviewing and refining existing requirements specifications. The outcome of this step would be a requirements document forming the basis for further planning the work;

Scheduling of the deliverables and estimating the effort to execute the work;

Analysing, designing, coding and testing;

Developing acceptance test plans;

Supporting the delivery, acceptance and implementation of each deliverable;

Page 9: ANNEX B REVISION NO. 1 · terms of reference june 2019 page 1 of 23 annex b terms of reference revision no. 1 june 2019 for the provision of software engineering services support

Terms of Reference June 2019 Page 8 of 23

Writing the documentation agreed for each project, typically consisting of Software Design Description, Software User Manual, Software Installation Manual, Software Administration Manual.

Liaising with both the testers and evaluators through the change management system.

It should be noted that the above activities will be executed in an iterative fashion in accordance to

Agile software development methodologies. The Contractor staff are expected to work together with

staff from the Commission and other contractors in one Scrum team.

Examples of software projects that the Contractor may be requested to work on are:

Integration of software modules contributed by external parties in subsequent phases of the IDC reengineering project. This may require designing and implementing interfaces that allow the contributed software to work with components of the current operational code base;

Adjustment and integration of major components of the current SHI operational pipeline, such as the data acquisition for waveform data, to be compatible with the reengineered code base;

Redesign and implementation of major components of the current SHI operational pipeline, such as the data access layer used by automatic processing software for waveform data and by interactive analysis software for waveform data, to be compatible with the reengineered infrastructure.

II.2 Task 4: Design, implement and support continuous delivery and

deployment

For the reengineered software, the IDC will utilize best practices on Continuous Delivery /

Deployment, based on DevOps principles. Design and implementation of continuous delivery and

deployment generally involves support in the setup of Continuous Integration / Continuous Delivery

(CI/CD) pipelines, scripting of automatic deployment, roll-back support in case of issues with newly

integrated software, and design of updated processes. It also includes design, configuration and

implementation of container-based deployment and orchestration, based on industry best practices.

The Contractor is also expected to support in the development and integration of complex, automated

end-to-end and full-system tests.

In particular, the work involves the following main activities:

Support the design, adaptation and implementation of a CI/CD platform for the reengineered software;

Support the adjustment of existing change management and software delivery processes, to align with DevOps best practices;

Support the design, configuration and implementation of container-based deployment and orchestration, aligned with industry best practices;

Support developers in the design and implementation of automated tests, including end-to-end and full-system tests.

It should be noted that the above activities will be executed in an iterative fashion in accordance to

Agile software development methodologies. The Contractor staffs are expected to work together with

staff from the Commission and other contractors in one Scrum team.

Examples of software projects that the Contractor may be requested to work on are:

Page 10: ANNEX B REVISION NO. 1 · terms of reference june 2019 page 1 of 23 annex b terms of reference revision no. 1 june 2019 for the provision of software engineering services support

Terms of Reference June 2019 Page 9 of 23

Setting up of a CI/CD platform, integrated with git-based source code management, for the IDC reengineering project. This includes requirement analysis to support the specific needs of the Commission for continuous delivery and deployment;

Adjustment and integration of complex test scripts for end-to-end testing and full-system tests. This includes support of the development of these test scripts in various environments, like Java-based micro-services and React-based front-end code;

Design and implementation of a container-based deployment system and container orchestration, integrated with the CI/CD platform, and compatible with the security requirements of the Commission.

II.3 Tasks 4 and 5: Support the testing of newly developed and integrated

software modules

For the reengineered software, some of the algorithms and scientific methods will be re-implemented

or significantly adjusted to be compatible with the new code base. These new modules will require

extensive testing, some of which might be manual testing and some of which will be automated

testing (unit, integration and system tests). Supporting the testing of newly developed and integrated

software modules generally involves data manipulation, filtering, comparing with results from other

methods, and scripting of all these for automatic tests. In addition, the contractor will work on

bundling “ground-truth” datasets for integration into the CI/CD platform and automatic test execution.

The reengineered software has extensive documentation of requirements. The contractor shall derive

executable test specifications from these requirements.

In particular, the work involves the following main activities:

Planning support of tests to cover all essential parts of newly developed and integrated software modules;

Extraction, conversion and filtering of data between different implementations of software modules for allowing comparison;

Acceptance criteria development for system-wide tests when comparing results with “ground-truth” of established datasets;

Implementation support and adjustment of CI/CD pipelines with system- and integration-level tests;

Support for developers in the design and implementation of automated tests, including end-to-end and full-system tests.

Liaison with both the developers and evaluators through the change management system.

It should be noted that the above activities will be executed in an iterative fashion in accordance with

Agile software development methodologies. The Contractor staffs are expected to work together with

staff from the Commission and other contractors in one Scrum team.

II.4 Task 1: Evaluate the results of newly developed and integrated software

modules

Newly developed and integrated software modules will often lead to different results when compared

with the original implementation when running in the current IDC environment. Some of the

modifications will be aiming at improving accuracy of the implementation to achieve better results

Page 11: ANNEX B REVISION NO. 1 · terms of reference june 2019 page 1 of 23 annex b terms of reference revision no. 1 june 2019 for the provision of software engineering services support

Terms of Reference June 2019 Page 10 of 23

than existing modules. These new results have to be validated, which requires a geoscientific

background to compare and assess the outcome with previous software.

In particular, the work involves the following main activities:

Analysing results and comparing them with results achieved by other methods or established ground-truth databases;

Compiling “ground-truth” data sets for automated tests.

Liaising with both the developers and testers through the change management system.

It should be noted that the above activities will be executed in an iterative fashion in accordance with

Agile software development methodologies. The Contractor staff will work together with staff from

the Commission and from other contractors in one Scrum team.

II.5 Tasks 1, 2, and 3: Second level support and maintenance for integrated

software modules

Provision of second-level support and maintenance for integrated software modules generally

involves the review and execution of the software transition and operation phases through the

provision of support and maintenance services, mainly for custom software systems.

In particular, the work may involve the following steps:

Perform troubleshooting;

Provide proactive and/or reactive support services;

Analyze the current functionality of a software system;

Implement software patches and updates;

Perform migrations for major releases of software;

Implement deployment and release policies;

Provide installation and usability assistance;

Provide training or other services associated with operating the software.

Page 12: ANNEX B REVISION NO. 1 · terms of reference june 2019 page 1 of 23 annex b terms of reference revision no. 1 june 2019 for the provision of software engineering services support

Terms of Reference June 2019 Page 11 of 23

III. PROVISION OF SOFTWARE ENGINEERING SERVICES

This section breaks down the description of the work into the tasks to be provided.

III.1 Task 1: Digital Signal Processing Software Engineering Support

III.1.1 Requirements

In addition to requirements listed under section V, the Contractor shall ensure when selecting the

Software Team that the following mandatory requirements are met by all members that are to provide

Digital Signal Processing Software Engineering Support:

Five (5) years of experience in the last ten (10) years as a system analyst, designer and software developer in the area of digital signal processing;

Three (3) years of experience in the last ten (10) years in developing software to automatically process data in near-real-time, preferably in the area of environmental or operational monitoring;

Knowledge of geophysical concepts from involvement in past projects in the area of geophysical processing software;

Experience in array signal processing and applying signal processing to environmental monitoring applications.

The Commission reserves the right to consider additional requirements for the selection of Software Team members at the start of new projects (in its written request prior to FRD issuance, as described in Section VI.1.1).

III.1.2 Work Specifications

The work may involve the following tasks:

Perform system analysis and translate software requirements into architecture and design using Agile software development methodologies;

Prototype signal processing code to be integrated into work of other developers, and design and develop signal processing code that satisfy users’ needs;

Unit-test, black-box and performance testing for the systems being developed/maintained;

Support the deployment of the software under development in accordance to IDC change management processes;

Audit Software Code in preparation for upgrades/enhancements

The detailed scope of the services shall be defined at the time the work is called-off (see Section VI).

III.1.3 Deliverables

The deliverables shall be defined at the time the work is called-off (see Section VI). The Commission

may request deliverables deemed relevant to the project.

III.2 Task 2: Back-End Software Engineering Support

Page 13: ANNEX B REVISION NO. 1 · terms of reference june 2019 page 1 of 23 annex b terms of reference revision no. 1 june 2019 for the provision of software engineering services support

Terms of Reference June 2019 Page 12 of 23

III.2.1 Requirements for the Software Team

In addition to requirements listed under section V, the Contractor shall ensure when selecting the

Software Team, that the following mandatory requirements are met by all members that are to provide

Back-End Software Engineering Support:

Three (3) years of experience in the last ten (10) years as a system analyst, designer and software developer in data analysis and processing systems, preferably in the area of environmental monitoring;

Two (2) years of experience in the last five (5) years implementing web services integration such as JAX-RS, JAX-WS and/or similar technologies;

Two (2) years of experience in the last five (5) years in Java development using Spring framework or Wildfly, Weblogic, Websphere, JBoss EAP or similar technologies;

Two (2) years of experience in the last five (5) years of developing data centric web applications using one or more Java-based Object Relational Frameworks such as Spring Data, Hibernate, EclipseLink, iBatis or similar technology;

Two (2) years of experience in the last five (5) years working with SQL and database programming, experience designing data access layers and data models for an application;

Recent experience with PostgreSQL is an asset;

One (1) year of experience in the last five (5) years with NoSQL databases, designing data access layers and data models for an application;

Recent experience with MongoDB and/or Apache Cassandra is an asset;

Basic understanding of digital signal processing concepts;

Experience in array signal processing and applying signal processing to environmental monitoring applications is an advantage;

Basic knowledge of geophysical concepts from involvement in past projects in the area of geophysical processing software.

The Commission reserves the right to consider additional requirements for the selection of Software Team members at the start of new projects (in its written request prior to FRD issuance, as described in Sections VI.1.1).

III.2.2 Work Specifications

The work may involve the following tasks:

Perform system analysis and translate into software requirements, architecture and design using Agile software development methodologies;

Prototype back-ends for processing and APIs to be integrated into work of other developers, and design and develop processing and API back-ends that satisfy users’ needs;

Unit-test, black-box and performance testing for the systems being developed/maintained;

Support the deployment of the software under development in accordance to IDC change management processes;

Audit Software Code in preparation for upgrades/enhancements.

The detailed scope of the services shall be defined at the time the work is called-off (see Section VI).

III.2.3 Deliverables

Page 14: ANNEX B REVISION NO. 1 · terms of reference june 2019 page 1 of 23 annex b terms of reference revision no. 1 june 2019 for the provision of software engineering services support

Terms of Reference June 2019 Page 13 of 23

The deliverables shall be defined at the time the work is called-off (see Section VI). The Commission

may request deliverables deemed relevant to the project.

III.3 Task 3: Front-End Software Engineering Support

III.3.1 Requirements

In addition to requirements listed under section V, the Contractor shall ensure when selecting the

Software Team, that the following mandatory requirements are met by all members that are to provide

Front-End Software Engineering Support:

Two (2) years of experience within the last five (5) years in developing web-based applications;

Experience with TypeScript is an asset;

One (1) year of extensive experience with the React JavaScript framework together with the Redux state manager;

One (1) year of extensive experience with NodeJS and the Node Package Manager;

Experience with D3.js, Leaflet, OpenLayers and/or in developing web-based maps is an asset;

Experience with GoldenLayout is an asset;

Basic understanding of digital signal processing concepts;

Experience in array signal processing and applying signal processing to environmental monitoring applications is an advantage;

Basic knowledge of geophysical concepts from involvement in past projects in the area of geophysical processing software is an advantage.

The Commission reserves the right to consider additional requirements for the selection of Software Team members at the start of new projects (in its written request prior to FRD issuance, as described in Sections VI.1.1).

III.3.2 Work Specifications

The work may involve the following tasks:

Perform system analysis and translate software requirements into architecture and design using Agile software development methodologies;

Prototype web-based front-ends with end users, and design and develop web-based front-ends that satisfy users’ needs;

Unit-test, black-box and performance testing for the systems being developed/maintained;

Support the deployment of the software under development in accordance to IDC change management processes;

Audit Software Code in preparation for upgrades/enhancements.

The detailed scope of the services shall be defined at the time the work is called-off (see Section VI).

III.3.3 Deliverables

The deliverables shall be defined at the time when work is called-off (see Section VI). The

Commission may request deliverables deemed relevant to the project.

Page 15: ANNEX B REVISION NO. 1 · terms of reference june 2019 page 1 of 23 annex b terms of reference revision no. 1 june 2019 for the provision of software engineering services support

Terms of Reference June 2019 Page 14 of 23

III.4 Task 4: DevOps Software Engineering Services

III.4.1 Requirements for the Software Team

In addition to requirements listed under section V, the Contractor shall ensure when selecting the

Software Team, that the following mandatory requirements are met by all members that are to provide

DevOps Software Engineering Services:

One (1) year of experience using Docker containers for the purpose of software operations;

One (1) year of experience architecting micro-services based software systems;

Two (2) years of experience within the last ten (10) years using a disciplined approach for continuous integration;

Experience with Jenkins and/or GitLab CI is an advantage;

Experience with scripting techniques for automated integration and deployment.

The Commission reserves the right to consider additional requirements for the selection of Software Team members at the start of new projects (in its written request prior to FRD issuance, as described in Sections VI.1.1).

III.4.2 Work Specifications

The work may involve the following tasks:

Design and implement computing infrastructure for running and evaluating the reengineered IDC software;

Adjust operating system settings, Docker runtime, and container orchestration parametrisation;

Maintain computing infrastructure for the reengineered project;

Define and support the implementation of release and deployment policies;

Mentor other Software Team members in DevOps methodologies;

Support developers in testing and running the reengineered IDC software on development machines;

Support scripting of automated deployment (and rollback) of releases.

The detailed scope of the services shall be defined at the time the work is called-off (see Section VI).

III.4.3 Deliverables

The deliverables shall be defined at the time when work is called-off (see Section VI). The

Commission may request deliverables deemed relevant to the project.

III.5 Task 5: Software Testing Support

III.5.1 Requirements for the Software Team

In addition to requirements listed under section V, the Contractor shall ensure when selecting the

Software Team, that the following mandatory requirements are met by all members that are to provide

Software Testing Support:

Page 16: ANNEX B REVISION NO. 1 · terms of reference june 2019 page 1 of 23 annex b terms of reference revision no. 1 june 2019 for the provision of software engineering services support

Terms of Reference June 2019 Page 15 of 23

Four (4) years of experience within the last ten (10) years using a disciplined approach for planning, designing, executing and reporting on software testing;

Two (2) years of experience in the last ten (10) years using, configuring and customizing Continuous Integration Servers;

Experience with Jenkins and/or GitLab CI is an advantage;

Experience with scripting techniques for automated testing.

The Commission reserves the right to consider additional requirements for the selection of Software Team members at the start of new projects (in its written request prior to FRD issuance, as described in Sections VI.1.1).

III.5.2 Work Specifications

The work may involve the following tasks:

Enhance the Continuous Automatic Testing System (CATS) for the needs of the reengineered project;

Develop, maintain and integrate tests into CATS;

Audit code coverage;

Mentor other Software Team members in software testing methodologies;

Work from software specifications to identify test data requirements and generate required test data;

Report software defects and support developers in troubleshooting problems in the CATS environment.

The detailed scope of the services shall be defined at the time the work is called-off (see Section VI).

III.5.3 Deliverables

The deliverables shall be defined at the time when work is called-off (see Section VI). The

Commission may request deliverables deemed relevant to the project.

Page 17: ANNEX B REVISION NO. 1 · terms of reference june 2019 page 1 of 23 annex b terms of reference revision no. 1 june 2019 for the provision of software engineering services support

Terms of Reference June 2019 Page 16 of 23

IV. Location of Performance

For all tasks, Contractor’s staff will be expected to work off-site the premises of the Commission in

Vienna, Austria. Only for the purpose of meetings, on-site installation, or other activities as required,

contractors might be required to work for limited periods on the premises of the Commission.

The on-site days shall be agreed with the Commission prior to the issuance of the FRD (see section

VI.1.1).

The Contractor shall make all the travel arrangement (visas, hotels, etc.) for their staff. Airline tickets

may be purchased by the Commission, should it be deemed appropriate at the time when work is

called off, Daily Subsidiary Allowance (DSA) shall be calculated based on the values provided by the

International Civil Service Commission (ICSC).

Page 18: ANNEX B REVISION NO. 1 · terms of reference june 2019 page 1 of 23 annex b terms of reference revision no. 1 june 2019 for the provision of software engineering services support

Terms of Reference June 2019 Page 17 of 23

V. Requirements for the contractor

V.1 General requirements

The Contractor shall satisfy the following mandatory requirements:

To be a company established for at least three (3) years;

A minimum of three (3) years of experience in providing software development services using an Agile methodology, preferably Scrum;

Experience working with a modern issues tracking and ticket management systems, preferably Jira;

All written and oral communication with the Commission shall be in English;

The company has successfully executed projects in the area of digital signal processing, environmental monitoring and scientific visualization in the past.

Warranty period of one (1) year after the completion of the user acceptance testing. Terms and conditions of post-warranty support and bug fixes should be available and clearly specified.

Documented evidence that the Contractor will be able to adjust the working hours of staff assigned to the Software Team, to overlap at least two hours with the Commission’s working hours (9am to 5pm CET), as deemed necessary by the Commission.

For on-site work performed at the PTS headquarters in Vienna, Austria, the Commission will provide at its premises a suitable work environment (office, room for meetings, presentations and trainings, stationary, Internet connection, fax service) for the Contractor’s personnel to perform the services under the Contract, as required. The Commission will also make reasonable efforts to cooperate with the Contractor in connection with its performance under the Contract, including, but not limited to, reasonable and timely access to Commission’s personnel, documentation, and databases and other necessary identified sources of information.

For off-site work, the Contractor shall provide its own infrastructure, hardware and software environment necessary for the completion of its work under the Contract. The Commission will provide VPN access to the relevant services for the purpose of the project. The Contractor shall communicate with the Commission by telephone, or electronic mail, as appropriate. All costs incurred by the Contractor as a result of such communication with the Commission for the performance of work under the Contract, shall be borne by the Contractor.

V.2 Team Roster

V.2.1 Constitution of the Team Roster

In its Proposal, the Contractor shall provide details of staff that are expected to be involved in the

performance of work on-site and/or off-site for the Commission. At a minimum, the following

information shall be provided for each of these staff:

Name

Role

Employed since

Page 19: ANNEX B REVISION NO. 1 · terms of reference june 2019 page 1 of 23 annex b terms of reference revision no. 1 june 2019 for the provision of software engineering services support

Terms of Reference June 2019 Page 18 of 23

Task from Section III in which the staff will be involved

Curriculum Vitae detailing past experience relevant to the Task

Each member of the Team Roster shall be appropriately skilled and experienced to carry out the role

and service(s) listed in the Team Roster.

The Contractor shall demonstrate:

The capacity of the suggested Team Roster to tackle all Services described in Section III for the Tasks they are bidding for;

The compliance of the suggested Team Roster with requirements set out in Section V.2.4;

The capability and capacity of the suggested Team Roster to provide Software Services in the environment described in Section II.

V.2.2 Maintenance of the Team Roster, conditions of amendment

The Contractor shall maintain an up-to-date version of the Team Roster for the duration of the

Contract. The Contractor shall be responsible to inform the Commission when staff is to be removed

or added to the Team Roster, and if the details of a staff are modified.

If the Commission estimates that the Team Roster lacks capacity or capability to perform a specific work within the specified timeframe or quality, the Contractor shall provide, within five (5) working days after a request is made by the Commission, the details of skilled and experienced staff to be added to the Team Roster for consideration by the Commission. The Commission shall be entitled to confirm whether or not the proposed Team Roster amendment is

acceptable.

As described in Section II, the Commission estimates a fluctuating volume of services to be provided

throughout the years. It is therefore acceptable that some or all staff on the Team Roster are available

to the extent of only 50% of a Full-time equivalent (FTE) during the first year. The bidder must

nevertheless propose a Team Roster with sufficient expertise to cover all required services for the

Task(s) they bid for, as described in Section III. No team member shall be simultaneously assigned to

two or more tasks at the same time.

V.2.3 Software Team

Prior to the issuance of a FRD, as described in section VI.1, the Contractor is requested to propose to

the Commission a list of staff (Software Team) that will be working under this FRD. This Software

Team shall be selected from the Team Roster.

The Contractor shall ensure that each staff of the Software Team:

is dedicated to the project and one specific task of the project during the development period (unless otherwise agreed); and

is not re-assigned from the project without the prior written consent of the Commission.

The Contractor shall satisfy the following mandatory requirements:

An established pre-screening process to identify suitable staff;

Provide reasonable evidence that the proposed Software Team is appropriately skilled and experienced to carry out the work plan;

Page 20: ANNEX B REVISION NO. 1 · terms of reference june 2019 page 1 of 23 annex b terms of reference revision no. 1 june 2019 for the provision of software engineering services support

Terms of Reference June 2019 Page 19 of 23

Replacement of poor performing Software Team members or provision of specific training to address a gap in knowledge identified after a Software Team member has started his or her assignment, at no cost for the Commission, upon request by the Commission;

Establishment of an induction program to help new members of the Software Team become productive within a predefined period after the start of their assignment for the Commission. The duration of the period will be from one to three months depending on the type of service.

The Commission shall be entitled to confirm whether or not the proposed Software Team is

acceptable.

The Commission reserves the right to seek an immediate replacement for any Software Team

member, who is found unsuitable for the assigned tasks as determined by the Commission. In such

cases, the Commission will request a replacement Contractor staff, with equal or better qualifications

and experience, to complete the tasks. If no suitable replacement consultant can be agreed upon, the

Commission reserves the right to terminate the assignment of the unsuitable Software Team member

with immediate effect. Continuity of staff is an important consideration. The Contractor shall

therefore take necessary measures to ensure a seamless transition when taking over the services and

keep changes to staff being assigned to the Commission to a minimum throughout the duration of the

contract.

V.2.4 Requirements for each staff on the Team Roster

Each of the Contractor’s staff on the Team Roster must have at least the following qualifications:

A university degree in Computer Science, Mathematics, Physics, Electrical Engineering or a related scientific/technical/engineering field; alternatively, a minimum of ten (10) years of relevant professional experience would be recognized in lieu of a university degree;

At least three (3) years of experience in object oriented development and using design patterns, in depth experience with at least two of the following programming languages: C/C++, FORTRAN, Scheme, Java, JavaScript or Python;

Experience in providing services for the development of UNIX and/or Linux-based client/server systems is an asset;

Recent experience with PostgreSQL is an asset;

Recent experience with MongoDB and/or Apache Cassandra is an asset;

Direct experience with one or more Agile frameworks, preferably Scrum;

Scrum certification (e.g. certified Scrum Master or Scrum Developer) is an asset;

Familiarity with the software development lifecycle, including eliciting requirements, quality management plans, user acceptance testing, and end-user training;

Excellent business presentation and facilitation skills;

Proficiency in written and spoken English.

Page 21: ANNEX B REVISION NO. 1 · terms of reference june 2019 page 1 of 23 annex b terms of reference revision no. 1 june 2019 for the provision of software engineering services support

Terms of Reference June 2019 Page 20 of 23

VI. ORGANIZATION OF WORK

The Commission may ask for services according to the Tasks as described in section III. The Work

will be called-off directly through the issuance by the Commission of a Formal Request for Delivery

(FRD) to the Contractor.

VI.1 FRD Call-off

The Services will be initiated by the Commission in writing through a FRD.

VI.1.1 Initiating Work

Before the issuance of a FRD to the Contractor and upon receipt of a written request from the

Commission, containing elaborations and definitions as to the nature of the particular Service(s), the

Contractor shall provide, at a minimum, within one (1) week of receiving the written request, the

following information in the form of a work plan for each Service identified in the written request:

A list of staff (Software Team) who will be working under this FRD. These staff shall be a subset of the Team Roster, as described in Section V.2;

Work plan and key schedule to accomplish the Service;

Number of person-days to be allocated to the Service;

Where applicable, the cost of travel to the site based on the most economical and direct option. The Commission reserves the right, based on the information provided by the Contractor, to approve the type of airfare or to purchase a ticket as outlined in Section IV above. The DSA shall be paid in accordance with Section IV;

Place of work (on-site/off-site);

Commencement date and completion date of the Service.

After review of the work plan for each of the Service identified in the written request, and only after

acceptance by the Commission, the FRD shall be issued to the Contractor.

Each FRD shall be based on one (1) of the Tasks described in this ToR under section III and on the

approved work plan for each of the Service to be completed. The Commission will forward FRDs to

the Contractor with adequate advanced notice and containing all necessary details, expected

deliverables, and minimum requirements for satisfactory performance.

The Commission shall not be held liable for the performance of any particular Service(s) which have

been performed before the formal issuance of a FRD to the Contractor.

VI.1.2 Completion and Acceptance

At the end of a particular Service under the FRD, the Contractor shall submit to the Commission the

deliverable as stated in the respective FRD. The work will be reviewed by the Commission staff and

by the Commission management against requirements and the Commission internal working practices

and standards.

If requested by the Commission in a FRD, upon completion of the Service(s) under the FRD, the

Page 22: ANNEX B REVISION NO. 1 · terms of reference june 2019 page 1 of 23 annex b terms of reference revision no. 1 june 2019 for the provision of software engineering services support

Terms of Reference June 2019 Page 21 of 23

Contractor may be required to provide an oral presentation (including slides/handouts as required) to

the Commission at its Headquarters in Vienna.

VI.1.3 Invoicing and Payment

The work and deliverables, after being evaluated under reasonable performance criteria and accepted

as satisfactory by the Commission, will form the basis for invoicing and payment of a particular

Service performed under a FRD.

Page 23: ANNEX B REVISION NO. 1 · terms of reference june 2019 page 1 of 23 annex b terms of reference revision no. 1 june 2019 for the provision of software engineering services support

Terms of Reference June 2019 Page 22 of 23

VII. Methodology, Standards, and Technology

The Contractor shall deliver software through incremental releases according to the Agile software

development methodology (specifically Scrum). In particular, the Contractor shall follow the “Release

Early, Release Often” (RERO) software development philosophy which emphasizes the importance of

early and frequent releases in creating a tight feedback loop between developers, testers and users.

Each new delivery shall include a description of what changes were made relative to the previous

release, along with a list of files that were modified by each change.

Generally, the Commission favours the use of a small number of technologies centred around the

programming languages Java and JavaScript. The Contractor should use the same technologies unless

otherwise agreed with the Commission in the course of performing work under this Contract.

All software developed under this contract shall follow the IDC Coding Standards (which includes

recommended coding style, the required implementation of unit tests, and use of open standards and

open-source libraries where possible) and shall compile and run under the Linux operating system

family (RHEL/CentOS 7.x, or compatible). The IDC guidelines for requirements engineering shall

form the basis for eliciting and documenting requirements.

The software that the Contractor shall be working on is being maintained in the Git/GitHub version

control system and all software releases shall be delivered via this version control system.

The Commission has a change management process in place that covers reporting and tracking

software problems, as well as releasing software updates in its production environments. An

Integrated Ticketing System based on the JIRA software is used to support this change management

process. For the purpose of the project, a simplified and streamlined process will be used with

minimal overhead, as long as the reengineered software is not yet replacing part or all of the existing

production system. The Contractor personnel shall familiarize themselves with this process and follow

it when releasing software upgrades.

The Contractor shall update the respective documentation to reflect changes caused by any upgrade to

the software. All documentation shall adhere to the IDC Documentation Standards. Both standards

mentioned above will be made available to the Contractor upon request after the entry into force of

the Contract.

VII.1 Work environment

If needed, remote access to the relevant infrastructure in the PTS network should be given to the

Contractor. «Infrastructure» comprises, but is not limited to software, servers, VLANs and databases.

For on-site Services provided at the PTS headquarters in Vienna, Austria; the working language is

English, and the normal weekly working hours are forty (40), Monday to Friday. Exceptionally, there

may be a need to work overtime or on Saturdays and Sundays. The working period in a given day will

be defined on the basis of actual needs even though the usual working hours Mondays to Fridays are

between 08:00am and 06:00pm.

Page 24: ANNEX B REVISION NO. 1 · terms of reference june 2019 page 1 of 23 annex b terms of reference revision no. 1 june 2019 for the provision of software engineering services support

Terms of Reference June 2019 Page 23 of 23

VIII. Monthly Report

The Contractor shall submit a Monthly Report to the Commission, electronically via email and within

the first five (5) working days of each calendar month, describing all the activities performed during

the preceding month, including but not limited to:

Summary of technical support activities done;

Status of active technical support issues;

Status of tickets, bug reports and possible fixes;

Status and updated plan for all active development tasks.