This post is for product people who are new to project management.
In my last post I touched on project management tools. What are some available frameworks and tools that can help us manage projects?
Here are a sampling of common frameworks and associated tools. Your mileage may vary. As long as you pick one framework (including one that you make up yourself) and manage against it, you can be effective – as long as the framework you pick is well matched with the complexity of your project. Enjoy!
To-do lists are the most basic way of organizing work. Tasks are simply written down as a list. Best for simple projects, or projects that do not have a significant time component.
You can manage task lists on post-it notes, in a text document, via Google Tasks, or tie knots on a string as a reminder to yourself. Almost anything will do.
As you can see, this doesn’t scale. Keep reading for more comprehensive frameworks that can help.
Lists of lists
Image credit: trello.com
For people who want to stay with the simplicity of to-do lists would like a little bit more structure and collaboration support, there are tools like Trello.com which allows you to organize work as a list of lists. Trello in particular allows you to organize your lists as virtual “cards” on virtual “boards”. So you can imagine having a workflow-oriented setup like the above, so you can move your “cards” from board to board as they progerss.
Alternatively, you can use the boards to represent conceptual groupings for tasks. For instance, you can have an administrivia-focused board with cards representing random tasks (e.g. “Buy replacement printer cartridges”), a marketing-focused board for reminders about inbound/outbound marketing activities (e.g. “Schedule tweets about upcoming keynote talk at XXX Conference”), and work associated boards with related cards.
This is better than a flat to-do-list – I actually use something like this to help organize my day. However, it is also not scalable (as anyone who has attempted to manage a complex timeline or a list of 50 bugs with this type of tool can tell you.)
Spreadsheets are the next step up in flexibility. It allows people to organize tasks with a little bit more structure, and the rows and columns layout help people enter more pertinent information for each task, which helps individuals stay organized and teams stay coordinated. The picture above is a glorified to-do list with a lot more color. It helps people figure out who does what when at a glance.
There are multiple on-line spreadsheet solutions, most notably Google Spreadsheets, which has a small but extremely functional set of basic collaboration features. For instance, you can see the exact cell that your co-worker is looking at, when you are in the worksheet at the same time. You can see who has access to the shared document. You can IM people directly within the worksheet.
You can always use a desktop product like Microsoft Excel, but you lose the collaboration feature set and run the risk of losing work. For this use case, I favor on-line worksheets.
Image credit: www.smartsheet.com
This is the old-school way of managing work. A program plan is expressed in tasks and milestones with start and end dates and the duration (in working days). Cross dependencies are explicitly called out. The schedule in calendar time is automatically generated. You can absolutely get carried away with the level of detail: you can assign people to tasks by % loading; you can enter non-working days to reconcile person-hours with the calendar; you can specify dependencies in any number of ways; you can impose date-based constraints manually.
With all the new tools out there, I still say this is the best way to manage a highly complex, cross functional program at the top level. There are better tools to manage work at a detailed level for specific types of projects (e.g. software development) – more on this later.
There are a variety of web-based Gantt tools that are great for collaboration. Some providers include Smartsheet (featured in the screenshot above), Zoho (which also has a big suite of collaboration tools, office tools, CRM tools and more) and Team Gantt. Of course there is always Microsoft Project. It is great if only one person ever needs to access it at once, but if you need to collaborate (and you should), any one of the online solutions should work better.
On-line collaboration platforms
Image credit: https://basecamp.com/
There are several very effective on-line collaboration platforms, the most well known of which is Basecamp. This type of product is an online project management platform that is perfect for coordinating creative projects, such as a design project for a website or a mobile application. It provides the following benefits:
- Provide an integrated view for all the artifacts and discussions associated with a small to mid sized project
- Allow team members to post and share files – files are time stamped, providing a modicum of revision control
- Supports shared, on-line, hierarchical todo lists – you can set ETAs for each to-do
- Provides a calendar view to organize events and view milestones
- Provide a forum-like interface for discussions amongst team members
- Provide a way to view recent activities by team members
So, it’s got everything – except for a Gantt chart. It is the best tool for collaborating on creative projects. It’s not the best match for a complex engineering project with massive cross dependencies. Imagine a 50-person project involving 5 kinds of engineers, 2 external consulting firms, an off shore OEM manufacturer, and a project lasting 9 months. Gantt charts are a necessity evil for that kind of project. Hierarchical todo lists and discussion threads are a necessary but not sufficient condition for success.
It also does not cover basic Agile software development workflows like issue tracking – coming right up.
Issue tracking systems
Image credit: https://www.atlassian.com/software/jira
At the core of any software development process is issue tracking. It is the task of tracking each and every item that needs to be resolved, at the lowest level of granularity. An issue can be a feature or a bug. It is a unit of work in software management that is tracked and managed. An issue tracking system allows users to enter information, tag and categorize each issue, and track the issues through an agreed-upon workflow through issue resolution and verification. Using task lists or discussion threads is simply not effective.
There are several well known application life cycle management tools that support software development, including Jira from Atlassian Software. Jira has a well designed issue tracking feature suite that supports individual issue tracking as well as power tools to pull reports about things like the bugs found versus bugs fixed rate, an important metric that provides insight into release readiness of a code base.
Jira is probably the most well known hosted solution with a SaaS pricing model. It works very well for a range of software projects at different scales, from 1 person projects to projects involving hundreds of developers. At the enterprise scale, there are solutions like IBM’s Rational Clearquest, which offer massive amounts of functionality at massive levels of complexity. It takes a long time to implement and deploy in an organization, but I heard that once it is working, it is great at keeping the development workflow coordinated from one end to the other. For people who prefer DIY platforms, Bugzilla is a popular open source solution that people can install and customize on their own server architecture.
Agile management systems
Image credit: https://www.rallydev.com/
There is a plethora of special purpose tools designed to help manage Agile software development projects. Rally Software is a well known provider of these types of tools. Agile management tools provide easy ways to manage the artifacts of the process, including requirements, features, user stories, roadmaps, burndown charts and more. Rally also provides integrated issue tracking. Jira also has a comprehensive suite of features to support Agile development as well.
Issue tracking, Agile management and test plan management software, combined with code review support, source code management, and a strong continuous integration solution and sound DevOps practices, are the tools of the trade for managing software development. This is the one area where less is not more. Most of these workflows are 100 times more effective with the right tools deployed – conversely, if the right tools are not deployed, it is very hard to run a software project at scale.
Hopefully this post provides enough of a taste for the tools of the trade in project management. They all help manage the details and complexities of technical projects. Have fun trying these tools out and enjoy the process.