软件工程师|如何摆脱商品化工作,打造自己的流水线?

职场 Schuller 2016-08-20 13:55:30 ⋅ 最后回复由 Schuller 2016-08-20 14:21:11 378 阅读

软件工程师在职业生涯中常陷入这样一种境遇:总是进行软件的维护,而不是开发新的产品

这篇文章概述了为什么大公司通常给工程师的薪水很低,甚至提供无报酬的工作;为那些希望摆脱商品型开发者角色的工程师提供了一些建议。

你是如何变成一件商品的?

在工业革命期间,人们开始从事流水线工作。

在流水线上,工人们的角色有限。流水线作为一种富有弹性、稳定的生产gongjuruanjian/" target="_blank" class="h_tag">工具,每一位工人的角色定位都非常明确,可以很容易地被取代,就像商品一样。

对于工人而言,成为一件商品,自然是一种不愉快的体验。但是那时候没有好的替代品,不能简单地放弃流水线,自己干。

file

工人的生活是痛苦的,但是整个社会在快速地进步中,因为工业家们能够利用商品化的工人实现更多可预见的产出。

这样一种生产方式一直持续到信息时代。

file
早期的计算机系统操作起来很困难。个人是肯定不行的。完成一些重要的任务需要一个团队密切合作才能成功。

现在,计算机系统操作起来就非常容易。单个工程师就能开发一些生活方式的业务。一个小小的团队就可以开发像WhatsApp这样的产品。不再单单是那些管理流水线的工业家,每一个人的影响力变得更大。

大多数软件工程师在职业生涯中就像流水线上的商品化工人一样,做一些自己不喜欢但是大公司需要的任务。对于工程师而言,如果想要摆脱薪酬微薄的机器生活,那就要建立自己的流水线。

建立自己的流水线

20年前,一家大型软件企业所使用的gongjuruanjian/" target="_blank" class="h_tag">工具要比你能买到的任何东西复杂的多很多。

亚马逊网络服务将服务器配置和管理的费用从一台机器50,000美元变为完全免费,这极佳地促生了像Dropbox、Trello和Slack这样一系列优质免费的软件。个人可以组合利用各种廉价的gongjuruanjian/" target="_blank" class="h_tag">工具,效率得到了极大地提高。

file

SaaSgongjuruanjian/" target="_blank" class="h_tag">工具之间相互结合,可以组建成更为先进高效的gongjuruanjian/" target="_blank" class="h_tag">工具。云计算推动了公共软件的巨大进步,不管是个人还是小团队都可以开发技术堆栈,而且有时候比大公司的还要高效。

大公司要紧密地与自己的gongjuruanjian/" target="_blank" class="h_tag">工具耦合,以至于无法有效地利用这种快速复合软件的高质优势。抛开大公司,你自己一个人可以很自由地组合配对各种gongjuruanjian/" target="_blank" class="h_tag">工具,只要你觉得合适就成。

软件gongjuruanjian/" target="_blank" class="h_tag">工具作为生产gongjuruanjian/" target="_blank" class="h_tag">工具,就像20世纪工业家的流水线一样,其连接方式如今变得非常分散。

事实上,整个经济都已经变得分散化。不仅仅是生产方式,包括分配、支付以及获得领域专长等每一个方面都变得分散,以至于大型集权企业的优势,现在个人和小团队也可以获得。

在过去,一个软件工程师团队需要一个办公场所一起办公,而现在完全可以不用这样。Docker、TopTal和Hashicorp(还有我们程序员客栈)利用一些协作gongjuruanjian/" target="_blank" class="h_tag">工具都已经开始远程办公了。

远程办公的企业对透明度和交流要求高一些,远程的员工必须记录已完成的工作作为审查——这对于完成工作的员工而言并不难。

在大型公司,工程师因为要和项目经理以及业务拓展人员接触交流,工作效率大大降低。

小公司的好处就是工程师必须要对全局有所了解,包括业务、设计、销售以及产品开发等。Fred George的Programmer Anarchy理论将此发挥到了极致。

file

每天一开始的日常例会中,程序员就选定自己的工作。

没有项目经理、迭代经理、测试人员...所有在职业环境中软件开发管理的条条框框统统都没有。这一切是建立在形式和规则制约了创造力和生产效率的基础上。

没有经理迫使程序员工作,程序员以自我管理的“混乱”形式对每个项目的成功完全负责。



Programmer Anarchy的成功表明工程师具有更大的作用,工程师的角色可以将其它的各个角色纳入其中。

如今软件gongjuruanjian/" target="_blank" class="h_tag">工具更为好用,软件工程师的行为得到了更为广泛的理解,Programmer Anarchy的理论也变得适用。工程师不必花太多的时间写样板文件代码,剩下的时间就可以用来思考如何将产品做得更好,产出更大的商业价值。

单个工程师有着很大的影响力,远比以前要大很多。一个小团队,其影响力可以说是巨大的。

如何建立自己的流水线

如果你一个人或者和一个团队一起开办一家公司,最为经典的建议就是“制造一些人们需要的东西”或者“活在未来,开发一些有趣的东西”。

在开发产品的头脑风暴阶段,这是个很好的建议。但是很多工程师从来没有画过产品原型,整个职业生涯都是在做维护,根本想象不出该如何将一个想法转变为一件有用的产品

如果你的职业生涯大部分是在大公司度过的,那么你可能因为依赖内部模具和工作流程而变“残废”。如果你想从头到尾开发一款产品,你必须投入一些时间到堆栈的每个领域才行。

你要学习画原型,从零开始开发一个新的项目,相比技术性的挑战,这更是一次情感和心理的旅行。

我们会记住开发软件中的所有快乐,不管是开发一款简单的游戏还是一个计算机类app。为什么我们以前曾停止开发新的产品?因为我们在企业的软件工作让软件维护变成了日常的思想。

如果你已经辞掉了企业的工作,你可以话一两个月的时间技术再造。你可能也存了一些钱,参加一次编程培训也是值得的。

file

哪怕你有计算机科学学位,参加编程培训也完全可以的,大学里学习理论,培训教授操作,而且在培训中还可以学习到独立开发项目的技巧和必要流程。

不管是参加培训还是自己学习,技术再造的过程会让你摆脱过去软件维护工程师的悲惨生活,重新发现创新的乐趣,甚至或许会第一眼就深爱上编程。

这意味要离开那些厚重的工业化语言,比如javac#,深入到一些能够快速制作原型的gongjuruanjian/" target="_blank" class="h_tag">工具语言中,比如React和nodejs,或者Ruby

作为工程师,如果喜欢数据科学和机器学习,可以花时间学习下TensorFlow或者Spark——网上有数不尽的教程。

经过足够多的练习后,开发自己的软件变得容易很多,下面的问题就是开发什么软件了。

开发什么软件

在获得了新的技能,学会了画原型之后,构思新的产品想法就变得更为简单了,你不需要有任何自我怀疑,担心不能带这款产品上市。

关于头脑风暴,人们已经写过很多了。Paul Graham的文章和以像《精实创业》(The Lean Startup)这样的书都是很有用的指导,帮助你构思出一个能赚钱的想法。

file

在大公司时间久了,构思新鲜想法的能力就会变弱。作为一名程序员,要试图构思出新想法的话,很容易变得沮丧,想想周围似乎什么都已经创造出来了。

克服这种精神猥琐的策略之一就是去看看外边巨大的市场,太大了,就算全世界的程序员同时去捕捉这么大的市场,也很难做到。

机器学习+X

如果你想开发一项软件业务,但是不知道从哪开始的话,“机器学习+X”是最为保险的思路之一。就像未来主义者Kevin Kelly所说的那样,“很容易就能预知接下来10,000创业公司的商业计划:X+AI”。

每一家企业都需要机器学习应用软件,就像在90年代每一家企业都需要网站一样。同时,大多数开发者对机器学习有所担心,因为机器学习听起来挺吓人的。

当开发者尝试了机器学习gongjuruanjian/" target="_blank" class="h_tag">工具之后,他们会发现scikit-learn就像Ruby on Rails网页开发一样舒服。

即使你是开发一款没人需要的机器学习产品,为了开发这款产品,你也要学习机器学习。如果你第一款产品失败了,在你下一款机器学习产品中也有可能用到你这次的代码。

硬件

硬件是另一个充满机会的领域。像机器学习一样,硬件听起来比硬还要难听。

物联网对于硬件开发新人而言是个好地方。各大主要的云提供商和芯片厂商都在物联网领域投入了大量资金。巨头企业相互竞争,提供了最好的物联网平台,开发者个体可以坐享竞争的福利。

与开发者相比,其它一切都是便宜的。想通用、亚马逊和微软这样的大企业正努力获取市场份额,他们非常愿意为笼络开发者支付高额的薪资。

物联网用户多为工厂、农场、车间和其它的工业企业,他们有着巨额的资金,正变得更懂科技,更愿意做一些新型硬件的试验。

不管你开发什么产品,每一家企业的软件工工程师都应该牢记这样一个趋势:供应方的云计算和需求方的小型设备(比如手机)是让你受益的最大经济力量。

物联网需要一些新型独特的应用,云计算意味着这些应用可以很便宜地提供给用户,用户也非常愿意为此付费。

这一趋势将在一定程度上影响着你要从事的各个行业。

在发展中国家,人们对独特的智能手机app的需求要比发达国家的更为强烈,因为发展中国家的用户常常没有笔记本或台式电脑。唯一的电脑就是智能手机。

现在,许多发展中国家连通性很差,这使得他们的需求与发达国家的大为不同。这些地方的技术人才远远没到饱和状态,所以对于那些希望研究当地市场,了解客户痛点的人们而言,这些地方是非常成熟的场所。

有很多其它的新型的领域——零工经济、VR、Docker等等。在深入研究了其中的某一个领域之后,就能够清晰地知晓在接下来几年里会有多大的科技增长量,有多少人置身于这一领域。

最难的地方在于要知道你应该开发一个东西。一旦你内心意识到这一事实,获得了原型设计的必要技能,开发的过程就成为了一次有趣的探索,哪怕是你一路都失败了。

开发一款新的产品,最难的部分在于做“决定”,决定要开发一款新产品,坚定不移地走下去!

总之,作为一名工程师,如果想要摆脱商品化的工作,建立自己的流水线是一个不错的选择:学习一种新的技能,选定一个领域,利用如今发达的科技,开发一个自己的产品,在一片时机成熟的地域实践下去。

回复数量: 2
暂无评论~~
Ctrl+Enter