1.自动化是关键
研发过程中,很多工作步骤枯燥耗时,具有较强的重复性或规律性,研发人员往往考虑会将这部分内容用自动化代替,如此一来,团队就可以把更多时间投入在核心工作和更有创造性的任务上。例如,在发布工具库中有大量的脚本,这些脚本可以自动完成,这样研发人员也不会遗漏琐碎的部分,节省大量时间和精力。
2.协作工具必不可少
充分利用协作工具,进行节点记录、事件分配、工作交接等,对于促进协作和确保每个人都能跟上项目的最新进展是至关重要的。标签、里程碑、共享平台这些工具确保了每个成员知道什么时候该做什么,交接工作也井然有序。每个人都可以使用协作工具轻松访问相关文档,随时引用。
3.使用集成平台
在同一个环境中拥有所有的软件研发工具,是一件很爽的事。当工作交接时API发生变化,维护及管理的复杂性,都可以被优化,使整个研发过程更加顺畅。以前我们认为两种产品是单独的产品,需要建立渠道进行交流。但如果有了一个内置的解决方案,它集成了一些由孤立研发团队研发出来的独立产品,那所得到的集成就不仅仅是更加顺畅了,我们将它视为一个研发环境。
4.技术文档要全面细致
梳理细致的过程文档和操作指南是一个分布式团队应有的行为方式。每个人各司其职的同时,需要相互联接。如果一个问题经常出现,有详尽的解决方案文档可以随时查阅,不必等待其他成员来回答问题,这大大提高了协作效率。可能很多初创的小团队并不在意这个行为,遇到问题可以喊一声:“亲,这个问题怎么解决?”但随着团队的发展,队伍壮大,可能会有20个人问同一个人某个问题,那就完全没有效率了。
5.做好版本控制
使用版本控制的做法,对源代码更新和修改,是一个很好的习惯,它改变了只有高级团队成员才能进行代码管理的现状。使用版本控制去管理源代码意味着,即使是最初级的人,发现了可以优化的地方,也能毫不犹豫地提出建议。写一个合并请求,清楚地勾勒出他的建议的优点,这使得提出改变的建议变得不那么困难,在发生错误时可以轻松回滚,大家拥有更对学习和分享的机会。
6.成员贡献要简易化
通过开放的研发平台,每个团队成员都可以发现、贡献并从其他团队成员的工作中学习。你不应该把你的代码看作是你的产品,应该把它看作是公司里其他人的资源。如果你问一个研发人员他们是如何学习编程的,大多数人都会提到“我读过的代码,是由比我更有经验的人写的。”通过让研发人员获得尽可能多的代码,使他们成为更好的程序员。
7.集中精力在项目开发上
努力改善现有的工作平台或工具,会让工作变得容易,这些付出的时间,有着很高的回报率,所谓磨刀不误砍柴工。即使有些事情没有被安排在这个版本中,如果你认为你可以在几个小时内完成,它会在未来节省你更多时间,那就去做吧。
8.建立代码审查协作机制(质疑:可能会激化矛盾)
团队中的每个人都可以自由地审查对方的代码,或者要求进行审查,特别是如果有人比你在某个领域更有经验,那他对这段代码的优化可能会有质的提升。真正有助于协作的是让每个人都可以自由地互相质疑对方的代码:“这是最好的方法吗?”得到的结果将是不断的优化。
9.鼓励创造性思维
让研发者保持创造性思维,让产品经理不要过于刻板和执念,这会带来更好的产品,也让研发者更快乐。”好的创意可能帮助你建立一些新功能,这些功能不仅可以按照客户想要的方式解决一些特殊问题,甚至可能解决一些每个人都会遇到的问题。