Developing Services

From Dark Peak
Revision as of 11:50, 14 October 2017 by Ejs (talk | contribs) (Remove definition of service levels and their requirements as these have their own pages now)
Jump to: navigation, search

Users, and possibly other services, need to be able to understand what they can expect from a service. In particular, how well it can be relied upon. To do that we define maturity levels of services (Alpha, Beta, Live) and define types of service based upon who/what consumes them (User, Co-Op, Infrastructure).

These definitions and processes attempt to keep things:

Avoid over specifying
Limit special cases
where possible, grant autonomy to the people responsible for the service.
Clarity of requirements to maintainers
What is required at each level
What is provided by the Co-op to help achieve these requirements.
Clarity of service to those outside the set of maintainers
What’s used to create the service
What’s provided to the users of the service
How the service aligns with co-op principles
End-user focused
What the user can expect of the service expect in terms of Service Quality and long term availability
Build only what’s needed, if indirectly, by the end user



A service other services rely on
A service the co-op relies on to function, directly or indirectly.
A service that only exists for our members to use


Ascending the maturity levels is validated with a co-op vote checking that the service has met the requirements for the new maturity level. Whilst this is not a subjective vote on the quality of how requirements are met, there is an expectation that discussion will occur between members prior to a vote occurring. This should ensure that the quality of how requirements are met remains acceptable.

Services are expected to provide an annual update (via the AGM) that indicates whether the service continues to meet the requirements for the maturity level it is operating at. Services which start to fail to meet their requirements are given a reasonable period of time to correct the deficiencies (until the next general meeting); continue to fail to meet the requirements means the service descends one maturity level. \Such a degradation may place other services also under scrutiny; for example infrastructure being degraded would also affect any services consuming that infrastructure. In addition, live service maintainers have the responsibility to notify the co-op of a change which would mean that the service no longer meets its live requirements. The board should act on these notifications by following the same process as above (ie - entering the “reasonable” grace period of time to correct the deficiencies).

Level requirements will only change at the the AGM or an EGM. Services then have until the next AGM to meet these requirements. If that is failed then the above process is followed.