View Thread > H2O Meta > 0.5 Feature Priorities > Core Functionality and Usability
Now that we have a list of potential features, the next step is to prioritize
which features should be implemented in the 0.5 release and in what order. Each feature has a guestimated number of days associated with it. We have about 120 developer days before a release in mid-February. Your job is to pick out which features should be included in the next release (all of your features should only take 120 days to complete) and then, *very importantly*, to prioritize when those features should be implemented. Once we set a concrete release date in February, the release date will be firm, while the number of features we complete will not, so the priority of the features will determine which features will definitely get into the release and which may not.
As our esteemed leader, Jonathan Zittrain will be ultimately responsible for putting together the final list of priorities for the release, but the feedback we get from this discussion will play a very important role in his decision.
For the list of features, see:
I've included a lot of the big ticket functionality items (custom attributes, routing, polling, invitations) b/c that's where I think we need to concentrate our efforts if the system is going to reach its potential. I've also included some of the really important usability stuff that people have consistently brought up in feedback (a help system, management of individual rounds, etc). Notably missing are pretty much all of the UI polish items, which I'd love to get to but just aren't as important as having a functional, usable system, and are mostly not applicable to the generic ui (the ui that's in the source we distribute) anywho.
pri days feature
1 3 Help system infrastructure - support for inluding '?' links in the module headers, which link to popup help content
2 5 Help Content - first stab at help, including at least help on all the forms
3 1 More basic FAQs - How do I respond? How do I rate? Etc.
4 15 Custom attribute functionality (custom attribute definition, management of large attribute set by users, association of required and optional attributes with projects, attribute prompting during user registration and project use after attribute requirement addition)
5 5 Value based routing. This is base support for attribute, poll, and section based routing. Route based on whether a given value is similar or different between users (same user attribute values, difference poll answers, etc.)
6 5 Attribute based routing - routing based on user attributes
7 15 Polling, incl. poll setup in rotisserie management screens, poll response on rotisserie response screen, and poll display on rotisserie and thread view pages
8 2 Poll based routing - routing based on poll answers
9 10 Management of individual rounds - allow all round settings to be customized for each individual round.
10 10 Simple post comment system - allow adhoc posting within the current round
11 3 Additional questions in rotisserie rounds -- allow project leader to add a question to each round
12 5 Bulk project acceptance page -- a single page with all applicants to a project with a 'reject' and an 'accept' column that lets a leader accept/reject users en masse.
13 2 Bounce back routing - route to the user assigned to the given user in the previous round
14 3 Random routing with no repeats within a project (easy best try - Joe should not be assigned to Sue more than once within a given project, we'll give preference to non-repeat assignments but won't implement a complicated algorithm to try to guarantee it)
15 2 Add list of participating (invited) rotisseries to project page - should be able to see not only rotisseries that the project owns, but also rotisseries owned by other projects in which the project is participating
16 3 Show all visible posts written by the user on the user profile screen page (and get rid of the contextually driven stuff that's confusng and poorly done). Group posts by project / rotisserie
17 1 tweak login page - add check for cookie support in browser and add changing element to 'mismatched username/password' error message
18 2 Include user id in urls in assignment emails -- prevents the user from clicking on the url and not getting the assignment because he is logged in as a different user
19 1 Change db layer to sort by name if present
20 3 Imrpove flow between view thread page and rating assignment page (thread completing a rating on the view thread page should return the user to the rating assignment page and remove the assignment for the rated post)
21 3 Add sidebars to View Rotisserie Page (Manage, Participants)
22 1 Expand: *none* link on view rotisserie page
23 7 Individual project invitations - invite a user to participate in a project and have an invitation response box appear on the user's overview page
24 3 Project Deletion - ability for the project owner to delete a project.
25 1 free text search for users ('hro' should return 'hroberts')
26 5 Add absolute date picker to date fields and to round start/end (so that the user can choose either round durations or specific end dates)
27 1 Display application message for registrants (currently it's accepted but not displayed anywhere)
28 2 Improve rating on view thread page -- change mechanism to be the same as on the rating assignment page. Provide some sort of message after a successful rating to indicate that the rating has happened.
29 1 Administrator su page -- let a site admin login as any user
30 1 Add link to inviting project in rotisserie invitation email
I agree for the most part except for some of the routing. The help was lower on my list, but I'm sure it will make it in there since not much time is required. Functionality is definitely more important than any UI stuff.
Excluding automatic expulsion and poll-based routing, I don't know if other types of routing would actually be used or useful if used. Routing on any attribute the user has entered may just be random, since so few online users contribute valid data when they know it isn't critical (I know I don't). I have a hard time coming up with a concrete example that will realistically lead to an interesting distribution.