From Dreamwidth Notes
Jump to: navigation, search

There are a number of improvements we'd like to make, changes we'd like to add, and fixes we'd like to fix. We're starting from a very good base, but there are still enough things -- from major to minor -- that we could easily keep ourselves busy for the next three years just fixing the things that ought to be fixed.

We don't have those three years, though -- we need to balance the needs of the Dreamwidth codebase open-source project vs. the needs of Dreamwidth Studios, LLC, the hosted service running the Dreamwidth engine. To that end, we prioritize our changes based on our current needs.

The business needs of Dreamwidth Studios, LLC will drive development. Once we have launched into open beta, we will set milestone targets. Using Bugzilla, which is where all of our project planning and tracking takes place, we will define each milestone and set the status on particular tickets that fall into that milestone. We will also try to plan one milestone ahead, so you can look at the next milestone's goals and see what we want to do next.

While we welcome patches that address tickets that aren't prioritized for the current milestone, as well as new tickets to fix bugs we haven't yet identified ourselves, the milestone tickets are the ones that we as a team should be focusing on as much as possible. We strongly believe in iterative improvement: implementing something to fix the immediate need now, and then adding and extending the functionality in the next milestone.

Milestones will be separate from releases. Releases are smaller units; each milestone will be comprised of many (either weekly or biweekly) releases. Think of releases as adding to the list of what we offer, while milestone lists are a checklist: for releases, we make a list of everything we've added or changed in that release, while for milestone targets, we make a list of everything that we want to have included by that date and check them off as we accomplish them.

Special Cases

Our two current milestones are functional: open beta and "site launch", which is when we will consider ourselves out of beta testing. After those milestones have passed, we'll use quarterly milestones: Q309, Q409, Q110, Q210, etc.

For the functional milestones, Target Milestone: Open Beta and Target Milestone: Site Launch means that the item should be finished before that goal.

For the date-based milestones, Target Milestone: QXXX means that the item should be finished by the final day of that quarter: "Q309" means that the item should be finished on or before September 30, 2009.

Blocking flags (blocking-open-beta+, blocking-launch+) means that the items are considered essential to that functional milestone.


Our Bugzilla keywords indicate what goal a particular ticket is intended to work towards. The current keyword goals are:

  • Accessibility: Making the site workable for users with disabilities or special needs.
  • Admin tools: Improving the administrative tools for running a DW install, both frontend and backend.
  • Business tools: Making it easier for the site to function as a business or improving the long-term sustainability and viability of the service. Includes revenue-enhancing items.
  • Bugfixes: Fixing improper behavior. We class "returning a user-visible error", "not functioning as designed", and "functioning as designed, but as designed is wrong behavior" all as bugs.
  • Cleanup: Tidying up the codebase we inherited and making it cleaner and more easy to maintain.
  • Community: Enhances the community experience; makes it easier for users to communicate with each other.
  • Interoperability: Working with other sites; getting data into and out of DW; integrating other sites' widgets with a DW journal.
  • Search: Making it easier to find other users and interesting content.
  • Usability: Improving the site's workflow and lowering the frustration factor.

Milestone: Open Beta

Milestone name: Open Beta. 
Milestone target date: April 30, 2009 Achieved!
Bugzilla search: blocking-open-beta 
Major Goals (in rough priority order):
* Friend split
* Journal Importer
* Payment system
* Cross-Site interoperability
* Site look & feel (site schemes, site copy, FAQs, styles)
* Fix all major user-facing errors and bugs

Milestone: Q309

Milestone name: Q309
Target completion date: September 30, 2009
Bugzilla milestone bugs: Q309 Milestone
Major Goals (in rough priority order):
* Scheduled Posts 
* Draft Posts 
* Gift certificate/credits system 

Milestone: Q409

Milestone name: Q409
Target completion date: December 31, 2009
Bugzilla milestone bugs: Q409 Milestone
Major Goals (in rough priority order):
* Memories/bookmarks redesign
* Community maintainer tools
* User-to-user marketplace
* Export journal as .pdf

Milestone: Site Launch

Our current milestone target is: Site Launch
Target date: Unknown
Bugzilla blocking search: blocking-launch
Bugzilla milestone bugs: Site launch milestone
Major Goals (in rough priority order):
* Fix any remaining user-facing errors and bugs
* Extend styles, themes, and siteschemes available
* Improve administrative tools
* Misc. backend cleanup and refinement
* Usability tweaks

Milestone: Q211

* Photo/image hosting