I've been using and loving Basecamp for a while, but I'm starting to feel the hurt for using it to manage software projects. Trac is great for software projects but terrible for client interaction. I really want the best of both worlds in one shiny app, plus a few extra bells and whistles. If I was designing something from scratch (hint), I'd probably want...
User types
- Admin
- Developer
- Client
- Vendor
- Public
Projects
Normal projects are only viewable by admins, developers, clients, and vendors who have been added to the project by an admin. Some projects can be marked as public (e.g. open source projects) which will be viewable by anyone (i.e. public users).
Milestones
Basically the same functionality provided by Basecamp.
Tickets
Basically the same functionality provided by Trac, except that they should be updatable via email to ease client interaction. Getting clients to use Basecamp or (even worse) Trac has proven difficult.
Messages
Basically the same functionality provided by Basecamp, except there should be an option of text formatting that preferably defaults to Markdown which is much easier on clients. You should also be able to reply via email for the same reason.
Docs
Basically the same functionality we get from Basecamp writeboards, but again, with an option of text formatting.
Hours
You should be able to provide hour estimates for milestones as well as individual tickets. You should also be able to add actual hours worked to both as well. Hours would only be viewable by admins and developers. The reporting should be more flexible than Basecamp's, letting you filter by multiple projects instead of just one or all, and should somehow incorporate the estimates. Marking hours as invoiced needs to be in there too. Maybe even handling invoicing duties as well...
Client visibility
Almost everything should have the ability to be marked as private, which would hide it from client, vendor, and public users.
Update: Some things I don't need:
- Todo lists (in favor of tickets)
- Ghant charts
I think that's it. This is just off the top of my head. So... who wants to help?
Update 2: Unfuddle looks pretty close to what I'm after, although it doesn't have the client/developer separation I want... I'm going to give it a shot though.