Development Process

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

 * Create a task flow to diagram how a feature works and in what ways a user will interact with it.
 * If the task flow correctly reflects the user interaction, then proceed to sketching.
 * If the product consists of many pages (ex. Dryad Web site redesign), then create a site map, a chart of all of the pages a Web site contains and how those pages are connected.
 * If you are considering several different groups of users and how they will interact with the product, then create personas, a fictional set of users that represent different types of real users.
 * Create sketches using the tool of your choice (whiteboard, paper, etc).
 * If you have gathered feedback on the sketches, then create low-fidelity wireframes, design blueprints, using the tool of your choice (Balsamiq).
 * The focus is on the overall design of the Web site or feature, placement of content, etc.
 * If you have gathered feedback on the wireframes, then create mockups, designs that are higher fidelity than the wireframes, using the tool of your choice (Balsamiq, Axure, etc).
 * Color, images, etc. may be included

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 user-facing documentation.

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