Project management tools/Review/Requirements

This is a consolidated summary of requirements provided by users. It was assembled by grouping similar requirements and sorting them by topic. When the same requirement was added as both a "must-have" and a "nice-to-have", it's only listed once as a "must-have". Some requirements are conflicting; those conflicts will need to be resolved by community discussion.

Current situation
Discussions and progress are scattered across a lot of tools

Bugs and features are sometimes tracked simultaneously in Mingle/Trello, Bugzilla, and Gerrit. Discussions happen across all of these platforms, plus via mailing lists, hangouts, Flow pages, and IRC. This has the effect of making our conversations regarding any progress completely disjointed, especially for tasks that take weeks to complete, because the discussion history can be incredibly hard to track.



would like to do all the things I need to do in one place, not 6 (Mingle, Bugzilla, Gerrit, IRC, Translatewiki, Mediawiki.org) or more

Users must be able to:
Use this single system for all projects, configurations, discussions, designs and others (no roll-your-own-process with Mingle, or github, etc.)

Be able to know what exactly the tool does and at least have a possibility of fixing it if necessary, that means: must be free and open source software and _not_ outsourced

Users would like to be able to:
Discuss with another user outside a specific item

Centralize discussion in one place

Users must be able to:
Alter the workflow at any time to accommodate new needs

Set custom swim lanes

Set story points

Track estimations

Enforce certain actions be taken when a card's status changes (e.g. ensure ownership changes happen seamlessly when a card's status changes; ensure that comments be added when a particular status gets updated)

Users would like to be able to:
Write a narrative of the important changes for a milestone (linking to tasks and commits alike) and series of milestones

Handle Operations and Office IT tickets in the same system

Users must be able to:
Create custom item views, and save them for future use (e.g., "All reopened Flow bugs")

See the current sprint's swim lanes

Track velocity for a particular sprint as well as over an arbitrary length of time/number of iterations

Separate planned velocity from emergency velocity

Generate burnup/burndown charts

Work in the emergency work trend

View a dashboard for the review of incoming streams of, custom saved searches of, and individual item (task, commit)

Users would like to be able to:
See helpful graphs and reports

Have a tech trend graph that can be manipulated in real time

Users must be able to:
Define a task's type (bug, feature, technical debt/code quality, enhancement) and query on that type  / UI that is specifically made for tracking requests (software bug reports are just a subset of requests, bugtracker tools are specialized version of request trackers). 

Tag items in a free-form way, display tags , and query on that tag

Display statuses (e.g. for deployment, or blocked items)

Query tickets and commits by product, component, status, assignee, keywords, relationships, codebase, sprint/iteration        / Search code review, bugs, user stories, translation discussions

Add and edit relationships between the item and one or more other items (hierarchy, super-task/sub-task, dependency, bug <-> commit; also cross-project), automatically if possible         / Associate items with external items

Assign an item to a user

Assign a ticket to a (dated) milestone / sprint / Add deadlines to items

Accept and reject (e.g. mark as invalid/wontfix) an item (with justification)

Rank order the priority of bugs and stories, and do this across types (e.g. not only prioritize stories and prioritize bugs, but also prioritized bugs/stories relative to each other)

Users would like to be able to:
Assign an item to a group instead of an individual

Users must be able to:
Create new item (feature, task)

Create an ultra-simple (default?) item entry type, which ideally would not even present anything beyond title and description. 

Edit an item

Discuss an item

Manipulate cards visually in swim lanes

Merge, split, broaden or narrow a ticket

Users must be able to:
Mark a task as "blocked" (with comments) / Mark items as not actionable  / Mark item as needing more input from a user

Edit type, priority, status, assignees, title, product/component, priority, confirmation, wording, detail/comments of items

Attach files (e.g. a design image) to an item

Moderate tickets (e.g. to hide comments)

Users would like to be able to:
Add checklists to items

Define arbitrary properties for tickets

Monitor and report project results and objective criteria achievement

Attach code to tickets

Users must be able to:
View who created an item, and who was working on it last

View the history of charges in a item's life cycle (creation, major swim lane moves like "Pending Code Review" and "Deployed", change of priority/keyword, etc.)

Get a complete (i.e. mostly automated) list, if not explanatory release notes, for all relevant items included in any given release/deploy of their interest.

Users would like to be able to:
View "in-line" the history of a ticket

Users must be able to:
Review and approve code before merging into master

Interact with a git instance

Restrict code merge ability to team members

Run automated checks (linting etc.) and tests (unit, integration, browser, …) when code commits are submitted, amended, and approved (and block merge on this basis)

Edit patches/code in their browser

Automatically RESOLVE bugs when the code is merged, maybe using "Closes Bug: ####" as commit message

Configure automated testing for each project independently, which can be required for merge (voting, which is preferred), or not required for merge (non-voting, ideally temporary)

Comment on a change/issue (cover comment) and inline

Users would like to be able to:
Automatically mark issues and features as deployed to production when they are deployed

Users must be able to:
Restrict user read and/or write access to certain tickets, groups, and repositories

Restrict write access to certain properties of an item (type, status, priority) and actions (create/modify stories, administer project settings) to some users (assignee, team)

Allow any user to file a new bug

Let anyone (who isn't a spammer/vandal) comment on the bug

Let anyone read any (non-private) task ticket and all statuses

Have equal permissions even if they're just new users, rather than being punished for registering an account after year 200x (example for bugzilla: let all editbugs users add editbugs to other users).

Users would like to be able to:
Lock an item from further discussion once closed (maybe after some period of time?)

Allow any user to generate an idea for a new user story

File a task using their SUL login transparently

Let anyone express mere +1 in the form of votes, so that they don't clutter the discussion.

Users must be able to:
Add stories through desktop, mobile, tablet  / Track requests to my team and me in a web-based UI. 

See real time changes without reloading the web page for a sprint

See everything that is happening within a sprint without scrolling the screen

Have one area for the backlog, one area for the current sprint, and one area for the upcoming sprint

Change columns being displayed

Users would like to be able to:
Clearly see when someone else is updating a story or bug (like, updating the text of the description). Even better, it would be awesome if there were real-time updates to story/bug descriptions and status changes (without refreshing the page manually)

Indicate user names in other venues (other tools, IRC, wiki, external sites)

Users must be able to:
Provide stable, simple, short-as-possible sharable URLs that uniquely identify tickets without login

Transmit all needed streams of tickets and code commits by e-mail to users that need it

CC people (including themselves, as a watch/follow/subscribe feature) without them being considered assigned

Receive email notifications whenever a bug they filed/are assigned to/cc'd on is updated

Be notified when new items are created or task status changes

Notify user automatically when an item has been assigned to her

Notify user when an item has been marked as needing more input from that user

Use a real-time notifications feed, preferably IRC Get and send information about commits and tickets automatically on IRC

Use a read/write API provided by the tool

Work without waiting too long for the tool to load

Be notified when code goes to production

Export all of our data (users, stories, etc) in a generic/commonly used format (like CSV)

Get notifications based on arbitrary property changes (e.g. a story has been moved to 'ready for signoff' and I receive an email alerting me to this fact)

Users would like to be able to:
Be able to control an entire ticket flow from the git command line

Run scripts to batch-edit items

Receive by e-mail and be able to review incoming streams of, custom saved searches of, and individual translation discussions

"Mute" a thread to stop receiving notifications about it, regardless of anything else

See the status/title of the bug when it's linked to from a wiki page

Export arbitrary chunks of data in a generic/commonly used format (like CSV)

Use a mobile app (Android and iOS) to be able to get notifications and update tasks etc.

Edit a ticket by replying to a notification email