Diff for "GuidedProjectRegistration"

Not logged in - Log In / Register

Differences between revisions 13 and 28 (spanning 15 versions)
Revision 13 as of 2009-02-26 20:06:13
Size: 10765
Editor: barry
Comment:
Revision 28 as of 2009-05-14 18:00:15
Size: 10580
Editor: barry
Comment:
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
creating various related artifacts such as teams and mailing lists, and in creating various related artifacts such as teams and mailing lists, and
Line 29: Line 29:

== Guided ==

 * Ask if this is a big project, personal project, medium project, public
 project, big project, mature project, etc.
 * How much customization should be allowed?
 * Links to help and/or the tour along the way


== Expedited ==

 * Accordion style reveals for more information.
 * When creating the project, prompt for common team names
 * Styles or templates for power users?
Related bugs:
 * [[https://bugs.edge.launchpad.net/launchpad-registry/+bug/333932|project creation page should encourage common licenses]]

== JavaScript ==

For all the u/i proposals here, it is assumed that the user will be using a
Java``Script enabled browser. Everything described here can already be
accomplished through the normal project and team creation workflows, so
there's almost no new underlying functionality here. What ''is'' new is the
way these options are presented to the user. To take maximum advantage of the
possibilities, we'll be using Java``Script extensively. A non-Java``Script
user will be able to accomplish everything in this proposal, albeit less
conveniently (well, in exactly the same way they can currently do it).


== Micro-tours ==

One way to organize these guided project creation tasks is through the use of
''micro-tours''. A micro-tour is one step, or a small series of steps, used
to accomplish part of the guided task. Micro-tours can be combined into a
wizard as described in this spec. They can also be used individually after a
project has been created, to help that project evolve.

For example, there may be a micro-tour to help projects register a number of
teams. This could prompt the user for teams such as ''myproject-users'' and
''myproject-devs''. It would also prompt them to ask whether they want
mailing lists for those teams. This micro-tour could be part of the original
guided project registration, but if this step was skipped during that initial
registration, the project owner could come back to these steps later when
their project has gotten large enough to warrant teams and mailing lists.

This spec might include metric gathering of two types:

 * A count of the number of times each micro-tour has been started
 * A count of the number of times each micro-tour has been completed

The reason for collecting these statistics is so that we will have a better
understanding of which micro-tours people are interested in, and which may not
succeed in serving their audience. If a micro-tour is frequently started but
abandoned, it's an indication that it's not very useful to users. If a
micro-tour is rarely started, then perhaps the micro-tour's goal is not
evident.


== Stories ==

Here then are some stories exploring the various tasks and breakdown of work
to implement the above vision.


=== Tour start ===

'''As a''' novice Launchpad user, '''I would like to be''' guided through
project creation '''so that I can''' get started with Launchpad without having
to understand everything or hunt through a thousand clicks.

Mock up: {{attachment:plusnew1.jpg}}

 * Step 1 of a 2 step registration process.
 * The name of the project is the most important thing, so we ask for that first.
 * Instead of asking for the project id, which many novice users may not understand, ask for the path component to the project's Launchpad url. Note that this gets auto-filled by a suggestion when they enter the project's name. We'll do client-side validation of both fields, and there will be help text somewhere to explain what they're entering.
 * Summary is unchanged from current site.
 * `Continue` moves you to step 2

Mock up: {{attachment:plusnew2.jpg}}

 * Step 2 of a 2 step registration process.
 * We do a full-text search of the project name and summary, bringing up say the top 5 results. Each project name in search results is hyperlinked to its project page.
 * Under search results is license selection widget, used if they really want to continue with the registration.
 * Use of plus and minus buttons allows for multiple license selection.
 * Pull-down will have say 10 most popular open source licenses.
 * See details below for how to enter other licenses.

Mock up: {{attachment:plusnew-detail1.jpg}}

 * License selection detail 1: Other open source license.
 * Provide space to enter link to OSI page describing license.
 * If it's not OSI approved and listed, use "Other/proprietary license"
 * Validate that OSI page doesn't 404 to avoid spoofs.

Mock up: {{attachment:plusnew-detail2.jpg}}

 * License selection detail 2: Other/Proprietary license
 * Used when non-OSI approved open source license, or proprietary license is used.
 * Give links to licensing policies.
 * Encourage commercial projects to contact us for paid support.
 * Allow for entering description of this non-OSI license.


=== Project details progress meter ===

'''As a''' project owner, '''I would like to''' see a progress meter that
shows me how much of the project's attributes I've provided, and how many of
the available services I've enabled for my project, '''so that I can''' have a
better sense of how completely my project communicates its intent to my users.

 * The idea is something like the Linked-In progress meter that shows you
   you've filled in 85% of your profile. In this case it would include some
   text like "Your project profile is 60% complete and you're using 75% of the
   services available to your project."


=== Link LP to your upstream project ===

'''XXX The following micro-tours still need mockup updating.'''

'''As the''' owner of a project already being managed externally, '''I would
like to''' fill out a minimal amount of information, '''so that I can''' have
Launchpad import my project with a minimal number of clicks.

Mock up: {{attachment:mirrored.jpg}}

 * Project ID
 * Project name (i.e. `displayname`)
 * Project summary
 * Licenses
   * Reveal proprietary license field if needed
 * Homepage
 * SF page
 * Freshmeat
 * Wiki
 * Downloads


=== Micro-tour: Teams ===

'''As a''' project owner, '''I want Launchpad to''' guide me through team and
mailing list creation, '''so that I can''' more easily set up forums for
people to participate in my project.

Mock up: {{attachment:teams.jpg}}

 * Small project
   * Example: Just you doing all the work
   * [x] Create `foo-users` mailing list
   * [x] You are the maintainer
   * [ ] You are the driver
 * Medium project
   * Example: 5-10 people working together
   * [x] Create `foo-core` team to be driver and maintainer, and own code
   * [x] Create `foo-users` mailing list
   * [x] Create `foo-devs` mailing list
 * Large project
   * Example: 50+ with teams fulfilling roles
   * [x] Create `foo` as a super team
   * [x] Create `foo-core` team to be driver and maintainer, and own code
   * [x] Create `foo-users` mailing list
   * [x] Create `foo-devs` mailing list
     * [ ] default code reviewer
   * [x] Create `foo-security` mailing list
     * [ ] security contact
   * [x] Create `foo-bugs`
     * [ ] link to bug contact
   * [x] Create `foo-commits`
     * [ ] subscribe to trunk branch

Other U/I thoughts:
Line 54: Line 197:
== JavaScript ==

For all the u/i proposals here, it is assumed that the user will be using a
Java``Script enabled browser. Everything described here can already be
accomplished through the normal project and team creation workflows, so
there's almost no new underlying functionality here. What ''is'' new is the
way these options are presented to the user. To take maximum advantage of the
possibilities, we'll be using Java``Script extensively. A non-Java``Script
user will be able to accomplish everything in this proposal, albeit less
conveniently (well, in exactly the same way they can currently do it).


== Micro-tours ==

One way to organize these guided project creation tasks is through the use of
''micro-tours''. A micro-tour is one step, or a small series of steps, used
to accomplish part of the guided task. Micro-tours can be combined into one
of the larger guided or expedited wizards described above. They can also be
used individually after a project has been created, to help that project
evolve.

For example, there may be a micro-tour to help projects register a number of
teams. This could prompt the user for teams such as ''myproject-users'' and
''myproject-devs''. It would also prompt them to ask whether they want
mailing lists for those teams. This micro-tour could be part of the original
guided project registration, but if say, this step was skipped during that
initial registration, the project owner could come back to these steps later
when their project has gotten large enough to warrant teams and mailing
lists.

This spec must include metric gathering of two types:

 * A count of the number of times each micro-tour has been started
 * A count of the number of times each micro-tour has been completed

The reason for collecting these statistics is so that we will have a better
understanding of which micro-tours people are interested in, and which may not
succeed in serving their audience. If a micro-tour is frequently started but
abandoned, it's an indication that it's not very useful to users. If a
micro-tour is rarely started, then perhaps the micro-tour's goal is not
evident.


== Stories ==

Here then are some stories exploring the various tasks and breakdown of work
to implement the above vision.


=== Tour start ===

'''As a''' novice Launchpad user, '''I would like to be''' guided through
project creation '''so that I can''' get started with Launchpad without having
to understand everything or hunt through a thousand clicks.

[[attachment:plusnew.jpg]]

 * Host your project on LP
 * Link LP to your upstream project
   * I'm registrant but not owner
   * Run micro-tours: primary info, bug tracker, code
 * Take the LP tour
 * Test drive LP
 * Search for an existing project
 * Return to LP home


=== Expedited project registration ===

'''As an''' prospective (but experienced) project owner, '''I would like to'''
fill out a minimal amount of information, '''so that I can''' get my new
Launchpad project up and running quickly and with a minimal number of clicks.

 * The expedited registration form may ask for only three required pieces of
   information: the project name, the project id, and a summary.
 * After entering these details, the user could immediately create their
   project, or they could continue to provide details by running one or more
   micro-tours.


=== Expedited project import ===

'''As the''' owner of a project already being managed externally, '''I would
like to''' fill out a minimal amount of information, '''so that I can''' have
Launchpad import my project with a minimal number of clicks.

 * Ask for the minimum information as above: project name, id and summary.
 * Ask for project's existing home page, which we could use to see if the
   project is a duplicate.
 * Run various micro-tours for importing bug tracker and code. Possibly run a
   micro-tour for importing or enabling translations and mailing list
   subscriptions.

(The querying of the home page was from the original brain dump. It may be
useful to ask for this even in the expedited project registration story.)

(The original brain dump all suggests that we detect if the user is asking for
Ubuntu CDs. We may also want to do some additional spam-project detection.)


=== Project details progress meter ===

'''As a''' project owner, '''I would like to''' see a progress meter that
shows me how much of the project's attributes I've provided, and how many of
the available services I've enabled for my project, '''so that I can''' have a
better sense of how completely my project communicates its intent to my users.

 * The idea is something like the Linked-In progress meter that shows you
   you've filled in 85% of your profile. In this case it would include some
   text like "Your project profile is 60% complete and you're using 75% of the
   services available to your project."


=== Micro-tour: Launchpad primary information ===

'''As a ''' project owner, '''I want Launchpad to''' ask me about additional
information when Launchpad is the primary location for my project, '''so that
I can''' avail myself of additional Launchpad services.

 * Query the user for
   * description
   * license
   * drivers
   * "Uses Launchpad for" stuff, on by default
Line 185: Line 203:

Mock up: {{attachment:setupbugs.jpg}}
Line 195: Line 215:
=== Micro-tour: Set up translations === === Micro-tour: Code ===

'''As a''' project owner, '''I want Launchpad to''' ask me whether code will
be hosted on Launchpad or imported, '''so that I can''' make my code available
to my project's users.

 * Is code hosted in LP?
 * Is code remote?
   * Ask for import url

Mock up: {{attachment:code.jpg}}


=== Micro-tour: Set up answers, blueprints, translations ===

Mock up: {{attachment:setup.jpg}}
Line 201: Line 236:
 * Choose translation policy  * Enable translations, blueprints, answers
 * Optionally
Choose translation policy
Line 203: Line 239:
 * Upload new templates and translations


=== Micro-tour: Code ===

'''As a''' project owner, '''I want Launchpad to''' ask me whether code will
be hosted on Launchpad or imported, '''so that I can''' make my code available
to my project's users.

 * Is code hosted in LP?
 * Is code remote?
   * Ask for import url


=== Micro-tour: Teams ===

'''As a''' project owner, '''I want Launchpad to''' guide me through team and
mailing list creation, '''so that I can''' more easily set up forums for
people to participate in my project.

 * Ask whether this is a small, medium or large project
 * For small projects, offer a team <project>-users and a mailing list
 * For medium projects, offer these teams (and mailing lists):
   * <project>-users
   * <project>-developers
 * For large projects, offer these teams, mailing lists, and links:
   * <project> as a superteam, no mailing list
   * <project>-users ''(link to contact-address)''
   * <project>-developers ''(link to default code reviewer)''
   * <project>-admin
   * <project>-bugs ''(link to bug-contact)''
   * <project>-commits ''(subscribe to trunk branch)''


== Mockups ==

Here are some hand-drawn mockups of some of the pages. These suck because
IANAA, but they are a starting point for discussing the layouts.

Next, the expedited project data input page for hosted projects. This gets
revealed on the +new page when you select ''hosted project'' on the previous
page.

[[attachment:quickproj.jpg]]

If you're mirroring an external project, you'd see this reveal instead.

[[attachment:mirrored.jpg]]

If instead you searched for an existing project, you'd see something like what
the bug input page shows you.

[[attachment:confirm.jpg]]

Once you entered the basic information, you'd end up on the following landing
page, which would provide JS reveals for setting up additional information.

[[attachment:landing.jpg]]

Setting up answers, blueprints and translations.

[[attachment:setup.jpg]]

Setting up the bug tracker.

[[attachment:setupbugs.jpg]]

Setting up teams.

[[attachment:teams.jpg]]
 * Optionally Upload new templates and translations


=== Micro-tour: Set up affiliations ===

Mock up: {{attachment:affiliations.jpg}}

'''As a''' project owner, '''I want to''' set up my project affiliations,
'''so that I can''' better communicate which teams and users are associated
with my project.


=== New product ===

https://bugs.launchpad.dev/redfish/+bug/15/+affects-new-product

Guided Project Registration

Guided product registration describes tasks and stories aiming to streamline and assist in the process of registering new projects. This includes easily creating various related artifacts such as teams and mailing lists, and improving the discoverability of relationships between these artifacts.

When discussing guided product registration, we're really targeting two types of users. Guided registration targets novice Launchpad users who may not be aware of all the options open to them, and may not have a clear understanding of the services that can make their use of Launchpad for project management more efficient. For these users, we will guide them through the registration process, likely making assumptions and using defaults in order to give them a common, easy-to-understand project structure. Such users will of course be able to later customize and tailor these artifacts as they become more aware of what Launchpad can provide them.

Expedited registration targets experienced Launchpad users who have a fairly good understanding of the kinds of things they want for their project, and just want a streamlined work flow for creating these artifacts. This process should aim to reduce the click count for creating projects, while allowing for inline selection of additional detail through JavaScript reveals.

Note: this spec incorporates the brain dump from a 2007 sprint.

See also: ProjectAffiliation

Related bugs:

JavaScript

For all the u/i proposals here, it is assumed that the user will be using a JavaScript enabled browser. Everything described here can already be accomplished through the normal project and team creation workflows, so there's almost no new underlying functionality here. What is new is the way these options are presented to the user. To take maximum advantage of the possibilities, we'll be using JavaScript extensively. A non-JavaScript user will be able to accomplish everything in this proposal, albeit less conveniently (well, in exactly the same way they can currently do it).

Micro-tours

One way to organize these guided project creation tasks is through the use of micro-tours. A micro-tour is one step, or a small series of steps, used to accomplish part of the guided task. Micro-tours can be combined into a wizard as described in this spec. They can also be used individually after a project has been created, to help that project evolve.

For example, there may be a micro-tour to help projects register a number of teams. This could prompt the user for teams such as myproject-users and myproject-devs. It would also prompt them to ask whether they want mailing lists for those teams. This micro-tour could be part of the original guided project registration, but if this step was skipped during that initial registration, the project owner could come back to these steps later when their project has gotten large enough to warrant teams and mailing lists.

This spec might include metric gathering of two types:

  • A count of the number of times each micro-tour has been started
  • A count of the number of times each micro-tour has been completed

The reason for collecting these statistics is so that we will have a better understanding of which micro-tours people are interested in, and which may not succeed in serving their audience. If a micro-tour is frequently started but abandoned, it's an indication that it's not very useful to users. If a micro-tour is rarely started, then perhaps the micro-tour's goal is not evident.

Stories

Here then are some stories exploring the various tasks and breakdown of work to implement the above vision.

Tour start

As a novice Launchpad user, I would like to be guided through project creation so that I can get started with Launchpad without having to understand everything or hunt through a thousand clicks.

Mock up: plusnew1.jpg

  • Step 1 of a 2 step registration process.
  • The name of the project is the most important thing, so we ask for that first.
  • Instead of asking for the project id, which many novice users may not understand, ask for the path component to the project's Launchpad url. Note that this gets auto-filled by a suggestion when they enter the project's name. We'll do client-side validation of both fields, and there will be help text somewhere to explain what they're entering.
  • Summary is unchanged from current site.
  • Continue moves you to step 2

Mock up: plusnew2.jpg

  • Step 2 of a 2 step registration process.
  • We do a full-text search of the project name and summary, bringing up say the top 5 results. Each project name in search results is hyperlinked to its project page.
  • Under search results is license selection widget, used if they really want to continue with the registration.
  • Use of plus and minus buttons allows for multiple license selection.
  • Pull-down will have say 10 most popular open source licenses.
  • See details below for how to enter other licenses.

Mock up: plusnew-detail1.jpg

  • License selection detail 1: Other open source license.
  • Provide space to enter link to OSI page describing license.
  • If it's not OSI approved and listed, use "Other/proprietary license"
  • Validate that OSI page doesn't 404 to avoid spoofs.

Mock up: plusnew-detail2.jpg

  • License selection detail 2: Other/Proprietary license
  • Used when non-OSI approved open source license, or proprietary license is used.
  • Give links to licensing policies.
  • Encourage commercial projects to contact us for paid support.
  • Allow for entering description of this non-OSI license.

Project details progress meter

As a project owner, I would like to see a progress meter that shows me how much of the project's attributes I've provided, and how many of the available services I've enabled for my project, so that I can have a better sense of how completely my project communicates its intent to my users.

  • The idea is something like the Linked-In progress meter that shows you
    • you've filled in 85% of your profile. In this case it would include some text like "Your project profile is 60% complete and you're using 75% of the services available to your project."

XXX The following micro-tours still need mockup updating.

As the owner of a project already being managed externally, I would like to fill out a minimal amount of information, so that I can have Launchpad import my project with a minimal number of clicks.

Mock up: mirrored.jpg

  • Project ID
  • Project name (i.e. displayname)

  • Project summary
  • Licenses
    • Reveal proprietary license field if needed
  • Homepage
  • SF page
  • Freshmeat
  • Wiki
  • Downloads

Micro-tour: Teams

As a project owner, I want Launchpad to guide me through team and mailing list creation, so that I can more easily set up forums for people to participate in my project.

Mock up: teams.jpg

  • Small project
    • Example: Just you doing all the work
    • [x] Create foo-users mailing list

    • [x] You are the maintainer
    • [ ] You are the driver
  • Medium project
    • Example: 5-10 people working together
    • [x] Create foo-core team to be driver and maintainer, and own code

    • [x] Create foo-users mailing list

    • [x] Create foo-devs mailing list

  • Large project
    • Example: 50+ with teams fulfilling roles
    • [x] Create foo as a super team

    • [x] Create foo-core team to be driver and maintainer, and own code

    • [x] Create foo-users mailing list

    • [x] Create foo-devs mailing list

      • [ ] default code reviewer
    • [x] Create foo-security mailing list

      • [ ] security contact
    • [x] Create foo-bugs

      • [ ] link to bug contact
    • [x] Create foo-commits

      • [ ] subscribe to trunk branch

Other U/I thoughts:

  Users: <project>-users    [X] include ml [X] Link: [contact-address]
  Devs:  <project>-dev      [X] include ml [X] Link: [bug-contact]
  Ann:   <project>-announce [X] include ml [X] Link: [news]
  Bug:   <project>-bugs     [X] include ml [X] Link: [bug-contact]
  Code:  <project>-commits  [X] include ml [X] Link: [commits]
  Other: <project>-_______  [X] include ml [X] Link: []

Micro-tour: Set up bug tracker

As a project owner, I want Launchpad to ask me about the bug tracker information for my project, so that I can mirror, import, or set up the bug tracker for my project.

Mock up: setupbugs.jpg

  • If the bug tracker is foreign:
    • Get tracker url
    • Get tracker context (for Bugzilla, Product/Component)
  • If the bug tracker is hosted in Launchpad:
    • Query for import if there is an existing foreign tracker
    • Bonus points: do a high fidelity import automatically (outside the scope
      • of this spec).

Micro-tour: Code

As a project owner, I want Launchpad to ask me whether code will be hosted on Launchpad or imported, so that I can make my code available to my project's users.

  • Is code hosted in LP?
  • Is code remote?
    • Ask for import url

Mock up: code.jpg

Micro-tour: Set up answers, blueprints, translations

Mock up: setup.jpg

As a project owner, I want Launchpad to ask me whether I want to manage translations in Launchpad, so that I can avail myself of that project service more easily.

  • Enable translations, blueprints, answers
  • Optionally Choose translation policy
  • Optionally set up translation group
  • Optionally Upload new templates and translations

Micro-tour: Set up affiliations

Mock up: affiliations.jpg

As a project owner, I want to set up my project affiliations, so that I can better communicate which teams and users are associated with my project.

New product

https://bugs.launchpad.dev/redfish/+bug/15/+affects-new-product

GuidedProjectRegistration (last edited 2009-05-14 18:00:15 by barry)