对于一个创业项目来说,程序员能发挥什么作用呢?近日,程序员Mohamed写下了他的亲身经历,表明:在普世观念里,创业项目中“点子”最重要,而程序员作为执行角色之一,其工作价值往往得不到认可。一些对于软件开发的“世俗观念”让开发者的付出也很难获得相应回报。
本周,一位旧相识联系了我,他向我提了一个建议。
“嘿,我听说你是程序员!这太好了,因为我和我一个哥们对创业有个想法。我们已经把所有重要的事情都理清楚了,我们所需要的,只是一个程序员把它们都‘拼’到一起。”
从表面上看,这种说法并没有什么不合理之处。这些人知道他们想要什么应用程序,他们“只是”需要技术知识来实现它。所以,我克制冲动,没有草率答复,而是写了这样一个回应。
“嗯,我现在手头还有其他一些项目,但我总是很乐意看看新事物,看看它是否合适。如果你想把它作为严格的劳动报酬交换,可能需要每小时X美元才能让我有兴趣花时间在上面。另外,如果你没有任何启动资金,并且对这项工作的股权交易感兴趣,我可能至少要看到公司X%的分成(当然,这个选项取决于我是否认为这项业务是可行的,我是否有兴趣投资)。”
虽然我真的没想到他会有兴趣在这些条件下与我见面,但我预计他可能会讨价还价,或者表明他期待的是Y,而不是X。不过,我实际得到的回复依然让我有点惊讶。
“我们还没准备好付钱呢。我的意思是没有为这个准备那么多,它只是一个带数据库的网站,我希望你能帮个忙把它‘拼’起来。不管怎样,还是谢谢你。”
对于这次谈话,我反思了一下,开始意识到一些隐射软件开发工作的“弦外之音”,或者更准确地说,是传统观念里人们对于“软件开发”的既定印象。
其一,“没有为此准备那么多”,也就是潜意识里默认“软件真的很容易写”。
其二,“我们已经把所有重要的事情都理清楚了”,言语看出对软件的轻视,“在一个企业中,实际的软件只是蛋糕上的糖霜”,连锦上添花都不算。
其三,“我们所需要的只是一个程序员”,这句更气人,约等于表明“软件开发人员是机器上的齿轮,或者是装配线上可替换的组件”。
那么问题来了:这些潜台词在软件行业中是常见的吗?更重要的是,它们是准确的吗?
这当然是我已经习以为常的观点,我相信你们中的大多数人也有过这样的经历:“这不是火箭科学,我们所需要的只是一个能起作用的程序(在此插入复杂功能)”。不幸的是,人们常常误认为开发软件的难度只有实际的十分之一。
现在我们可以说,这并非完全荒唐无稽。因为对于非技术用户来说,用户界面就是软件,所以他们只能感知到整个应用程序的十分之一。基于这一事实,世人总会觉得:在底部添加另一个按钮,完全改变应用程序的工作流程也并不是什么大问题。这是对软件行业的一个普遍误解。
在我看来,真相必须被揭示:软件开发是困难的。虽然我们有一些好的开发方法可以让我们专注于重要的事情,有一些好的工具可以提高我们的生产力,但是归根结底,又好用又易用的软件是很难一蹴而就的。
我不止一次遇到过这种观点。而且这种论点的表面价值似乎是合理的。毕竟,软件可以被设计用来做任何事情(在合理的范围内),所以我们真正销售的不是软件,而是商业概念。让我们赚钱的是产品或服务,而不是代码。在某种程度上,这是非常正确的:没有实用价值的软件根本就不是伟大的软件。
然而,如果把这句话反过来说,无论作为交付媒介的软件是什么,只要是一个伟大的商业理念都会成功,那就错了。无论是产品公司还是服务公司,软件都在讲述你的故事,你的业务将根据它是否易于使用且不易崩溃来判断。即使是世界上最伟大的企业,也无法摆脱一堆糟糕的软件带来的桎梏和负担。
所以在我看来,这种观点不仅是错误的,而且随着时代发展会错得越来越离谱。
坦白说,作为一名程序员,我是这种错误观点的既得利益者。
而且在各种求职过程中,我已经多次体验过这种观点。比如,一个公司短时间内需要完成大量开发工作,“显而易见”的解决方案是再增加多个程序员。更多的人力=更快的进展,对吗?
实际上,我承认我可能有偏见,但我的确认为程序员之间并非是平等的。有很多人写过R星开发者的故事,他们就像神话里超级多产的英雄,可以独立扛起一个项目,对此我并不完全相信。
话虽如此,我确实认为,如果在项目中能找到担任软件开发角色的合适人选,真正合适的人选与不那么适配的人选,至少可以产生一个数量级的差异。比如,一个普通程序员可能需要10个小时的工作,如果你有合适的人,可能只需1个小时就可以完成。
此文发布后,在相关技术论坛引起了诸多讨论。有曾在创业公司的开发人员现身说法,表示好的东家会提供有竞争力的薪酬和股票。“好的点子会吸引风投,而好的程序员会得到好的回报。”
也有开发者对这个故事感同身受,认为99%的创业项目都不值得加入,并犀利指出:没有执行力的好点子都是幻觉。而很多人都抱有这种幻觉,很多想创业的人其实对创业的现实一无所知。“你的想法本身没有任何价值。执行是唯一有价值的东西。”
不知道读者诸君觉得如何?程序员是否应该加入创业项目?关于软件开发的传统观念是否已经发生了变化?随着技术的发展,潜在客户对软件的看法是否也正在改变?
参考链接:
I Just Need a Programmer
https://www.reddit.com/r/programming/comments/18p96dz/i_just_need_a_programmer/