PolicyAndProcess/MaintenanceCosts

Not logged in - Log In / Register

Revision 1 as of 2012-02-01 03:29:54

Clear message

This is a draft

Feedback to RobertCollins or on the developers list please.

Policy Overview

Quite separate to adding new features and facilities we have to maintain Launchpad indefinitely. This policy is about containing the costs of maintenance while still allowing Launchpad to be changed and extended.

In short: all changes to Launchpad must decrease, or at worst not increase the overall cost of maintenance.

Maintenance means:

Responsibilities

Anyone that does code/design/project review for Launchpad needs to include maintenance costs in their review. You are expected to think about the cost of maintaining a project and allow for it in some fashion.

This may mean saying 'no' to a volunteer contributed patch because it would increase our maintenance costs. (But you could then offset the cost yourself somewhere else, or ask them to fix e.g. a tech-debt bug to counteract the increased costs).

We don't have a simple rule for this, and given the size of LP it may be hard to come up with one.

Prior art

The drizzle project took a very similar approach - they took one metric for maintenance costs/complexity - lines of code - and then made a simple rule: no patch could land which increased the LoC in the project. This was very successful for them.

Why this policy?

Launchpad is resourced with a (mostly) fixed size maintenance team: if the costs of maintenance increase, we will fall behind (with a corresponding decrease in how well we do our maintenance).

Launchpad is currently very expensive to maintain, and we can do much more interesting things if we make it cheap to maintain.

What things increase costs

What things decrease costs

XYZ is necessary, but is in the increases-costs list, what choices do I have?

I want to do a bunch of things that will increase costs, but eventually decrease them

Great. Do it - the policy is intended to apply to arc's of work, or stories, not to individual commits. (But sometimes individual commits are the right place to examine such things).

When

We are starting this policy as soon as it has been approved.