致力于人们讨厌的产品
Working on Products People Hate

原始链接: https://www.seangoedecke.com/working-on-products-people-hate/

这篇内容反思了作者在Zendesk和GitHub等公司从事自己喜爱和*厌恶*产品的经历。核心论点是,工程师的技能并不能保证产品的成功或受欢迎程度。大规模软件开发是一项团队工作,受到公司激励的强烈影响,这意味着即使是优秀的的代码也可能在过程中迷失或受到外部因素的损害。 作者认为,从事不受欢迎的产品是有价值的。它培养了对工程师控制力的现实期望,建立了对负面反馈的韧性,并强调了在用户需求与公司可持续性之间取得平衡的重要性。一个被*使用*的厌恶产品——表明存在一些潜在价值——即使是逐步改进,也可能产生影响。 最终,作者鼓励人们对从事不受欢迎软件的工程师表示同情,认识到这是一种常见的职业现实,并且指责个人会忽略复杂组织动态的全局。

一个黑客新闻的讨论围绕着一篇名为“开发人们讨厌的产品”的博文。博文的核心论点——也是争议点——是工程师应该乐于构建他们个人不喜欢的產品,因为他们的忠诚在于公司,而非用户。 许多评论者不同意,认为优先考虑他们引以为傲的工作至关重要。一些人表示更愿意加入专注于有价值且广受好评的产品公司,即使这意味着更少的稳定性。另一些人则认为这篇文章是在为为了经济利益而接受在道德上令人质疑的工作辩护。 一个关键主题是经济激励与道德考量之间的冲突,一些人指出成功的企业并不总是对社会有益。最终,这场讨论凸显了关于职业满足感、个人价值观以及工程师在塑造他们构建的产品中所扮演的角色之间的争论。
相关文章

原文

I’ve worked on a lot of unpopular products.

At Zendesk I built large parts of an app marketplace that was too useful to get rid of but never polished enough to be loved. Now I work on GitHub Copilot, which many people think is crap. In between, I had some brief periods where I worked on products that were well-loved. For instance, I fixed a bug where popular Gists would time out once they got more than thirty comments, and I had a hand in making it possible to write LaTeX mathematics directly into GitHub markdown. But I’ve spent years working on products people hate.

If I were a better developer, would I have worked on more products people love? No. Even granting that good software always makes a well-loved product, big-company software is made by teams, and teams are shaped by incentives. A very strong engineer can slightly improve the quality of software in their local area. But they must still write code that interacts with the rest of the company’s systems, and their code will be edited and extended by other engineers, and so on until that single engineer’s heroics is lost in the general mass of code commits. I wrote about this at length in How good engineers write bad code at big companies.

Looking back, I’m glad that people have strongly disliked some of the software I’ve built, for the same reason that I’m glad I wasn’t born into oil money. If I’d happened to work on popular applications for my whole career, I’d probably believe that that was because of my sheer talent. But in fact, you would not be able to predict the beloved and disliked products I worked on from the quality of their engineering. Some beloved features have very shaky engineering indeed, and many features that failed miserably were built like cathedrals on the inside. Working on products people hate forces you to accept how little control individual engineers have over whether people like what they build.

In fact, a reliable engineer ought to be comfortable working on products people hate, because engineers work for the company, not for users. Of course, companies want to delight their users, since delighted users will pay them lots of money, and at least some of the time we’re lucky enough to get to do that. But sometimes they can’t: for instance, they might have to tighten previously-generous usage limits, or shut down a beloved product that can’t be funded anymore. Sometimes a product is funded just well enough to exist, but not well enough to be loved (like many enterprise-grade box-ticking features) and there’s nothing the engineers involved can do about it.

It can be emotionally difficult working on products that people hate. Reading negative feedback about things you built feels like a personal attack, even if the decisions they’re complaining about weren’t your decisions. To avoid this emotional pain, it’s tempting to make the mistake of ignoring feedback entirely, or of convincing yourself that you’re much smarter than the stupid users anyway. Another tempting mistake is to go too far in the other direction: to put yourself entirely “on the user’s side” and start pushing your boss to do the things they want, even if it’s technically (or politically) impossible. Both of these are mistakes because they abdicate your key responsibility as an engineer, which is to try and find some kind of balance between what’s sustainable for the company and what users want. That can be really hard!

There’s also a silver lining to working on disliked products, which is that people only care because they’re using them. The worst products are not hated, they are simply ignored (and if you think working on a hated product is bad, working on an ignored product is much worse). A product people hate is usually providing a fair amount of value to its users (or at least to its purchasers, in the case of enterprise software). If you’re thick-skinned enough to take the heat, you can do a lot of good in this position. Making a widely-used but annoying product slightly better is pretty high-impact, even if you’re not in a position to fix the major structural problems.

Almost every engineer will work on a product people hate. That’s just the law of averages: user sentiment waxes and wanes over time, and if your product doesn’t die a hero it will live long enough to become the villain. Given that, it’s sensible to avoid blaming the engineers who work on unpopular products. Otherwise you’ll end up blaming yourself, when it’s your turn, and miss the best chances in your career to have a real positive impact on users.

Here's a preview of a related post that shares tags with this one.

联系我们 contact @ memedata.com