Development process - PRD-DEV-001

All our developments fall in one of the following categories.

Projects progress are discussed during our monthly team meetings and tracked in meeting notes.

Document references

Terms

Project types

Research and development

R&D are internal developments, targeting internal needs (though software could be used by a wider audience)

Projects:

Collaboration

Those projects relate to collaboration requests where we are involved in developments of a larger project, involving external or internal partners. Partner may be involved in development or not (only providing requirements, existing software, data, etc.)

Projects:

Web interface

Those projects relate to external or internal partners requesting the development of a basic development. By basic, we mean projects requesting only a few days of work.

Projects:

Workflow

Project follow-up/planification

Project go/no-go (at the start or during project) is discussed during team monthly meetings along major issues/decisions to take.

Cesgo will track high level planning of the project and partners interactions (if any is needed), while github/gitlab will be used for planning (issues/features/milestones)

R&D

A final report will be created to evaluate management and technology issues and project state (go to production, orphan, etc.).

When in production, one must contact a system administrator to add backups and check security requirements.

Development

If software is put in production in our infrastructure, one must contact a system administrator to add backups and check for security requirements.

Light

Development constraints

There is no language constraints but Python, Node and Go are default choices.

If using Python, Python 3 must be used.

Docker should be used by default. Application should provide kubernetes recipes.

Commonly used frameworks:

Web applications must be minified for production.

Deploying in our infrastructure

All our servers are Linux based x86_64, so final application should only target this architecture. Software may target other archs/OS but this is not mandatory.

If not using Docker, software must run on CentOS 8, our current operating system.

Our infrastructure provides shared directories between servers, they can be used to share files for scalability or multi-component share.

Web accesses are restricted, all web servers communication must go through our web proxy.

Applications should not run as root but as unprivileged user.

In case of authentication, software must use our LDAP server if applicable. Elixir AAI can be used for a broader audience, allowing Elixir community to use our tools.