||<>|| * '''Name:''' Feature Development Process * '''Owner:''' [[https://launchpad.net/~launchpad-leader|Launchpad Project Lead]] * '''Effective:''' ??? * '''Review:''' 2011-07-31 == Process Overview == We develop or re-work features for Launchpad all of the time. It turns out that there's quite a lot of stuff that we have to do for each feature. This process summarises what we do for most features, and links out to more detailed process documents. {{attachment:feature-flow.png}} === Process Description === ==== 0. Stakeholder process ==== Feature work starts by [[https://dev.launchpad.net/PolicyAndProcess/StakeholdersMeeting|consulting Launchpad stakeholders]] to decide what feature we should work on next. ==== 1. Analysis / LEP drafting / evidence gathering ==== * Create a project page on [[Projects]] using [[ProjectTemplate]] * Announce that we are commencing work to the stakeholders * Create a LEP, see LaunchpadEnhancementProposalProcess. ==== 2. Core development cycle (2 weeks) ==== 1. Plan work 1. [[../../UserResearch|User research]] / UI design 1. Development (this is what happens when software engineers make software) 1. [[../FeatureDevelopmentCheckpoint|Product team checkpoint]] ==== 3. User acceptance testing with stakeholders ==== * Stakeholders should already be consulted at each checkpoint * Announce to stakeholders that work is finishing up and that this is their last chance to review the feature * Major changes strongly discouraged * Purpose is to communicate that the feature is done and to help stakeholders feel ownership of it ==== 4. Release & promote ==== 1. Ask the Squadron Leader to add a feature flag for ~launchpad-beta-testers. 1. Announce a time-boxed beta period: * briefly explain the feature * warn of any known limitations * link to where bugs should be reported and state the tag people should use. 1. Prepare announcements: * Record a screencast of the beta. * Write an announcement blog post. * Draft any documentation updates. * If appropriate, contact press (OMG Ubuntu! is receptive) and get them excited about the feature. Draft something for them, if required. 1. On the final day of the beta, check that the Squad is ready to take it live. 1. On release day, coordinate with the Squad as to when they'll take the feature live. Post the announcement, screencast and documentation changes straight after release. 1. If press are to be involved, contact them. === Participants === * Launchpad Product Strategist * Feature squad * Testers == Supporting Documentation ==