[ubuntu-studio-devel] Introduction to feature definition (for all you newcomers, and memory refresh for the rest)

Kaj Ailomaa zequence at mousike.me
Thu Dec 10 10:27:19 UTC 2015


All contributors who don't know what this is, please ready through this,
as it is crucial for how we organize our development. 

# Introduction to feature definitiion

## What is feature definition?

Typically, at the beginning of a development cycel (6 months), some sort
of plan is laid out on what is to be done. For each area of development,
the features are specified on a wiki page.  Like this one (though not
complete):
https://wiki.ubuntu.com/UbuntuStudio/FeatureDefinitions/MultimediaApplicationCategorization

Then, one or many blueprints may be created at launchpad which has a
list of tasks that team members can take on themselves to do and mark
ready once they are done with them. In this case, there are three
different blueprints for "MultimediaApplicationCategorization", and this
is one of them -
https://blueprints.launchpad.net/ubuntustudio/+spec/fdc-audio.

The blueprint is typically drafted during the feature definition period.
Once feature definition is over, and no one objects about any new
features, we start working on implementation. Where many people are
involved in doing the same form of tasks, blueprints become handy as to
make sure not two people are doing the same thing, but for a lot of
other things a feature definition on a wiki page may be quite enough.

## When do we do it?

Feature definition is what Ubuntu flavor devs usually do during the
first month of a development cycle(November -> December), which would
have been November in this case. I was a little busy with other things,
and since we seem to have more activity now compared to then, it may be
just as good we begin feature definition now (though, much is already
defined, as you will see later).

## Feature Definition Freeze

After this date features can not be added without consent from a lead of
some sort.
It is has fact a specific date that Canonical follows for any features
added for Ubuntu. We are less strict with this date, but it is a
reasonable date which allows for enough time to complete implentations
and testing of new features. The date is different for each cycle, but
is about one month after development begins. For this cycle it was 26th
of November. You may see all of the dates here -
https://wiki.ubuntu.com/XenialXerus/ReleaseSchedule

Since we obviously are not on schedule, we will not be freezing any
features yet.

## Where can I see all of the feature definitions and blueprints?

*Feature Definitions*

Here are all of our feature definitions:
https://wiki.ubuntu.com/UbuntuStudio/FeatureDefinitions/
They appear there, if a page has the root
UbuntuStudio/FeatureDefinitions/

*Blueprints*

Links at the wiki: https://wiki.ubuntu.com/UbuntuStudio/Blueprints
Main topic blueprint at launchpad:
https://blueprints.launchpad.net/ubuntustudio/+spec/ubuntustudio-topic-x

## If I have an idea and would like to make something out of it

If you have an idea you would like to develop, start by discussing it on
the mail list. If you aren't breaking something else, or in any other
way affecting the harmony of the whole system, there is no reason for
anybody to object what you want to do.
Whether you are alone in being interested in that specific feature, or
not, you'd start by making a feature definitions page at the wiki.

## Conclusion

The whole system with feature definitions and blueprints is very useful
for a large group of developers who cooperate on may areas. Since we are
very small, the use of blueprints is less important in many cases.
Feature definitions however are crucial, and developers should not
deviate from those unless discussing with someone first.

And if you have any at all questions, please do ask.



More information about the ubuntu-studio-devel mailing list