Project Management

The life-cycle of a Dreamwidth project, from beginning to end. There are two types of project: one-time projects and ongoing projects. One-time projects are mostly development projects (enhancements or new features to the code), while ongoing projects are mostly related to dreamwidth.org's operations.

Project Definition
The first step in a project is describing the project itself. This is usually done through a new item entered into the bug tracker. It will contain a brief overview of what the project is, what it should consist of, and what the criteria are for it to be considered "finished".

In many cases, this will be specified by Dreamwidth Studios, LLC staff, and appropriately prioritized. Once the site launches, we'll also take suggestions through whatever suggestions development process we build. It's also possible for other site administrators to code new features for the site, and we will gladly take patches for the codebase, even if we don't plan to use them on the site, as long as they meet our basic guidelines and are easily-configurable for a site administrator.

Projects that aren't code-based will go through the dw-help mailing list for now, and after site launch, will go through whatever system we build to advertise projects up for adoption.

Assigning a Project Leader
Each project will have certain skillsets needed. Dreamwidth staff will select a project leader based on those skillsets (and who has volunteered, of course), and give that leader any access that will be necessary to complete the project.

Soliciting Project Members
Each project leader will be in charge of the project recruiting. For now, the list of available people is on the Wiki at Who. Project leaders can also ask that an announcement be posted to the dw-help mailing list, or whatever system we build to advertise projects up for adoption.

Project members, and project leaders, should remember that they have a high degree of autonomy. Dreamwidth staff won't breathe down your neck with things! At the same time, however, we will always be available for consultation, problem-solving, or just general whining. Don't ever feel like you can't approach us. We're happy to help you as much or as little as you need.

Project Scope
Once a project leader has been assigned, and project members solicited, the project leader should write up a complete, finalized spec for what the end result of the project will be. This should go to Dreamwidth staff for final approval and any business decisions that need to be made (ie, how the project should function, any business considerations that are necessary, what elements of a proposed feature should be paid-account only, etc).

Once signoff has been granted, development can begin.

Checkins
While weekly or monthly checkins aren't required, it's a good idea to touch base with Dreamwidth staff fairly regularly. Denise is happy to help you solve any problems that come up as time goes on, whether those be questions about how things should function or just mediating any issues that arise.

Testing
The project team is responsible for testing the results, if the project is code-based. If you need assistance with how to write a test plan, we'll build pools of beta testers and guidelines for how to write a test plan. When you submit your final work, you'll be expected to also submit your test plan and the results that you got from it. We'll reproduce your tests to verify the results before committing the code.

Review
Once you've finished your work, submit it to the Dreamwidth staff for final review. It's likely that we'll request some minor changes to better match our vision for the service, but (assuming you received signoff up front), these changes will be exceedingly minor.

Once we've reviewed your work, it will get committed to the codebase (or added to the site), and we will shower you with thanks and praise!