该笔记于201707QCon大会记录@ChenHao的演讲。
如果创建一家相同的公司,那还不如直接加入别人好了。既然创业条路本来就不好走,那就让它变得有趣些吧。
与众不同
不定时休假工作制,想休假就休假。
没有审批,休假、报销、出差等自己审批自己。
工作设备,定期集体设备升级。
没有升职,每个人即是最高层也是一线员工。
信息完全平等,所有人都知道所用信息。
英文,所有 文档、代码必须英文。
远程工作,支持边旅游边工作,工作时间和地点不限。
激进和高标准,对于工作要担心的不是激进而是不激进。
远程团队需要相信工程师,自我管理,自我驱动是最好的驱动力,用人不疑,疑人不用。自由是创造力的源泉,没有束缚才能飞得更高,想象力和创造力源自无拘无束,自由是进步的象征,参照开源软件,远程有问题,那么开源软件一定有问题如果你相信开源软件,那么你其实是在相信远程工作方式。
相关问题
沟通变得很复杂。见不到面,讲不清楚,沟通实际比较长,每个人的到的信息不完善。
开发速度变慢。开发速度变慢,部分工作出现拖延,每天工作时间控制不住。
生活和工作混淆。在家工作导致工作和生活分不清楚,生活和工作相互打扰,相互影响。
因为没有办公室,团队成员亲人以为你加入了一个骗子公司。
效率问题
效率=有用功/总功。提高效率应该如何做:
想清楚再干,学会抓重点,崇尚简化和自动化,正确的组件抽象,提高代码重用,避免无效率的组织架构和无效率的管理,开发高质量的产品,不断提高标准,创建一个持续改善的文化。
软件团队的两种管理方式
Widget Factory (小商品工厂模式):
- 一般人的本性是懒惰的,工作越少越好,可能的话会逃避工作,大部分人对集体(公司,机构,单位,组织等)的目标不关心,因此管理者需要以强迫威胁处罚,指导,金钱利益等诱因激发人们的工作原动力。
- 公司对实实在在的软件开发漠不关心,他们想要把理想中的软件开发运作变成他们看得见的图表。
- 流程很重,不是单元和人员很多。
Film Crews(电影工作组):
- 这种公司认为人是有相当高的智力和创造力的,是可以激发自己的。
- 每一个个体的自己专业能力,要远远优于那种被组织协调出来的能力。人们努力工作并可以享受工作。
- 工作职责变得非常的垂直,你需要具有从上到下的比较宽泛的各种能力。
- 经历了解把一个伟大的软件组合起来的每一个碎片。他的决策是鼓舞大家,守护着方向。
- 团队里的每个人都很关键,因为团队相信软件的结果来自所有参与者以及他们的那种独一无二的团队工作方式。
分布式远程团队
有能力的人。多面手、一专多能的人,有想法有能力的人,能自我驱动,标准高的人。
小而精的团队。团队人数不能多,8-10个左右,学会抓重点,使用智力不用蛮力,用重用和自动化解决人手不够的问题。
相同的目标和信条。相同的使命感和目标,对产品和设计有相同的理念和信条,相同的Owership和Leadership。
远程工作协议v1.0
- Online: 工作的时候必须在线,如果不在线,需要说一下不在线的时长。
- 3PS Update: 每周工作更新。Plan,Proirity,Problem,Summary。
- Ownership& Leadership: 如果看到团队是项目有问题的时候,不要等,也不忍,马上说出来,并给出响应的方案,自己跳出来召集开会,及时调整。不要闷在那里,自己憋。
- 1-2-3 Escalation:遇到问题的时候,自己一个人处理1小时内没思路,找他人小范围讨论,如果与他人2小时内没有结果,请上升到团队范围,如果在团队范围3小时内没思路,我们就需要借助外部力量了。
- Design Review:对于一些重要的问题或工作,需要先把自己的想法share出来,而不是先实现。
- Milestone Commitment:最好是2周以内,1周内更好。而且要承诺到。
- Initiative:每个人都必须是主动的,都必须要自己发起要做的事,或是自己要认领要做的事。
远程工作相关实践
Github: git实践,Issue,Pull Request,Code Review,Wiki
Dame Day: 演示产品,分享知识,交流心得,接收意见,改进产品
Document: 只准用英文,写文档等于写代码,设计文档必须有引用,必写READM
Async-Pair: 异步结对编程,第一个人写完另一个人修改,互相维护,交叉开发
Automation: 单元测试,Sanity Test,自动化部署,DevOps,开发工具
Rethinking: 每季计划,项目回顾,互相挑战,自我批评,反思总结
工作计划:季度聚会和季度计划,周计划(每周没人只干一件事)
私聊:1v1私聊(至少每月一次),想法、痛苦、趣事、忧伤…
Ownership: 有一个Owner推动整体项目,自己解决问题(即使是别人)
个人提高: 每人每年1个月的学习充电期,相互要求为自己讲解疑惑
远程工具
开发协作 Github
屏幕共享 TeamViewer
文件分享 Dropbox
语音群聊 WeChat
日常消息 Slack
开发环境 AWS
IMPOSSIBLE IS NOTHING,至少我敢想,我敢干!