程序员是否可以在家办公——离在家办公还有多远距离
程序员是否可以在家办公
文/徐会生
认识一位朋友,他就有过在家办公的经验,每天早晨八九点起床,打开电脑,通过邮件接收今天的任务,然后开始干活,到下午四五点左右,通过 VPN把代码传到公司SCM,再回复一下当天进度,合上电脑就算完成了一天的工作。听起来确实挺招人嫉恨的。然而要想实现在家办公需要具备哪些条件呢?
实现在家办公需要做好准备
硬件条件方面:要有一台电脑,或者能把公司的电脑带回家;家里必须能上网,否则没办法接收任务和上传代码;开发过程必须相对独立,不能依赖只有在公司才能使 用的资源;身旁没有一个同事,所有问题都需要自己想办法解决;要确保同事能很容易联络到你,不要在找人方面耽搁太多时间。
软件条件方面:要选择一个宽松的工作氛围,如果把那种24×7连续作战的作风带回家,会把整个家庭都搞崩溃;需要一个信任下属的领导,相信员工有足够的能力和自制力能在家 里保质保量完成工作,不受其他事情的影响;需要一个经验丰富的项目负责人,可以将复杂的任务拆分成一个个独立且容易验收的模块,并根据实际情况进行任务分 配,保障开发中不会因为常常需要找人确认细节而消耗时间;需要一些值得信任的同事,他们像你一样独立自主,并拥有过硬的技术能力与自制力,他们深刻理解负 责人分配的任务,并能严格按照任务描述完成功能的开发,也懂得沟通技巧,即使不能面对面也能顺畅融洽地交流;需要一群同心同力的下属,既有能力又很服从命 令。更重要的是,他们善于沟通,总会在第一时间把遇到的问题反馈给你。
大家注意到了吧?硬件方面很容易达成,软件方面就比较复杂了。说白了,就是你需要在一个工作相对宽松的环境下,找一帮志同道合的好兄弟来一起完成这项事业。
解决沟通难题
下面列出几个供大家参考的解决方法。
首先,必须要有集中管理代码版本的机器,这是多人协作开发的基础,否则花费在合并代码上的时间会远远超过编写代码的时间。
其次,需要统一管理需求和计划,因为不断变化的需求会把整个团队拖垮。至少要保证一个时间段内的需求是固定的,否则你将面临功能模块无法集成的窘境,因为这些需求已不再是当初说好的功能了。这些功能最终如何整合到一起,就变成了一个需要重新研讨的新问题。
然后,与项目相关的文档与设计需要放在大家都很容易获得的地方,有Wiki当然最好,实在不行也要有一个FTP让大家把相关的资料都放在一起。别弄成每个人手上的文档版本都不一样,越到项目后期越难以统一。
最后,需要想尽办法解决因为异地办公造成的沟通不畅,即便面对面讨论,也容易因为背景和了解信息量的不同而产生误解,更别提是异地办公的人们了。可选的沟通方法有电话、IM、邮件、视频等,但至少目前都难以达到完全替换面对面沟通的方式,除非你不啻万金搞一套网真,让异地办公的同事们看起来像是坐在一起似 的,但现实中谁能做到这个地步呢?
此外,就算你真的实现了在家办公,也一定要记得找时间去和团队的关系人当面沟通,向老板汇报进度,和同事联络感情,给下属加油鼓劲。不要真的以为在家办公就可以一辈子不去公司了,要是你真这样做,可能过一段时间就永远不用去公司了。
体验在家办公
如果感觉在实际工作中实现“在家办公”难度太高的话,建议大家通过参与开源项目的方式曲线救国。开源项目的开发者来自全球各地,大家时区不同,基本都要通过邮件、论坛的方式来进行沟通和信息归档。实际上,这才是真正的在家办公。
作者徐会生,百度高级软件研发工程师。