← Back to team overview

launchpad-dev team mailing list archive

The revelation of team creation

 

Hi Purple squad, et al.

This is a summary of our new understanding about team creation from the
Purple Squad's discussion about how to create a team at the time of
project registration. We know new projects need to be created with new
teams to ensure sharing rules are setup correctly -- most unwanted
disclosures are caused by improper setup. We want to fix the very old
bug where users need to quickly create a team to complete another task.

1. The thoughts expresses in
    https://bugs.launchpad.net/launchpad/+bug/250955
are correct, but are somewhat irrelevant today.

2. Users rarely see the "Choose..." link that is semantically wrong for
that case where the user knows that a new team is needed. This is an
anachronism from the old popup code...maybe we want to switch to an icon?

3. In fact, since we replaced the project role edits links with pickers,
they are never seen by interactive browsers.

4. Which means we have a regression...there is no link to create a team
on the project front page.

5. Users see:
   Joe Snodsbury (/)
which means change the value you see.

6. Hence Ian wants a picker that allows you to choose yourself, find and
choose someone else, or switch to team creation.

7. Curtis cannot image the switch to workflow, but Ian will explore the
issue.

8. The three membership expiration and renewal fields are difficult to
understand because are governed by an invariant constraint. Users enter
nonsense information to complete the form.

9. The third notification enum makes no sense:
    "renew their membership automatically, also notifying the admins"
Only 25 teams use it, 5 of which have set period to ensure it never
happens. We want to remove this option from the UI. We may want to
remove it entirely and change the 25 teams to never expire.

10. William suggests that three membership expiration and renewal fields
be guarded by a checkbox which enables the three fields. Maybe?
    [ ] Memberships expire
        Membership period: [___________]
        When someone's membership is about to expire, notify them and:
        (*) invite them to apply for renewal
        ( ) invite them to renew their own membership
        Renewal period: [___________]

11. William suggests that instead of showing 4 radio options for
TeamSubscriptionPolicy, that the form show two, each with a checkbox for
the more permissive option. Maybe?
    (*) Restricted
        Membership is closed, requires approval, and subteams must be
        closed. Subteams must be Moderated or Restricted. Restricted is
        a good choice for teams that manage things that need to be
        secure, like projects, branches, or PPAs.
        [ ] Users can request to join this team (Moderated)
    ( ) Open
        Membership is open, no approval required. Subteams can be Open,
        Delegated, Moderated, or Restricted. Open is a good choice for
        encouraging a community of contributors. Open teams cannot have
        PPAs
        [ ] Membership requires approval (Delegated)

12. When the context for creating a team requires an exclusive team, do
not show the inclusive membership/subscription policies.

13. When the context for creating a team is a role, the field values can
be set with sensible defaults: Setting the maintainer of the fnord
project for example would be:
    Launchpad Id: ~fnord-maintainers
    Display Name: Fnord Maintainers
    Description: Maintainers of the Fnord project.

14. It is not possible to set the team contact address at the moment of
    creation because the address must be confirmed. Remove the field.

15. Cases where the is a context for creating a team will be an overlay
that completes that action and returns to the context.

16. Cases without a context, the user just wants to create a team, could
be an overlay, but what happens afterwards? The user probably expects to
see the team page. This is odd, the user has no need to stay on the page
with the link.

17. Ian and William want to create a new overlay that just supports team
creation...let the old html form remain as is. This allows the form to
load quickly because there is no ajax call. This assumes the JS works
perfectly and we intend to maintain two separate forms as team creation
rules change. The path requires a new kind of overlay.

19. Jon and Curtis thinks building and maintaining separate experiences
reintroduce past mistakes where forgotten user cases rot. Separate pages
create the same problem as <noscrip>. With progressive enhancement, when
some JS breaks other JS continues to work, or everything falls back to
HTML. This path uses the existing form overlay.


ACTIONS
1. Change the default TeamSubscriptionPolicy to RESTRICTED.
   -- Claimed by Jon
3. Remove the contact address from the form/schema.
   -- Claimed by Jon
4. Rename TeamSubscriptionPolicy to TeamMembershipPolicy
5. Rename "Subscription Period" to "Membership Period"
6. Hide the "renew their membership automatically..." option
   Or clean up production data and delete the option
7. Progressively enhance the TeamMembershipPolicy radio button to
   display with checkboxes
8. Progressively enhance the membership expiration widgets so that it
   is clear they are optional.
9. Do not show inclusive team membership policies when the context
   requires an exclusive team.
10. Set default text values when we know the context for for a role.

-- 
Curtis Hovey
http://launchpad.net/~sinzui

Attachment: signature.asc
Description: OpenPGP digital signature