PolicyAndProcess/MaintenanceCosts

Not logged in - Log In / Register

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:

Experimental metrics

We are using lines of source code as a proxy for all these costs. While this is in some ways a poor metric, it is very simple to apply using the diffstat at the top of our merge proposals.

The LP Project lead will do a review of the impact of this approach on the 24th of february, then the end of March, then the end of May.

Possible other metrics

Responsibilities

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).

Prior art

The drizzle project took a very similar approach - they took one metric for maintenance costs/complexity - lines of code - and then used a simple test: patches which increased LoC were highly undesirable. This was very successful for them - they have massively reduced the size of the code base and increased its rate of change.

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 affect costs

XYZ is necessary, but would increase costs, 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

The LP Project lead approved this policy on the 10th Feb 2012.

How

Look at the /HitList to get some suggestions on what you could do to offset your contributions.

PolicyAndProcess/MaintenanceCosts (last edited 2012-04-11 21:36:05 by lifeless)