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.

In the wake of posts about Shopify's support for white nationalists and DataCamp's attempts to cover up sexual harassment
I have had to disable comments on this blog. Please email me if you'd like to get in touch.