Feature List
I skipped an important step in my previous post: I wasn’t explicit about the features something had to have to qualify (in my mind, if no one else’s) as a “software project portal”. Here are my current thoughts, sorted in order of importance.
- Identity management and access control (i.e., accounts, privileges, and all that jazz).
- Bonus marks if privileges are organized into roles for easier administration.
- More bonus marks if administrators can define new roles.
- Still more if it integrates with OpenID or the like.
- Issue tracking (a.k.a. "ticketing"), or some other kind of to-do list.
- …with a query interface that lets users filter and sort.
- Bonus marks if F&S settings can be saved and shared, so that users can set up things like "all the high-priority items assigned to me that are due within a week".
- More bonus marks if fields in tickets can be customized without rewriting any code.
- Still more bonus marks if this is combined with a calendar so that users can group tickets by release or due date.
- DrProject's "milestones" have been inherited from Trac, and are just as lame.
- …with a query interface that lets users filter and sort.
- Version control repository browser (browser only because there's no safe and easy way to do a commit through a browser).
- Mailing list management (even though Trac doesn't have this, and I still consider it a portal).
- A wiki.
- Marks taken off if the wiki's grammar doesn't have shortcuts for linking to tickets, code revisions, mail messages, and the like.
- Cross-component search.
- A plugin or extension system.
- DrProject's needs a major overhaul…
- Some kind of over-the-web API (REST, SOAP, or RPC doesn't matter, just so long as it allows remote scripting, automation, and integration).
- An integrated view of the project's history.
- This should be available as an RSS feed as well as in the browser.
- Users should be able to get more immediate notification of selected events (e.g., email when tickets they care about are created or changed).
- There should also be a separate, more detailed event log for auditing and administrative purposes.
- Plus charts and other analytic tools.
- We're going to try again this summer to build something like this for DrProject.
- Project blogs.
- Continuous integration.
- Most systems rely on external tools like CruiseControl, in which case this becomes "integrate with continuous integration".
- Test case management.
- Requirements management.
- A lot of systems, including DrProject, just use tickets for this, but Mingle and other agile-oriented portals support user story cards or the like.
- As an aside, I think it's pretty telling that nothing smaller than ClearCase offers, or even integrates with, a "classic" requirements management tool like DOORS.
- Time tracking.
- This comes near the bottom of my list because I believe most people input random numbers.
- Integration with IRC, instant messaging, VoIP, and other communication tools.
- Anyone?
- Support for internationalization and localization.
- Forums or some other kind of bulletin board system.
- I personally think this is redundant given mailing lists and a wiki, but a lot of portals offer them, and we regularly get requests to add them to DrProject.
One more consideration is that a portal should be installable, rather than a hosted service: not every project is open source, and many universities aren’t allowed to store student information out of their own jurisdiction.