Websites/Processes: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
 
(24 intermediate revisions by 4 users not shown)
Line 1: Line 1:
The following processes are used to cover every aspect of a website's lifespan from beginning to end.  These processes may be replaced by a process that is more appropriate for a team's workflow.
[[Category:Webdev|Processes]]
 
<span style="color:red">DRAFT</span> Last Updated April 1, 2012
 
The following processes are used to cover every aspect of a website's lifespan from beginning to end.  The process is a '''work in progress''' and will be updated and change over time based on what works best for Mozilla. The goal is to create a simple process that will allow a web project to run smooth and increase the likelihood of achieving the desired goals.
 
Do you have any thoughts on this procss? Is something unclear or obviously wrong? Please contact [https://ldap.mozilla.org/phonebook/tree.php#search/malexis@mozilla.com Mike Alexis] with feedback as we need your help to improve the documentation and overall process.
 
= Project Logistics =


* Website [[Websites/Processes/Terminology|roles and terminology]]
* Website [[Websites/Processes/Terminology|roles and terminology]]
Line 5: Line 13:
* Sample projects and estimated time to deliver (forthcoming)
* Sample projects and estimated time to deliver (forthcoming)


= Ideation =
= Project Lifecycle =
 
== Ideation Phase ==


The ideation phase is the process that includes brainstorming, prototyping, and creating product requirement documentation.
The ideation phase is the process that includes brainstorming, prototyping, and creating product requirement documentation.
Line 12: Line 22:
* Driver:  Product Owner
* Driver:  Product Owner


== Process (Draft) ==
=== Process ===


x. Product Owner emails the Web Project Manager to notify that individual of the web project.
1. Product Owner emails the [https://ldap.mozilla.org/phonebook/tree.php#search/malexis@mozilla.com Web Program Manager] to notify that individual of the web project.


x. Product Owner [https://intranet.mozilla.org/webtools/webdev/project_init submits project] to the Web Dev project manager.
2. Product Owner [https://www.smartsheet.com/b/publish?EQBCT=2ed19e722f394792b59619c69e3107e7 submits project] to Web Dev, creating a bug assigned to Web Program Manager.


x. Web Project Manager schedules schedules informal discussion with Product Owner.
3. Web Program Manager schedules informal discussion with Product Owner and other key stakeholders.


x. Product Owner schedules brainstorming session to flesh out app.
4. Product Owner schedules brainstorming session to flesh out workflow and requirements for the app.
* Product Owner and Web Project Manager bring people to brainstorming phase
* Product Owner and Web Program Manager solicit people to brainstorming phase.


x. Product Owner decides what to build.
5. Product Owner decides what to build.
* Product Owner creates a wiki page for this site using either template:
* Product Owner creates a wiki page for this project using either template:
** [[Websites/Processes/Website Template|New Website Template]]
** [[Websites/Processes/Website Template|New Website Template]]
** [[Websites/Processes/Website_Template_Existing|Existing Website Template]]
** [[Websites/Processes/Website_Template_Existing|Existing Website Template]]
* Web Project Manager loads brainstorming session notes on new wiki page.
* Web Project Manager loads brainstorming session notes on new wiki page.


x. Web Project Manager determines staffing; assigns TPM.
6. Web Program Manager determines staffing; assigns TPM.
* Web Project Manager brings development team on board.
* Web Program Manager brings development team on board.
** If external contractor:
** If external contractor:
*** Web Project Manager gathers documentation on the contractor's development process and expectations.
*** Web Program Manager gathers documentation on the contractor's development process and expectations.
*** Web Project Manager prepares, reviews and signs contracts for external contractors.
*** TPM shares Mozilla's infrastructure set up, operational, and development process with contractors.
*** Web Program Manager prepares, reviews and signs contracts for external contractors.


x. Product Owner creates a PRD.
7. Product Owner creates a PRD.
* Details will be placed on the wiki page specified above.  Will include the following:
* Details will be placed on the wiki page specified above.  Will include the following:
** Finalized copy text
** Mockups
** Mockups
** User stories
** User stories
Line 44: Line 56:
** Wireframes  
** Wireframes  


x. The following teams review the PRD and each gives a time estimate for the amount of time their team will need during the web development process.
8. The following teams review the PRD and each gives a time estimate for the amount of time their team will need during the web development process.
* Infrasec
* Infrasec
* Creative/UX
* IT
* IT
* L10N
* L10N
* Legal
* Legal/Privacy
* QA
* QA
* TPM
* Web Dev/Web Prod
* UX
* Web Dev


x. If any of the teams find a problem in the PRD, they will notify the Product Owner.
9. If any of the teams find a problem in the PRD, they will notify the Product Owner.


x. Once all teams approve the PRD, the Kickoff phase may begin.
10. Once all teams approve the PRD, the Kickoff phase may begin.


= Kickoff =
== Kickoff Phase ==


The kickoff phase is the process of forming a technical team and fleshing out details to begin the development phase.
The kickoff phase is the process of forming a technical team and fleshing out details to begin the development phase.


* Decider: Product Owner
* Decider: Product Owner
* Driver:  Web Project Manager
* Driver:  Web Program Manager


== Process ==
=== Process ===


1. TPM and Web Project Manager execute tasks in checklists for project instantiation:
1. TPM and Web Program Manager execute tasks in checklists for project instantiation:
* [[Websites/Processes/New Website|New Website Process]]
* [[Websites/Processes/New Website|New Website Process]]
* [[Websites/Processes/Existing Website|Existing Website Process]]
* [[Websites/Processes/Existing Website|Existing Website Process]]


2. Web Project Manager schedules [[Websites/Processes/Meetings/Kickoff_Meeting_Agenda|Kickoff Meeting]].
2. Web Program Manager schedules [[Websites/Processes/Meetings/Kickoff_Meeting_Agenda|Kickoff Meeting]].
 
=== Bringing New Developers on Board ===


If web developers are new to Mozilla projects, please use the following:
3. Web Program Manager [[Websites/Processes/New_Developers|notifies new developers]] of processes.
* [[Websites/Processes/Boilerplates/New_Contractors|Email boiler plate for New Contractors]]
* [[Websites/Processes/Boilerplates/New_Employees|Email boiler plate for New Employees]]
* [http://blog.johnath.com/2010/02/04/bugzilla-for-humans/ Getting started with Bugzilla]


= Implementation =
== Implementation Phase ==


The implementation phase is the process of developing a new web product and getting approval from all teams who have been tasked to review the product.
The implementation phase is the process of developing a new web product and getting approval from all teams who have been tasked to review the product.
Line 87: Line 93:
* Driver: TPM
* Driver: TPM


== Mozilla Web Development Guidelines ==
=== Mozilla Web Development Guidelines ===


During the implementation phase, the Web Dev and UX teams write the website code following Mozilla guidelines:
During the implementation phase, the Web Dev and UX teams write the website code following Mozilla guidelines:
Line 104: Line 110:
* [https://github.com/mozilla/playdoh Playdoh] will be used as the code base unless stated otherwise.
* [https://github.com/mozilla/playdoh Playdoh] will be used as the code base unless stated otherwise.


== Process ==
=== Process ===


1. TPM schedules and drives the [[Websites/Processes/Meetings/Weekly_Meeting_Agenda|weekly meeting]].
1. TPM schedules and drives the [[Websites/Processes/Meetings/Weekly_Meeting_Agenda|weekly meeting]].
Line 135: Line 141:
* Web Dev continues to fix bugs, but does not commit code to master branch.
* Web Dev continues to fix bugs, but does not commit code to master branch.


9. Infrasec testing begins; team follows Bug Life Cycle process.
9. [[WebAppSec/Security_Review_Request|Infrasec testing]] begins; team follows Bug Life Cycle process.


10. TPM notifies team that code freeze is no longer in effect.
10. TPM notifies team that code freeze is no longer in effect.
Line 144: Line 150:
12. TPM prepares Bugzilla ticket for Production Push.
12. TPM prepares Bugzilla ticket for Production Push.


= Deployment =
== Deployment Phase (draft) ==


The process of launching a new web product, or pushing changes to an existing web product, and communicating it to the community.
The process of launching a new web product, or pushing changes to an existing web product, and communicating it to the community.


== Process (Draft) ==
=== Process ===


x. TPM drives deployment (please expand).
x. TPM drives deployment (please expand).
Line 156: Line 162:
x. TPM adds production push to [[Webdev:Releases|release calendar]].
x. TPM adds production push to [[Webdev:Releases|release calendar]].


x. Post-launch, Web Project Manager schedules [[Websites/Processes/Retrospectives/Release|release retrospective]] meeting.
x. Post-launch, Web Program Manager schedules and facilitates [[Websites/Processes/Retrospectives/Release|release retrospective]] meeting.


x. Web Project Manager documents and publishes retrospective results.
x. Web Program Manager documents and publishes retrospective results.


== Supplementary Documents ==
=== Supplementary Documents ===


* [[Webdev:Release-Checklist|Release Checklist]]
* [[Webdev:Release-Checklist|Release Checklist]]
* [https://mana.mozilla.org/wiki/display/websites/Home Dev / Stage / Production servers]


= End of Life =
== End of Life Phase ==


The end of life phase is the process of retiring a web product or website.
The end of life phase is the process of retiring a web product or website.
Line 171: Line 178:
* Driver: TPM
* Driver: TPM


== Process ==
=== Process ===


1. Product Owner contacts Web Project Manager to begin retirement process, or Website Taskforce nominates and approves the retirement of a website.   
1. Product Owner contacts Web Program Manager to begin retirement process, or Website Taskforce nominates and approves the retirement of a website.   


2. Web Project Manager assigns a TPM to drive the retirement process.
2. Web Program Manager assigns a TPM to drive the retirement process.


3. TPM retires a page, a section of pages or the entire web site or product.
3. TPM retires a page, a section of pages or the entire web site or product.
Line 182: Line 189:
* [[Websites/Taskforce/Proposals/Abandoned_Sites/Archive|Archive a Website]]
* [[Websites/Taskforce/Proposals/Abandoned_Sites/Archive|Archive a Website]]


4. Web Project Manager schedules [[Websites/Processes/Retrospectives/Website|Website / Campaign Retrospective]].
4. Web Program Manager schedules and facilitates [[Websites/Processes/Retrospectives/Website|Website / Campaign Retrospective]].


5. Web Project Manager documents results of retrospective.
5. Web Program Manager documents results of retrospective.

Latest revision as of 20:42, 1 April 2013


DRAFT Last Updated April 1, 2012

The following processes are used to cover every aspect of a website's lifespan from beginning to end. The process is a work in progress and will be updated and change over time based on what works best for Mozilla. The goal is to create a simple process that will allow a web project to run smooth and increase the likelihood of achieving the desired goals.

Do you have any thoughts on this procss? Is something unclear or obviously wrong? Please contact Mike Alexis with feedback as we need your help to improve the documentation and overall process.

Project Logistics

Project Lifecycle

Ideation Phase

The ideation phase is the process that includes brainstorming, prototyping, and creating product requirement documentation.

  • Decider: Product Owner
  • Driver: Product Owner

Process

1. Product Owner emails the Web Program Manager to notify that individual of the web project.

2. Product Owner submits project to Web Dev, creating a bug assigned to Web Program Manager.

3. Web Program Manager schedules informal discussion with Product Owner and other key stakeholders.

4. Product Owner schedules brainstorming session to flesh out workflow and requirements for the app.

  • Product Owner and Web Program Manager solicit people to brainstorming phase.

5. Product Owner decides what to build.

6. Web Program Manager determines staffing; assigns TPM.

  • Web Program Manager brings development team on board.
    • If external contractor:
      • Web Program Manager gathers documentation on the contractor's development process and expectations.
      • TPM shares Mozilla's infrastructure set up, operational, and development process with contractors.
      • Web Program Manager prepares, reviews and signs contracts for external contractors.

7. Product Owner creates a PRD.

  • Details will be placed on the wiki page specified above. Will include the following:
    • Finalized copy text
    • Mockups
    • User stories
      • primary user flows
      • specific admin functionality
    • Technical specifications
    • Wireframes

8. The following teams review the PRD and each gives a time estimate for the amount of time their team will need during the web development process.

  • Infrasec
  • Creative/UX
  • IT
  • L10N
  • Legal/Privacy
  • QA
  • Web Dev/Web Prod

9. If any of the teams find a problem in the PRD, they will notify the Product Owner.

10. Once all teams approve the PRD, the Kickoff phase may begin.

Kickoff Phase

The kickoff phase is the process of forming a technical team and fleshing out details to begin the development phase.

  • Decider: Product Owner
  • Driver: Web Program Manager

Process

1. TPM and Web Program Manager execute tasks in checklists for project instantiation:

2. Web Program Manager schedules Kickoff Meeting.

3. Web Program Manager notifies new developers of processes.

Implementation Phase

The implementation phase is the process of developing a new web product and getting approval from all teams who have been tasked to review the product.

  • Decider: Product Owner
  • Driver: TPM

Mozilla Web Development Guidelines

During the implementation phase, the Web Dev and UX teams write the website code following Mozilla guidelines:

  • At least 1 Mozilla web developer responsible for the code review of all code committed to the code repository.
  • Bugzilla is the ticket tracking system that will be used to for bug reporting and project overviews. Developers are expected to adhere to the Bugzilla Workflow for tracking tickets.
  • Code will be committed to the designated Mozilla code repository upon development instantiation.
  • Playdoh will be used as the code base unless stated otherwise.

Process

1. TPM schedules and drives the weekly meeting.

Once the initial code base has been created, and the website is functioning as indicated in the specs in a development environment, the remaining process may begin.

2. TPM ensures the stage server is up and running, and the website is functioning as indicated in the specs.

  • Stage server will be set to auto-update from master branch of code repository every 5 minutes.

3. The following processes begin; each team follows Bug Life Cycle process.

  • Accessibility Review begins.
  • SEO Review begins.

4. Web Dev notifies TPM that all required strings and code have been committed to stage.

  • Web Dev continues to fix bugs, but only commits code to a development branch.

5. TPM notifies team that:

  • feature freeze is in effect.
  • string freeze is in effect.

6. The following processes begin; each team follows Bug Life Cycle process.

7. QA signs off on initial round of tests.

8. TPM notifies team that code freeze is in effect.

  • Web Dev continues to fix bugs, but does not commit code to master branch.

9. Infrasec testing begins; team follows Bug Life Cycle process.

10. TPM notifies team that code freeze is no longer in effect.

  • Web Dev may again commit code to master branch.

11. QA signs off on final round of tests.

12. TPM prepares Bugzilla ticket for Production Push.

Deployment Phase (draft)

The process of launching a new web product, or pushing changes to an existing web product, and communicating it to the community.

Process

x. TPM drives deployment (please expand).

x. TPM creates production push ticket in Bugzilla.

x. TPM adds production push to release calendar.

x. Post-launch, Web Program Manager schedules and facilitates release retrospective meeting.

x. Web Program Manager documents and publishes retrospective results.

Supplementary Documents

End of Life Phase

The end of life phase is the process of retiring a web product or website.

  • Decider: Product Owner
  • Driver: TPM

Process

1. Product Owner contacts Web Program Manager to begin retirement process, or Website Taskforce nominates and approves the retirement of a website.

2. Web Program Manager assigns a TPM to drive the retirement process.

3. TPM retires a page, a section of pages or the entire web site or product.

4. Web Program Manager schedules and facilitates Website / Campaign Retrospective.

5. Web Program Manager documents results of retrospective.