大家可能都有很多疑问,为什么我们不用我们习惯的开发方式,建一个svn仓库,大家像平常开发需求那样开发?为什么我们要使用 github,而不是google code?为什么我们要麻烦地分成公共仓库和私人仓库?还要发个 pull request 让管理员(就是我。。)来把私人仓库的改动同步回到公共仓库?
我不擅长描述清楚概念,但是我尽量把我的想法写出来。
- 沟通!沟通!沟通!
在我们这个项目中,沟通比平常的项目更重要。
- 这是探索性的项目,我们清楚我们要实现的目标,但我们无法一开始就确定最终的结构,甚至产品的形态。这将是一个不断摸索、调整、前进的过程。沟通可以避免在错误的尝试上浪费时间,保证我们一致地往最终目标前进。
- 大家现在分散在不同的团队,平常很难聚一起,不说找一个都有空的时间开一个会,光是每天有5分钟的时间开一个站立晨会都是非常奢侈的事情。每天能有多少的时间看旺旺群的讨论?旺旺群里面抛一个话题,可能要很久才有人回应,也很难有所有人都参与。
- 我的想法是把沟通分散化、持久化。
- 分散化
不以会议来沟通,而是把沟通分散到开发环节中。具体来讲就是 pull request 机制。
pull request 是什么?你觉得这个功能应该这样实现,抛出来,希望大家review一下、评价一下、一起讨论一下,就发一个 pull request。大家讨论后没有问题,就同步到公共仓库,就是这样一个过程。
每个pull request 都是阶段性的一个成果。大家在这样的时机深入了解一下其他伙伴的代码。
这样会议上的沟通就尽量分散到各个pull request中,每次不用花太多的时间,每天能抽半小时,效果就非常不错了。
- 持久化
旺旺群很方便,但是新进的成员无法看到之前的聊天记录。聊天记录中有价值的话题,混杂在日常的交流中,不能很好地沉淀。
因此有必要对重要的讨论持久地保存下来。 pull request 的地方非常适合。
- Git vs. SVN
6个人同时开发一个项目,用svn不方便。直接在主干上开发?各种冲突。大家各自打分支开发,然后合并回主干?稍好,但遇到冲突的时候一不留神就会污染主干,一团糟。 Git在分支处理方面非常有优势,因此适合这个项目——小团队并行开发项目。
- Github vs Google Code
Google Code也支持git了。两者都能满足我们的功能需求,但是github更加注重在pull request中沟通
结论:
这样的开发方式也是我们第一次尝试,不过并不是业界的第一次,github自身就是这样的开发方式。希望汲取有益于我们的部分,让我们的开发更顺利
大家可能都有很多疑问,为什么我们不用我们习惯的开发方式,建一个svn仓库,大家像平常开发需求那样开发?为什么我们要使用 github,而不是google code?为什么我们要麻烦地分成公共仓库和私人仓库?还要发个 pull request 让管理员(就是我。。)来把私人仓库的改动同步回到公共仓库?
我不擅长描述清楚概念,但是我尽量把我的想法写出来。
在我们这个项目中,沟通比平常的项目更重要。
不以会议来沟通,而是把沟通分散到开发环节中。具体来讲就是 pull request 机制。
pull request 是什么?你觉得这个功能应该这样实现,抛出来,希望大家review一下、评价一下、一起讨论一下,就发一个 pull request。大家讨论后没有问题,就同步到公共仓库,就是这样一个过程。
每个pull request 都是阶段性的一个成果。大家在这样的时机深入了解一下其他伙伴的代码。
这样会议上的沟通就尽量分散到各个pull request中,每次不用花太多的时间,每天能抽半小时,效果就非常不错了。
旺旺群很方便,但是新进的成员无法看到之前的聊天记录。聊天记录中有价值的话题,混杂在日常的交流中,不能很好地沉淀。
因此有必要对重要的讨论持久地保存下来。 pull request 的地方非常适合。
6个人同时开发一个项目,用svn不方便。直接在主干上开发?各种冲突。大家各自打分支开发,然后合并回主干?稍好,但遇到冲突的时候一不留神就会污染主干,一团糟。 Git在分支处理方面非常有优势,因此适合这个项目——小团队并行开发项目。
Google Code也支持git了。两者都能满足我们的功能需求,但是github更加注重在pull request中沟通
结论:
这样的开发方式也是我们第一次尝试,不过并不是业界的第一次,github自身就是这样的开发方式。希望汲取有益于我们的部分,让我们的开发更顺利