Webdev:Flux:Steward Guidelines: Difference between revisions

 
(48 intermediate revisions by 2 users not shown)
Line 2: Line 2:


= Concerns =
= Concerns =
* Who is:
** The product owner
** The decider
** The driver
* What is the URL for the site?
* What is the URL for the site?
** Does Mozilla own this URL?  Check WHOIS records just in case.
* Is there a Project Tracking Bug
* Is there a Project Tracking Bug
** Does it cover requirements?
** Does it cover requirements?
* Is this a Public campaign or a Private campaign?
** There needs to be a good reason for making this a Private campaign.
* Will this be localized
* Will this be localized
** Every project must be localizable (under consideration)
** Every project must be localizable (under consideration)
* Code
** Must use Playdoh
** Must be committed to Mozilla code repo from day 1
** Desktop only? Mobile?
* Notify Teams Early
* Notify Teams Early
** WebQA
** WebQA
Line 15: Line 26:
* Lifecycle
* Lifecycle
** All phases defined and built by agency
** All phases defined and built by agency
** Who supports the site / fixes bugs post-launch?  Agency?  Mozilla dev?
** Agency performs bug fixes post-launch; supports site through its lifespan
***Ideal scenario: the agency will perform QA before handing off code to Mozilla and fix bugs both during Mozilla QA and for a period post-launch. This should be agreed upon before dev work begins and outlined in the SOW.
** End of life (campaign end date, takedown date)
** End of life (campaign end date, takedown date)
** Post-mortem; goal and measurement analysis
* Email
** Are we collecting email addresses? Do we need Repsonsys?
** Will app be sending a lot of emails?  Do we need a third-party email provider?


= Contractor Requirements Documents =
= Contractor Requirements Documents =
Line 27: Line 41:
* [https://wiki.mozilla.org/WebAppSec/Secure_Coding_Guidelines Secure Coding Guidelines]
* [https://wiki.mozilla.org/WebAppSec/Secure_Coding_Guidelines Secure Coding Guidelines]
* [https://wiki.mozilla.org/L10n:Localizability/Web L10n requirements]
* [https://wiki.mozilla.org/L10n:Localizability/Web L10n requirements]
 
* Follow [https://wiki.mozilla.org/QA/Execution/Web_Testing/Project_Checklist#Optimal_Bugzilla_Workflow Bugzilla Workflow].
** Check-in regularly, one bugfix per commit
** Push regularly - steady and frequent patches should be shared. Dropping a mega push on the code review team isn't good for project timelines or communication.


= Typical Requirement Areas =
= Typical Requirement Areas =
Line 36: Line 52:
* [[Responsys]] - Allowing members to signup for mailing lists.
* [[Responsys]] - Allowing members to signup for mailing lists.


= Process =
= New Website Process =
 
* Create a wiki page for this website, if not already available.
** https://wiki.mozilla.org/Websites/Website_Name
* Create a new [https://bugzilla.mozilla.org/enter_bug.cgi?product=mozilla.org&component=Bugzilla:%20Keywords%20&%20Components Component in Bugzilla]
* Create a Github repo for this project; grant access to team members.
* Create a [https://bugzilla.mozilla.org/enter_bug.cgi?product=Websites Bugzilla tracking ticket] for this project. Will track:
** Create a [https://bugzilla.mozilla.org/enter_bug.cgi?product=Websites&component=website-archive.mozilla.org Bugzilla ticket] to document the [[Websites/Taskforce/Proposals/End_of_Life#Implementation|End of Life]] process.
** Create a [https://bugzilla.mozilla.org/enter_bug.cgi?product=Websites Bugzilla ticket] to add [https://intranet.mozilla.org/Webanalytics#Track_a_New_Domain Webtrends] analytics code.
** Create a [https://bugzilla.mozilla.org/enter_bug.cgi?product=Websites Bugzilla ticket] for Privacy and Legal review.
** Create a [https://bugzilla.mozilla.org/enter_bug.cgi?product=Websites Bugzilla ticket] for Security review.
** Create a [https://bugzilla.mozilla.org/enter_bug.cgi?product=Websites Bugzilla ticket] to ensure that all config settings that will need to be updated have been added to the appropriate -dist file.
** Create a [https://bugzilla.mozilla.org/enter_bug.cgi?product=mozilla.org&format=it_request Bugzilla ticket] to setup a stage server. [[Webdev:Flux:Steward_Guidelines#Stage_Server_Ticket|Ticket Text]]
* Add site info to [[Webdev:WhoWorksOnWhat|WhoWorksOnWhat]]
** Place HTTP Auth password (if available) on [https://intranet.mozilla.org/Websites/Stage_Passwords Stage Credentials] page.
 
== Stage Server Ticket ==
 
<code>
(This is a placeholder to create a stage instance for this project.)
 
Please create a stage instance for {Website Name}.
 
== Language ==
* Language: Python
* Framework: Django
 
== URL ==
* Production URL: {URL}
* Stage URL: {URL}
 
== HTTP Auth ==
* HTTP Auth is required to access this site.
* Please record username / password in this ticket.
== SSL ==
* SSL is required for testing the stage site.
 
== Code Repository ==
* Github Repo: {URL}
* Setup Github to auto-update every 5 minutes.
 
== Database ==
* This site requires a MySQL database.


== Settings ==
This has been moved to [[Websites/Processes/New_Website|New Website Process]].
* cp settings_local.py-dist settings_local.py
* Update settings values accordingly.
* Set DEBUG to False in settings_local.py.
</code>


= Code Repository =
= Code Repository =
Line 91: Line 60:
* First, determine if this project will be developed publicly or privately.
* First, determine if this project will be developed publicly or privately.
* All web projects will be hosted on [https://github.com Github].
* All web projects will be hosted on [https://github.com Github].
** Create repo (private or public) under the mozilla organization
** Create repo under the mozilla organization.
** Create a Team and add the external developers who will be the owner of the project through development
*** Make repo private if asked, but the intent is to make all repos public.
** Create a Team and add the external developers who will be the owner of the project through development.
** Add Webdev and IT_Operations teams to the project
** Add Webdev and IT_Operations teams to the project
*** If this is a private project, ensure that the code repository is also private until launch.  Once launched, make the repo public.


= Code Review =
= Code Review =
Line 101: Line 70:
* Hosting requirements
* Hosting requirements
** Scalability concerns?
** Scalability concerns?
* Code review process?
* [[Webdev:Flux:Code_Review_Process|Code review process]]
 
= Checklists =
Once a project is alive... here are some reusable checklists...
 
* [[Webdev:Release-Checklist]]

Latest revision as of 03:25, 13 April 2011

So you want to Steward an externally created web property... eh?

Concerns

  • Who is:
    • The product owner
    • The decider
    • The driver
  • What is the URL for the site?
    • Does Mozilla own this URL? Check WHOIS records just in case.
  • Is there a Project Tracking Bug
    • Does it cover requirements?
  • Is this a Public campaign or a Private campaign?
    • There needs to be a good reason for making this a Private campaign.
  • Will this be localized
    • Every project must be localizable (under consideration)
  • Code
    • Must use Playdoh
    • Must be committed to Mozilla code repo from day 1
    • Desktop only? Mobile?
  • Notify Teams Early
    • WebQA
    • Infrasec
    • Legal/Privacy
    • L10n
    • IT
  • Lifecycle
    • All phases defined and built by agency
    • Agency performs bug fixes post-launch; supports site through its lifespan
    • End of life (campaign end date, takedown date)
    • Post-mortem; goal and measurement analysis
  • Email
    • Are we collecting email addresses? Do we need Repsonsys?
    • Will app be sending a lot of emails? Do we need a third-party email provider?

Contractor Requirements Documents

When contracting creative and development work to third party vendors, these are the requirements that should be sent to vendor and included in the contract/statement of work.

Typical Requirement Areas

  • Authentication/Authorization
  • Community moderation
  • Developed in Python/Django using Playdoh for rapid development.
  • Webtrend Analytics
  • Responsys - Allowing members to signup for mailing lists.

New Website Process

This has been moved to New Website Process.

Code Repository

  • First, determine if this project will be developed publicly or privately.
  • All web projects will be hosted on Github.
    • Create repo under the mozilla organization.
      • Make repo private if asked, but the intent is to make all repos public.
    • Create a Team and add the external developers who will be the owner of the project through development.
    • Add Webdev and IT_Operations teams to the project

Code Review

Checklists

Once a project is alive... here are some reusable checklists...