科技工作的真相:我们并非被雇来写代码
The reality of working in tech: We're not hired to write code (2023)

原始链接: https://idiallo.com/blog/code-for-hire

我前同事戏剧性离职,起因是对公司政策的强烈不满,这也突显了科技行业残酷的一面。尽管他是一位至关重要的.Net开发人员,负责维护重要的网站,但他的价值却在他离开导致网站瘫痪之前一直被忽视。简单的解决方法——由一位不熟悉Windows服务器的人员重启服务器——以及最终迁移到PHP,证明了他的专业技能是可以被替代的。 类似地,我曾经在JavaScript方面的专业知识,对于浏览器兼容性和A/B测试至关重要,最终却被jQuery、第三方工具和Angular所取代。我多年开发的定制解决方案,被毫不犹豫地替换掉了。我意识到,公司优先考虑交付产品和功能,更看重像演示文稿这样容易展示的成果,而不是精炼、专业的代码。最终,开发人员被雇佣是为了为公司的近期目标和产品开发做出贡献,代码能力在团队整体能力和适应能力面前显得次要。

Hacker News 的讨论围绕这样一个观点展开:软件开发者被雇佣的目的并非仅仅是编写代码,而是为了实现商业目标。编写代码只是一种工具,而且往往并非解决问题的最佳工具。开发者应该考虑代码背后的上下文,并探索其他解决方案,例如集成第三方服务或使用现有的工具,比如 WordPress。 一些评论者强调沟通、理解业务需求的重要性,有时甚至需要尽量减少代码。一位用户描述了其一位过度工程化的同事,强调需要减少不必要的代码,并解决潜在的员工和流程问题。一个普遍的观点是,代码是一种负债,高效的解决方案应该以最少的代码、员工和风险为目标。一些人担心许多公司只是将开发者视为“问题解决者”,与更大的图景和实际客户脱节。另一些人认为,“氛围式编程”(vibe coding)可能是努力与认可脱节的结果。
相关文章

原文

"So, is everyone losing their minds yet?"

My ex-coworker asked me over yahoo messenger. He quit after getting enraged by new work policies that specifically targeted him. I looked up from my screen, and saw that the team of developers who used to work alongside my ex-coworker were now silently working on their respective machines in the row next to me. His old monitor had been taken away. His tower was sitting on the now open office desk, collecting its first coat of dust.

"Yes. It's complete chaos." I replied. Well, I lied. It wasn't chaos. They weren't happy either. The reality was that his old team was indifferent. They missed him of course, he was a great guy. I missed him, he was a true friend in this chaotic world of technology. But the fact that he was the only .Net developer in the entire company went unnoticed.

By himself, he maintained multiple money making websites. They all ran on a brittle .Net infrastructure. He knew all there was to know about them, and would respond in seconds whenever they experienced an issue. There was no realistic way to replace my ex-coworker, the .Net developer, and there were no plans in place to address this issue. He was hired to write code, so the best way to get back at a company who didn't value him, was to stop writing code. So he quit.

"lol the website is down," he wrote to me the next day. I checked and he was right, the website was down. I looked in the next row and it was complete silence. A whole hour passed and I was getting nervous. Not a single person in his old team was talking about it. I sent a message to one of them. "Hey I think your website is down."

"Oh, you are right." She answered. "I'll investigate."

After lunch, The QA guy in Mexico sent me a message on AIM, asking if I knew the credentials to the server. I shared the credentials. Then he said "Is SSH disabled on this server? It just times out."

"It's a windows server," I answered. "You have to use RDP to connect."

"Oh boy! I never used a Windows server before."

I helped him access the server and went on my way. Before the day was over, the website was back up. He was later promoted and became the new .Net guy. The QA guy in Mexico resolved the issue by simply restarting the machine.

My old friend, once a crucial part of the organization, was no longer needed. They built a new UI written in PHP and plugged the same database. Not only was he replaced, but now his position had been phased out. .Net was no longer a thing in the company. The promoted employee in Mexico was soon let go.


I thought I had been hired for my ability to write code as well. I posed as the JavaScript guru. Everyone consulted with me before deploying any code. In 2011, you needed an expert to guarantee your code would run on the plethora of broken browsers. We wouldn't dream of the tools available today. I was that expert. Yet when I left, my team moved on.

Despite my skills as a JavaScript developer, my position had been gradually diluted into a larger team of developers who were capable of handling the job just fine.

I was once proud of my self-developed methods for testing my scripts across various browsers and effectively implementing feature detection. However, the company eventually switched to using jQuery instead of my custom-built methods. Similarly, my custom tools were replaced with a third-party vendor's offering. While I was previously the go-to person for building new features, I was unable to contribute to the implementation of Angular due to my lack of experience with it.

I was proudest of an A/B testing suite I built for the company. It rivaled Google's Web Optimizer, and it was customizable. It ran both on the server side and the client side. It was the result of years of internal feedback and fine tuning. I even made a fun little logo for it. One day, a new manager came in and said we should use VWO as an alternative to Google's. And that was it. My work was tossed away without a second thought.

If they had hired me to write code, or if my old friend was hired to maintain what was exotic code, then why was it so easy to discard it?

I later realized that in the fast-paced tech industry, companies prioritize delivering products and features above all else. Managers are responsible for delivering results to higher-ups. As such, it is crucial for developers to work on building and maintaining the company's products and features, regardless of their coding specializations.

My experiences as a consultant further highlighted the importance of delivering visual results to clients and stakeholders. I often spent night and day fixing bugs and performance issues only for the company to ask me if I did any work. But when I produced "A Subscription Model" or "An Architecture" or "A build system" these were highly praised. Even though they came in as a PowerPoint instead of working code. They would hand it over to a team to write the code later, if ever.

Does it mean that we shouldn't write code or shouldn't try to get better at it? Not at all. When working in a team, what matters most is that the weakest developer be at the very least competent. The rest is to try to build and maintain the company's product and features.

Not as fun or inspiring as we make the programming world to be. But the reality is we are not hired to write code. That's only incidental.


联系我们 contact @ memedata.com