Linear – A fast issue tracker
25+ years of working in software engineering has taught me that &quot;issue tracker&quot; presents the wrong metaphor. This product looks like it&#x27;s not providing any novel improvements on what has failed for everyone so far, other than a slightly shinier surface.<p>Clearly there&#x27;s utility to issue tracking: Projects have problems of various kinds (bugs, mostly) that need to be fixed. Sometimes these are conflated with tasks, which are things that people need to do, but those are not the same. Sometimes these are also conflated with &quot;support tickets&quot; from consumers&#x2F;customers.<p>The problem isn&#x27;t having a &quot;database of problems&quot;. Clearly that&#x27;s useful: If I use a program, and it doesn&#x27;t work in some way, being able to look this information up somewhere is useful, both as a way to confirm that the problem exists for other people, and to follow up on it, and as a way to potentially find an existing solution.<p>But issue trackers aren&#x27;t mostly used for that. They&#x27;re used to drive development, and in that sense, this model doesn&#x27;t accurately represent the fundamental relationships and power dynamics between people and technology. Issue trackers rot and become unusable piles of cruft very quickly because they&#x27;re just &quot;databases&quot;, and not a process. Databases must be maintained; they model real-life information that becomes out of date almost the moment it&#x27;s entered. Of course, an organization <i>can</i> use issue trackers successfully, but it requires a very rigid process that constantly follows up, and you end up with a top-heavy social process that mostly (ab)uses a database to keep notes about progress.<p>I&#x27;m a fan of action-oriented task management, based on the principle that if something isn&#x27;t painful (poses a roadblock to development, for example) or risky (may cause a customer to leave, for example), then it&#x27;s not worth entering into a centralized database. Project-level task management should be oriented around stakeholders: Whoever an issue is important to should own it and keep it alive.<p>For example, a project manager can keep a spreadsheet or whatever of what people are working on, and their job is assigning work and making sure things get done, that the work follows some development timeline, and that the upstream stakeholders are satisfied. Nobody downstream needs to see this spreadsheet, but the project manager may need to present it upstream. By doing this, you&#x27;re essentially rate-limiting your issue&#x2F;task flow, and ensuring that someone keeps what&#x27;s important alive. If something slips through the cracks and nobody complains, it wasn&#x27;t important enough to remember.<p>A simple document (Google Docs, a wiki, markdown files on Github, etc.) of &quot;known issues&quot; can be used by developers and certain customers&#x2F;clients to understand deficiencies. It&#x27;s going to grow stale fast anyway, so prepare for it. Keep it loose and let it rot, and use it as a springboard for ideas in the future (if you bother to ever look at it again). Whenever possible, describe known issues in code so that you can look for TODO comments; that way, they won&#x27;t go out of sync so easily.<p>For <i>clients</i> of your project&#x2F;product, have a support channel (&quot;ticket system&quot;). This is not a database, but a communication tool. Open tickets mean there&#x27;s a stakeholder waiting at the other end that may not be serviced fully (even if your project doesn&#x27;t have a formal SLA). Making it public allows people to discover existing problems and find solutions to problems people had in the past. Support channels shouldn&#x27;t just be for external clients. I think a lot of companies could improve their communications by having internal ones, too.<p>I think a lot of people understand this, yet it feels liberating to put their backlog in a database, because it <i>seems</i> like something that&#x27;s ideal for a database. Developers love building task systems; it&#x27;s such a simple data model that seems to neatly organize real-life concerns. But it&#x27;s also a model that doesn&#x27;t scale to more than a handful of issues, and doesn&#x27;t really match how people work and communicate.<p>At the same time, it may feel <i>risky</i> to forego an issue tracker. But there are plenty of large projects that are managed without one. PostgreSQL, for example, doesn&#x27;t have an issue tracker, and bugs are managed entirely through mailing list discussions, and they&#x27;re doing great.