Skip to content

Instantly share code, notes, and snippets.

@outrunthewolf
Created July 10, 2017 11:38
Show Gist options
  • Save outrunthewolf/8dd783594ee36bb127221d6450af4115 to your computer and use it in GitHub Desktop.
Save outrunthewolf/8dd783594ee36bb127221d6450af4115 to your computer and use it in GitHub Desktop.
Feature

This is a working document

The Feature

Definition of this document

To outline what a feature is, how a feature grows from Idea, Conception, Birth and through to Adulthood (Iteration).

What is a feature?

A feature is any new or iterated functionality added to any part of our applications or ecosystems.

Some examples of features at some point in their lives:

  • New website header
  • New colour for a submit button on the dashboard
  • New shipping module
  • An update to an already existing system
  • An iteration to make a feature faster
  • A change in office snacks

What is not a feature?

  • A bug fix

Lifecycle of a feature

A feature has a lifecycle. It is an idea, a conception, a birth, and an iteration. Features can also die. They are living things.

The Idea

Features start as ideas. An idea is a concept for functionality or a change in some form that will make our company or applications better for us and our users.

Ideas can be very high level, or very small things.

What should ideas look like?

An idea should be written up using the following template:

Name Reward Effort

Ideas should benefit the user and the company. None can live without the other.

How do we choose an Idea?

Every idea can be proposed, and added to a bucket. Once we fill a bucket with ideas we can move them to Conception.

The Conception

The Conception s when an idea is chosen to move to birth or to be dropped from existence.

How do we choose ideas to be conceived?

Ideas taken from the Idea Bucket are validated, discussed by the team.

How many Ideas can be Conceived?

Some Ideas may be small, some large, but a rule of thumb is, no more than 3 ideas can make it to be Conceived for Birth.

The Birth

All features when birthed start out as beta. Their use is then tested and validated over time.

In its most basic form a first delivered feature starts life like the following:

  • Specced (Basic Schema, Build Pattern (How do we build it?))
  • Built
  • Documented
  • Written about (Blogged)
  • Deployed
  • Announced Private
  • Announced Public

Adulthood

Adulthood is when a feature reaches the stage in its life when it is one of the following things:

Benign

When a feature becomes benign, it does not grow any further. It fits the following rules:

  • Fulfills its role
  • Doesn't necessitate iteration

Valuable

When a feature becomes valuable, it can be iterated upon. Its fits the following rules:

  • Has scope for expansion
  • Necessitates iteration

How does a feature become valuable?

A feature can only become valuable if it:

  • Is heavily used by our users or team
  • Generates the company more money relative to other features
  • Is the basis for a future feature
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment