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.

  1. 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.
  2. 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.
  3. Version control repository browser (browser only because there's no safe and easy way to do a commit through a browser).
  4. Mailing list management (even though Trac doesn't have this, and I still consider it a portal).
  5. 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.
  6. Cross-component search.
  7. A plugin or extension system.
  8. 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).
  9. 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.
  10. Project blogs.
  11. Continuous integration.
    • Most systems rely on external tools like CruiseControl, in which case this becomes "integrate with continuous integration".
  12. Test case management.
    • Actually, most don't bother to do this separately (Rally being a notable exception). I'm still trying to figure out why nobody has integrated with FitNesse yet...
  13. 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.
  14. Time tracking.
    • This comes near the bottom of my list because I believe most people input random numbers.
  15. Integration with IRC, instant messaging, VoIP, and other communication tools.
    • Anyone?
  16. Support for internationalization and localization.
  17. 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.