我相信每个人或多或少都会以“乙方”的身份存在,只是受雇方式和影响层面的差异。
在互联网行业虽然能拥有更多的公平和机会,有人能抓住机遇,也有人随心过日子,但也有不少人迷失其中。
有时候看到自己或同行整天对着电脑编码,达到人机合一的境界时,不由会暗自自问:我们到底在干什么?
记得松本行弘说过“编程的本质是思考”。而思考是人具备的最强大能力,所以换句话说,我们在为“人”编程,而非电脑,更非程序本身。
记得一本书上的一句话:好的程序员知道自己在做什么,差的程序员不知道自己在做什么,道理就是这么简单,不管你信不信。
可能说得太过抽象,那故事还是从头说起吧:我们费心的任何软件一定是为了解决某种实际问题,当然任何软件在一定程序上一定也可以解决某种问题。
那问题的关键在于:最终我们交付的软件解决的还是不是当初期望的实际问题,还能不能创造当初期望的价值。如果一旦不,那风险就产生了,而软件也将变得毫无价值。
为了确保交付,行业内的主流解决方案又是怎么样的呢?
最简单直接的方式就是:强约定,也就是交付双方基于严格且详细的约定,精确列举交付需求,再加个一个时间期限,自然就解决了交付风险问题。
虽然简单直接,但也有几个显著问题:
1,需要客户清晰知道自己想要什么,思考过程和分辨的主体始终在客户。
2,虽然合同约定可以解决资金风险,但是始终解决不了交付风险(可能交付了一个不能转化实际价值的软件)。
3,因为以上特点,客户满意度很低。
为了解决以上问题,很多团队选择了“敏捷开发”或“精益创业”模式,通过从主到次,积少成多的迭代,确保信息沟通及时,过程透明可控,在一定程度上大大减少了交付风险。
但始终存在难以解决的问题:
1, 在传统的“雇佣”或“外包”模式下,很难比较自然的发展起来,很多公司的“敏捷运动”就是典型。
2,过程透明,快速失败,很容易造成“终止式”交付,导致双方利益难以平衡。
3,需求会被不断迭代和挖掘,工作难以量化。
4,恶意合作。
5,因为以上特点,交付方满意度低。
我相信多数人都希望能让自己的成果产生价值,但稍加分析,我们可以发现,解决问题的核心并不是照搬某种开发方式,而是如何去平衡交付双方,平衡他们的利益和价值。
而在现实情况中,不管是“外包”还是“员工”都难以平衡这种关系,因为价值观和利益点难以改变。(如果对这个观点难以接受,欢迎指教)
话不多说,那如何解决这个问题:
迫切需要一种全新的合作关系平衡交付双方,介于“外包”和“员工”之间,在当前环境下,团队自己维护自己的专业,独立,稳定。
公司专注核心业务的扩展与销售,可能就是习总说的“命运共同体”吧(我不是党员)。
作者:Code4Thought 成员 Flynn Shu