Development Process

From Dryad wiki
Jump to: navigation, search

New features in Dryad progress through several stages. This page documents tasks that are associated with each stage.

Prioritization and Scoping

  • The feature is expressed on a Trello card.
  • The Trello card links any related customer issues in FogBugz.
  • The Trello card links to an associated page on this wiki that contains more details of the feature.
    • The wiki page should follow the standards described in Documentation.
    • If the feature enhances a pre-existing feature, the wiki page is categorized in Category:Features.
    • If the feature is new or is represents a substantial change to an existing feature, a new wiki page is created in Category:Work Packages.
  • If the feature requires design, work progresses to the User Requirements stage.
  • If the feature is easily specified without design, work immediately progresses to the Implementation stage.

User Requirements

  • Gather requirements from users by sending surveys/questionnaires, or interviewing them one-on-one, or conducting a focus group session.
    • If you need to gather information from a large set of people (10 or more), then send out a survey/questionnaire.
    • If you can meet with a few people face-to-face then, conduct one-on-one interviews.
    • If you want to understand a small group (5 to 7) of people's opinions, then conduct a focus group session.
  • Organize notes and send them to the interviewees for review, to make sure that you did not miss any information, or misinterpret information.
  • Add requirements to the wiki page and link to the associated Trello card.
    • If you do not have the resources to implement all requirements, then prioritize the requirements.
  • Refine summary of the feature on the Trello card.

Technical Requirements

  • Analyze feature for potential technical hurdles.
  • Document any technical constraints on the wiki page.

Design

  • If you are considering several different groups of users and how they will interact with the product, then create personas.
  • Create a task flow to diagram how a feature works and the actions a user will take to interact with it.
  • Gather feedback and iterate.
  • Create simple wireframes (using whiteboard, paper, Balsamiq, etc) to discuss the layout of controls and display elements.
  • Gather feedback and iterate.
  • If the design includes new UI controls, create high-fidelity mockups (e.g., using Axure or simply HTML pages).
  • Gather feedback and iterate.

Usability Testing

  • Use prototypes to test the look and feel of a design as well as the interaction.
    • If you would like feedback on how people will interact with the product using paper, then create paper prototypes.
    • If you want feedback on the product before creating a live prototype, then create interactive prototypes (Axure)
    • If you are at the final stages of the design of the product and need a final round of feedback, create a live prototype (Web)
  • Incorporate feedback into current designs. Complete another round of testing before implementation, if necessary.

Implementation

  • Build test cases to test each aspect expected of the feature.
  • Build out the feature according to the design.
  • Update the wiki page for the feature to include all appropriate technical documentation.

Documentation

  • Write and/or update user-facing documentation on the wiki.

Final Testing

  • Internal testing by Dryad staff.
  • Usability testing with external users.

Release

  • Deploy feature on production server.
  • Update the Release Notes.
  • Perform associated PR work: blog post, tweet, etc.

Improvement

  • Monitor help e-mails (e-mails about the same issue from many different people are priority issues)
  • Check site traffic using Google Analytics