Using JIRA as a project management tool
Monday, 05 April 2010 11:00
Project Management features
Customize workflows
Workflows are flexible and can be customized for each project and/or issue type, including subtasks. This allows you to track multiple, unrelated projects all within a single JIRA instance. For example, you can have ideas, tasks, bugs, purchase orders, anything that needs to go through a process - and each can have its own steps and transitions.
Workflow transitions can also have Conditions, Validators, and Post Functions.
- Conditions restrict the transition - for example, you would use a transition to set up an approval step, so that only users in a certain group (Managers, Approvers, Project Lead, etc) can transition the issue to the next step.
- Validators will check certain parameters - for example, a validator can be used to ensure that the comment entered by a user on the transition's screen meets a certain criteria. If a validator 'fails', the Post Functions of the transition will not be executed and the issue will not progress to the destination step of the transition.
- Post functions are automatic actions that occur after a transition - you would use these to have a certain field updated, or have the issue assigned to a certain user or role. For example, when an issue has been 'resolved' you might have it's priority automatically reduced to low.
Permissions
Permissions are quite granular on the project level, and with JIRA Enterprise, they are also flexible by project roles and at the individual issue level.
- Issue operations, such as 'edit', 'comment', and 'assign' are all separate permissions which can be granted to a single user and/or a group. In JIRA Enterprise, you can also grant a permission to a project role. You can even grant a permission to 'user is in custom field' or 'group is in custom field'. Role and custom field permissions allow you great flexibility to change things on the fly, without having to edit the permission scheme itself. Project Administrators have permission to edit project roles, so this gives them a small amount of flexible, project-specific user management.
- In JIRA Enterprise, you can add a layer of security at the issue level by using issue level security. This allows you to restrict users from seeing some issues within a project where they already have the 'view' and 'browse' permissions. This is especially useful if you'll have external users on your system, or you need the ability to 'restrict' certain specific issues.
- The last area where permissions come into play is in the workflow. In JIRA Enterprise, you can restrict a workflow transition to users with certain permissions. There is a permission condition that you can add to any transition.
Project phases/milestones
JIRA has a 4 level hierarchy: Project > Components (logical subsections) and Versions (phases/milestones) > Issues > Subtasks.
Get a quick view of your project at any phase - click on the milestone (Q1, Phase 2, Beta, 1.3, etc) to quickly see outstanding issues and your progress towards finishing that milestone. Pull version reports on 'open issues', 'popular issues', user workloads, and more.
Components
Projects are also broken down into components - logical subsections. You can file issues against one or more specific components, and assign component leads to be automatically assigned incoming issues. For example, a component can be an office location (San Francisco, Sydney, Amsterdam), content specific (a Website project with components of blogs, company info, product info, etc), or anything that pertains to section off your project.
You can pull component-specific reports for open issues (shows unresolved issues for a given component of a project), road map (shows unresolved issues for a given component, for the next three versions of the project), change log (shows resolved issues for a given component, for the previous three versions of the project, or popular issues (shows unresolved issues for a given component, ordered by popularity/votes).
Roles
Assign permissions based on 'role' to allow you to dynamically re-use permission/notification schemes and to change users on the fly (Project Lead, Managers, etc.)
Project roles are somewhat similar to groups, the main difference being that group membership is global whereas project role membership is project-specific. Additionally, group membership can only be altered by JIRA administrators, whereas project role membership can be altered by project administrators.
Project roles enable you to associate users with particular functions. For example, if your organization requires all software development issues to be tested by a Quality Assurance person before being closed, you could do the following:
- Create a project role called Quality Assurance
- Create a permission scheme called Software Development, in which you assign the 'Close Issue' permission to the Quality Assurance project role.
- Associate the Software Development permission scheme with all software development projects.
- For each software development project, add the appropriate Quality Assurance people to the Quality Assurance project role.
Subtasks
Subtasks help you break down complicated issues in JIRA into manageable chunks. Subtasks are treated as separate issue types within JIRA. You can define all kinds of subtasks - sub-marketing-task, sub-bug, etc. You can assign subtasks to different users, set time estimates, create custom fields for each subtask type, and more. In JIRA Enterprise, subtasks can have their own workflow, even different from parent tasks.
Linking issues
You can link any two issues in the system to create an association. The administrator can configure any type of 'link' - blocker, duplicate, causes, etc.
The links are simply a descriptional relationship - a 'blocker' doesn't have an affect on the issue that it blocks, unless you build that into your workflow. For example, there is a blocking subtasks condition to prevent an issue to be closed unless all its subtasks are closed. There is a workflow extension to prevent an issue from being closed unless all its blockers are closed. You can also build your own custom conditions.
Integration with Confluence
JIRA is great for managing tasks and moving action items through a defined process. Confluence is great for collaborating on documents and sharing knowledge. For example, you might create a task in JIRA to 'write up a customer case study'. One subtask might be 'customer interview'. You could link that subtasks to a Confluence page where you'll write up the details of your conversation.
- You can incorporate information from JIRA into Confluence using the JIRA portlet macro and JIRA issues macro. Any JIRA search-result can be embedded in a Confluence page using the ??? macro with your choice of included fields and field ordering, and any JIRA dashboard portlet can be embedded in a Confluence page using the ??? macro. Combined with other macros and the flexible knowledge management capabilities of Confluence, you can create 'dashboards' and 'information hub' pages for your projects including information from both Confluence and JIRA.
- The Atlassian Activity Stream Plugin gives you a consolidated view of all of the activity taking place in your projects. Appearing in JIRA as a project tab or dashboard portlet, the Activity Stream collects information from JIRA, Confluence, FishEye and Crucible.
- Application Links (AppLinks) is a plugin that allows you to link your JIRA, Confluence, FishEye, Crucible and Subversion applications. You can even choose to associate individual projects, spaces, reviews and repositories with each other. Then, when you add text into one of the applications, you can refer to a page, issue or source file using just a simple textual reference. You do not need to enter the full URL. The text is automatically linked to the correct project, space, review or repository.
Plugins
There is a huge plugin library to extend the built-in functionality of JIRA. You can browse the plugin exchange here and also read about JIRA + GreenHopper for Project Management specifically. GreenHopper adds an intuitive interface to all your JIRA issues, drag and drop prioritization and management, and details charts showing you progress.
Other helpful project management plugins include
- JIRA Charting plugin to pull a variety reports into bar and pie charts
- Calendar plugin, to get an overview of a project - versions and issues due - from the browse project tab or from the dashboard
- JIRA Labels plugin to tag and group issues with labels common to your team and/or organization
- JIRA Suite Utilities plugin to extend the built in workflow flexibility






