有位叫马元的朋友在订阅号“程序视界”的后台给我留了很长的一段话,描述了自己身为一个苦逼开发者,经常996及日常工作中遇到的各种困境,还描述了他想自己接项目却遭遇各种麻烦的经历,看了让人感慨。我和他沟通过,他同意我把他的留言整理成文章发布在程序视界。他遇到的问题,也是每个有想法想要自由的开发者都会碰到的,而这些问题,其实也是可以解决的,本文后面会给出答案。
马元要放弃月薪 3 万的开发工作
我是马元, 32 岁的程序员,越来越不适应 996 的节奏,觉得很受束缚。再加上这两年家里事情比较多,总要花些时间处理家里的状况,对生活被工作占满这种状况越来越不能忍受。虽然薪水接近 3 万,可是因为不能兼顾到家里,我有强烈的想放弃这份工作的想法。
我女儿四岁了,去年上的幼儿园。小家伙不太想去幼儿园,每天早上都叫不醒,叫醒了就各种磨蹭,要么说困死了,要么说鞋不合适,要么说裙子不好看……总之一定要找各种事情,把去幼儿园的时间往后推,一推再推。
幼儿园要求 8 点 10 分送到,我单位 8 点 30 上班,我每次送完她再去上班,时间都很紧张。尽管我很注意,一个月要还是要迟到五六次,每次迟到,都要看领导的脸色,非常不舒服。
我讨厌这种状态!我不想迟到。所以每次看到女儿磨蹭,看到时间接近 8 点,我就失去耐性,要么吼她,要么拽着她出门,结果往往是她哭哭啼啼的,我也心情很糟糕,最烦的是,这样还是免不了上班迟到!
每当我遇到这种状况,我就会想,要是我不上班,自己接项目做,当个独立开发者,那该多好。
除了女儿上幼儿园,还有很多其它事情。比如五一前几天,大学同学过来玩儿,我要陪他们,他们 4月 27 号就来了,可是 29 号才放假,我得请两天假,领导就问我什么事儿,我说同学来了陪他们玩儿两天,领导那脸色,简直不能看,只给了我一天假。好吧,一天就一天,那我晚上早点下班也成。可是领导那两天好像故意的,一到快下班就给我派活儿,还一再叮嘱这个东西当天一定要完成,弄得我想走走不了,郁闷死了!
还有很多事情,比如父母身体不舒服要带他们看,比如媳妇哪天单位忙不能接女儿我要去接,比如哪天驾校要考试……总之你会有各种各样必须要工作日去办的事情,这个时候你就得请假,就得看领导脸色,特别不爽。我又不是那种什么都不在乎的人,特别受不了本来我工作做得好好的却因为一些不得不处理的个人事情而被别人说我工作敷衍了事不负责任。
这还不算,还有就是,开发么,你也知道,是忙是闲,和项目关系很大。有项目、项目交付期紧张,加班加点很正常。没项目的时候,实际上是比较轻松没那么多事儿的,可是就算没事儿也得在单位耗着啊,不但如此还要加班你知道么,你要是走得比领导早,心里就特不安。不但如此,周六还得去——根本没什么事情嘛!
我觉得程序员就不应该拼时间拼加班,应该是结果导向,按任务来。你根本不用管我加不加班,我只要在交付期前完成任务就好了么!你说是不是?甚至都不用到单位上班, SOHO就行。这样的话,我可以自己安排时间,想早上做就早上,想晚上就晚上,只要定期沟通、按期交付就行了。还有,因为我节省下来的时间都是我的,可以做自己喜欢的事情,所以积极性肯定高,效率也高。对吧。
所以我这两年就在寻找能够在家办公的工作机会,可是这几年经济大环境不好,原来支持在家办公的公司,也都叫停了。于是我就想着怎么能自己接点项目,看看能不能成为自由职业者,通过接软件项目来养活自己。
可是我接过两个项目,都是泪。
第一个项目是朋友介绍的,让我做个公司主页,说功能很简单,就是能展示公司产品,发布公司新闻动态等, 6000 块,两个星期完成。我一想这还不简单,都是静态页面啊。于是就答应了。可是光和对方沟通需求,就用了两个星期,电话还不行,还得现场,我跑对方单位跑了三趟,还有一次是请假过去(领导很不满意)!完了需求刚说定,没过两天,对方就要上线!我说刚开始做,对方说说好的两个星期交付!我靠!有这么办事儿的吗,两个星期我们不是才沟通完需求吗!好吧,我只好往前赶,紧赶慢赶,一个星期交付了。可是对方用了两天,说管理员得分权限,得要一个最高权限的管理员,可以管其他管理员,能看到其他管理员都干了什么。然而讨论需求时,明明说的是只要一个账号,能发布文章和动态就行了啊!这一分角色和权限,我得重写多少代码!说不过人家,再说尾款 2000 还没付,只好改了——又花了一个星期的业余时间才满足对方要求!最后,人家还要我给开发票!我他妈哪儿有发票!只好到处求爷爷告奶奶整发票!
这个小项目做下来,发现需求沟通、需求变更、进度沟通、付款,所有这些事儿,都得我一个人来弄,太累了!简直烦死人。我这个人就想开发,做好一个模块一个功能,不想搞什么需求分析项目管理。可是自己接项目,这些事儿都跑不了。
第二个项目是一个清单工具的 Web 前端,我吸取了第一个项目的教训,要求对方先提供需求文档,提供原型图、效果图和素材,然后才开始做。可还是有问题啊!我把页面做完了,交了,他们联调时老有问题。有一次周六下午我带女儿看电影呢,对方一个劲儿打电话,一场电影我接了 6 次电话!女儿和老婆对我很不满意。还有,我老要出去接电话,靠过道的人就得给我让路,他们好像对我很有意见,弄得我很尴尬。
安老师,你说,接项目到底该怎么做?有没有人或者平台,帮我做掉需求分析项目管理这些烂事儿,让我就做自己的开发?还有,我到底能不能靠它自由职业呢?实在是受不了在单位上班了,被动加班、无意义的消耗、领导的脸色、请假的愧疚,简直让人崩溃,就算是给我 4 万月薪,我也不打算干了,我现在就想自己掌控自己。
看了马元的留言,你有什么感受?
我是挺有感触的,因为这位朋友经历的事情,我都经历过:孩子上下学和上下班时间的冲突、亲朋好友相聚要请假、害怕比领导下班早、无意义的加班、请假就觉得自己是异类、接项目被需求变更搞得烦死、项目大了找人合作又要烦死…
软件众包
很多开发者都希望通过接项目来实现自由职业或者 SOHO 。我本身也是一个开发者,也有过这样的想法,接过几次项目,对此有一些思考。
作为一个软件项目,从分工看,会有产品经理、需求分析、项目经理、开发、测试、财务、市场、售前、运营、销售、UI、UX、实施、运维、售后支持等角色。(真TM复杂,对吧。)个人承接软件项目时,还会多出一个角色:客户开发。
对照着这些角色来看看,作为开发者,你能承担什么角色?如果你去接软件项目,从不得不做的角度看,你必须选择哪些角色?
回顾马元的留言,他一个人做了客户开发、需求分析、项目经理、开发、测试、实施、财务、售后支持等角色。想想看,他生生把一个人干成了一个团队,能不累吗,能不筋疲力竭吗?
马元在做的事情,实际上是:一个配置了需求、项目经理、开发、测试等人员的软件研发团队,完整的承接客户项目。这就是传统意义上的软件外包哇。作为个人,不管你承接大项目小项目,各个环节、各种事务,都少不了。尤其你是一个开发者,自己接项目时就会被迫去做很多不擅长的事情,比如开发客户寻找项目、需求沟通、项目管理等,而当你做那些自己不擅长的事情时,就特别容易遇到问题,就特别容易有挫败感,这些挫败感,会深深地伤害你接项目的体验,让你怀疑这条路到底通不通。
有朋友看到这里感到很沮丧:我就是开发就是想接项目又怕麻烦啊,还有出路吗?
答案是——有!有!有!
出路就是——软件众包!软件众包!软件众包!
对,就是软件众包!
所谓软件众包,就是需求方把原来由一个软件研发团队完成的产品,拆分成粒度较小的开发任务,外包给多个(基于网络的分散的)开发者的做法。
现在已经有很多平台在用软件众包的方式来撮合需求方和开发者,比如云沃客(ClouderWork),就采用的众包方式。这种方式最大的好处就是:参与到众包中的每个人,都可以做他最擅长的事情。比如马元,他擅长用 Java 做后端开发,那他就可以在云沃客上标注自己的技术方向,在寻找项目时就可以注明自己能做的事情,这样云沃客的项目经理在协调角色和任务时,就可以给他安排 Java 后端开发的模块。
类似云沃客(ClouderWork)这样的软件众包平台,他们衔接了需求方、开发者、UI、UX、测试等各种角色,平台提供项目经理,协调各种角色,整合资源,打通流程,最终以众包的形式组成一个团队,进行开发,完成交付。
这样的工作方式,和软件公司的做法最大不同在于:大家是松散组织,因项目而聚合在一起,每个人都以结果和交付为导向,你只要在每个里程碑交付预设的结果即可,根本不需要朝九晚五地打卡熬时间,非常自由,你想早上多干会儿那你就早起,你白天有应酬那就晚上工作一会儿,你完全可以掌控自己的工作节奏。这样的话,像马元在留言中提到的类似打卡、请假、熬时间等领导下班等困扰,就都解决了。另外像财务结算这些容易扯皮的事情,云沃客(ClouderWork)也通过流程解决了,你只要在每个里程碑结束时申请结算即可,其它一切由平台搞定,有纠纷也由平台出面解决,非常省心。
采用软件众包方式,开发者只需要做自己最擅长的开发工作即可,需求分析、客户开发、项目管理、财务管理,这些统统都不用做了啊!这能大大调动起开发者的积极性,解放开发者的生产力,预计软件众包将成为互联网发展的新动力。
可以设想一下,在不远的将来,会出现很多没有开发者的软件公司,他们的软件都通过众包的方式来完成,而作为开发者的你,拥抱软件众包,不但能适应这个趋势,还能自由工作,自由赚钱,甚至会赚得更多!
我已经准备好迎接这个浪潮的到来!所以,我踏上了自由职业的道路,开始在云沃客(ClouderWork)上接众包项目了。如果你也想自己接项目,只拿钱,不上班,自己控制工作节奏,火速来试!