Skip to content

Platform Maturity and Criteria

enikao edited this page Jun 1, 2016 · 4 revisions

All of this document is only a proposal yet

Maturity

We distinguish the following levels of maturity in mbeddr Platform:

Stable

  • Meets the Criteria below
  • Will be maintained
  • Will stay stable
    • No incompatible changes
    • Or, (preferably automated) migration path
  • Can be expected to "just work"

Staging

  • Not yet as mature as Stable
  • Aims to get there
  • Won't stay in Staging forever -- either develops to be Stable or drops out
  • Maximum time in Staging: 3 months

Rest (only during transition, see below)

  • Everything required in the platform for historic reasons, but not meeting the criteria above
  • Will be removed after transition if not matured

Criteria

Code quality

  • No log or other unintentional output
  • All dependencies met, no unnecessary dependencies
  • Only unavoidable (i. e. false positive) errors / warnings / infos in model check (including languages, solutions, tests, documentation, examples, generators)
  • No code duplication

Build / Deployment

  • Code, tests, documentation, and examples are added to the appropriate automated builds
  • Works when used from or available in
    • source model
    • project library
    • application library
    • IDEA plugin
    • IDEA plugin with stripped models

Tests

  • If all tests are green we need to be sure it works
  • Maybe exception for UI-heavy stuff (hard to test)

Documentation

  • All user-facing features and options are documented, preferrably in mbeddr doc language and integrated with documentation aspect

Examples

Organization

  • At least two people know and understand the implementation
  • Used in at least two Consultings, Projects, Products
  • Adheres to Development Guide

Transitional Criteria

In order to move from "big collection of interesting parts of unknown maturity" to the state described above, we introduce Transitional Criteria. Stable Platform elements should strive to meet complete Criteria, but are sufficient to meet Transitional Criteria up until 2017-06-30. Platform elements not meeting complete Criteria after this date will be considered Staging.

Code quality

  • No log or other unintentional output
  • All dependencies met, no unnecessary dependencies
  • Only unavoidable (i. e. false positive) errors / warnings / infos in model check on all models (including languages, solutions)
  • No code duplication

Build / Deployment

  • Code, tests, documentation, and examples are added to the appropriate automated builds
  • Works when used from or available in
    • source model
    • project library
    • IDEA plugin

Organization