Plane: Open-Source Project Management on Steroids
Project management tools are vital components in the modern software development cycle. The majority of Fortune 500 companies rely on Software as a Service (SaaS) products like Jira, Linear, or Monday.com to organize their work. However, these solutions often come with significant drawbacks, including high costs, vendor lock-in, and limited customization options. Furthermore, many of these large corporations are uneasy about handing over all of their internal project data to a third party company, where it's susceptible to data breaches or leaks.
This is where Plane comes in. Plane is an open-source and self-hostable project management software used by companies like DuckDuckGo, Accenture, and many others. It aims to provide teams with a flexible and customizable platform for managing projects, tracking issues, and collaborating effectively.
Workspaces
Plane organizes everything into a workspace. Think of a workspace as a company's central hub, organizing everything for the company. A company's projects are organized into, well, "projects" inside of a workspace. For example, a company like Apple would create different projects for products like "iPhone", "Mac", etc.
While all employees should have access to the company workspace, the same doesn't necessarily apply to projects. In most companies, an engineer is only in the projects of things they actively work on. Using Apple as an example, a macOS developer probably doesn't need to be involved in the iPadOS project.
Issues
Issues are a fundamental piece of project management. They can be used to track bugs, new features, or general maintenance tasks.
An issue is identified by a slug followed by a auto-incrementing id. For example, the slug for TenByte is just BYTE. The first issue is BYTE-1, then BYTE-2, and so on. Let's take a look at a sample issue in the image below.
Something to point out is the State property. It can either be set to Backlog, Todo, In Progress, Done, and Cancelled. Similarly, the Priority property ranges from Low to High (and even Urgent for tasks that need immediate attention).
There are many other properties of an issue, such as Assignees, Start/Due date, and Labels. One useful feature in Plane is the ability to create sub-issues. As the name suggests, this allows an issue to belong to a parent issue. For example, let's say you're managing a feature rollout that has multiple tasks associated with it. Instead of creating separate issues for each task, you can group them as sub-issues under a parent issue. This allows for better organization and tracking of related tasks, especially when you're working in a large organization and collaborating with many people on the same stuff. If you're rolling out a new login feature, the parent issue could be “Implement New Login System”, while the sub-issues might include “Design Login UI” and “Integrate OAuth”. This hierarchical structure simplifies tracking progress on large features or features that might take a very long time to see through.
Sprints & Cycles
"Sprints" are a very common time-based organization method used by organizations for scheduled releases. The length of a sprint can vary; most companies prefer to sprint anywhere from 4 to 6 weeks. Apple releases a new version of macOS every year, in an annual sprint. On the other hand, 37signals maintains a consistent sprint of 6 weeks. One important thing to note is that the length of your sprint almost always determines your release cycle. Additionally, the length of a sprint might be different per project.
Plane refers to sprints as "Cycles". Issues can be grouped into cycles, but they can also stay independent (if they're not related to any time-boxed event). Any work that is unfinished at the end of a cycle can be transferred to the next cycle. Plane provides analytics to help you optimize your team's unique workflow. You may choose to shorten or extend your cycle length based on performance in previous cycles.
Pages
Plane offers a replacement for tools like Confluence, Google Docs, and Microsoft Word that integrates into the rest of your development workflow. Pages can be used for simple notes, feature documentation, or even project wikis. Plane Pages have all of the formatting tools you would find in other applications, from checklists and bullet points to images and tables. And of course, code blocks. You can collaborate with anyone from your Plane workspace seamlessly in real-time, just as you would in an editor like Google Docs. Documents can also be made public using an external-facing URL to share with the rest of the world.
Other Miscellaneous Features
Plane is a feature-packed software, and there are many small features that don't require an entire section written about each of them. However, little things add up fast, and as such this section is reserved for summarizing those features.
Modules
In Plane, a "module" is simply a group of issues that can represent anything from a specific feature to an entire section of your project. One extremely common occurrence of issue grouping is, interestingly enough, security bugs. Often times, when a security bug is found, it is the product of many related systems not exhibiting expected behaviors. This is especially true in complex systems like operating systems. As such, grouping these issues can be very helpful in quickly securing a vulnerability.
Views
A view is a set of filters used on your issues. You can use all of the issue filters in a view, such as priority, state, labels, cycles, and more. You can also change display settings for a view, including which properties to show, how to group the issues together, and what order to list them in. Views are very helpful in projects with many issues because complex projects often have many issues relating to each other, and it can be helpful to get such information at a glance.
Intake
Intake is a feature that allows individuals outside the workspace to create issues, which can then be moved into a project by the team members involved. It supports submissions such as bug reports, feature requests, or enhancements from the outside world. Once issues are created in Intake, a team member can accept, decline, or snooze an issue to be reviewed at a later date. Issues can also be marked as duplicates, in case a similar issue already exists within a project. If accepted, the issue is moved to the issue dashboard, where the rest of the project lies.
Publish
Plane allows you to turn your project into a public roadmap for anyone on the internet to view. Publish generates a unique URL for users to view what tasks your team is working on. Additionally, you can choose whether or not you allow users to comment on issues. Team members can also make private comments, which aren't visible to non-team members. Attachments are also not visible to external users.
Analytics
Finally, Plane provides basic analytics for projects and workspaces. When compared to other solutions like Monday.com or Jira, Plane's analytics are quite minimal. However, you can define custom analytics to better fit your team's needs.
Final Thoughts
Plane is an advanced project management tool, but it's still in its relatively early days. While it is getting better with every release, it may not be a good fit for your team. Additionally, while Plane has migration tools for Jira and GitHub, it might not be worth the transition from an existing provider. However, for new projects, Plane is definitely a great option for teams of any size. Thanks to its open-source nature, companies self-hosting the software can cut costs while ensuring that all data is private and secure.