时间:2023-06-21|浏览:165
本文中讨论的问题不仅限于软件行业,许多大公司都存在这样的问题。
我在软件行业工作已经二十多年了,前前后后经历过很多公司。我曾在大型金融和咨询公司从事过一些无聊的工作,还曾在一些小型软件公司从事过一些很酷的图形项目,这些项目为电影制片厂开发出了非常酷的工具。
我可以告诉你一个秘密,很多“软件工程师”,尤其是在大公司工作的人,所做的工作实际上很少。他们中的很多人几乎“无所事事”。
我曾在一家大型金融公司担任软件开发人员,当时我一直有一个疑问:为什么我们花在编程工作上的时间这么少。
大部分时间里,我都在应付各种无聊的会议、准备无聊的幻灯片、制作愚蠢的Excel表和甘特图。如果幸运的话,每天我能拿出1~2个小时写代码。我们团队负责开发的软件实际上是一个JavaScriptWeb应用程序,用于监控和收集公司财务交易的详细信息。
老实说,我觉得我完全可以在5个月内仅凭自己的力量完成整个软件。整个解决方案的代码行数不会超过24,000行(包括大量生成的代码)——而我们团队花了将近3年的时间来构建这个软件。当然其中大部分时间都花在开会上,或者为琐碎的功能争论不休,比如我们是否应该使用特定的图表来显示某些数据,以及图表应该使用什么颜色。就连我个人的项目都比我们开发的这个软件更复杂。
当时我们团队大约有20人,但开发出的软件根本没有什么可展示的。所有时间都耗费在沟通瓶颈、办公室政治以及低效的工作流程上。有时,主管或“团队负责人”会介入并“贡献自己的力量”,给我们一些毫无价值的鼓励,比如说一说为什么图表应该使用哪个颜色,为什么信息应该以某种方式显示等等——基本上就是一堆假大空。
不要以为这只是我对于这份工作的感受,其他的几份工作也都是如此。
此外,有这类经历的人不止我一个,与我交谈过的许多程序员都抱怨他们编写代码的时间太少,大部分时间都浪费在了会议上。我们总是忙忙碌碌,却没有任何实质性的产出。在工作时间内,我们总是被各种事情折磨得焦头烂额,从来没有空闲时间。然而,我认为很多时候我们都是在白白浪费时间。
这些工作中遇到的另一个问题是不利于个人成长。在科技巨头公司内,我们都是“螺丝钉”,在一个大项目中承担一个很小的任务。自由开发者只需努力两个月就能轻松超过我们1年的产出,请不要感到惊讶。
有时,你只是编写了一小段代码,却要为此编写50页的文档,还要进行一堆有用的和无用的测试。你做出的每一个决定都需要与同事和主管反复争论。所以,我们辛辛苦苦努力1年才能完成一位开发人员只需两个月就可以做完的工作。可悲的是,你习惯了碌碌无为,并在层层监视下,假装努力工作。
后来,我回到了以前曾经工作过的一间小工作室,并在这里找到了内心的平静和满足。我使用的是C++和一些图形API,包括OpenGL和DirectX。我们需要制作非常复杂的后期效果处理,比如颜色分级、色调映射、屏幕空间体积效果以及许多其他很酷的功能。
我们团队只有3个人,我的另外两位同事对工作充满了热情。每一天,我们都在积极地学习、探索和发现。我们编写、构建和调试了大量代码。我也终于有机会提高自己的数学水平,因为我们的任务需要应用非常复杂的数学知识。这里没有办公室政治、没有废话连篇,只有编写代码和不断的学习。有时,我们也会会选择加班,因为我们沉迷于手头正在解决的问题。
此时此刻,我选择为自己工作,做一些自由职业和一些短期的合同工,我感觉自己非常高效。我永远不会回去为大公司工作,因为在那里我将一无所获。在那些公司里,我的成就感为零,交不到任何朋友,搞不好还会树敌。赚钱固然重要,但我宁愿用金钱换取成就感、乐趣以及充满动力的工作,