知乎上看到的这个问题: “ 代码管理和项目管理是否应该分离为两个工具呢?我觉得它们的侧重点和用户群体,包括受众群体都不太一样,所以觉得分开管理可能会更好。 代码管理:面向对象主要是developer,侧重代码的版本管理,系统的版本管理,历史记录,多人协同开发,分支,合并,回滚,比较。使用的主要人员是developer,专业性较强。 项目管理:面向项目全体人员,从产品,需求,分析,设计,开发,测试,甚至包括领导层。重在文档管理,流程管理,里程碑管理,任务,日程,包括了项目的整个生命周期。 ”
杭州云图科技的观点:
如果代码管理是楼主定义的这个范围,我觉得还是分开好。但如果是我下面要讨论的代码管理的范畴,则要视研发团队应用工具的水平而定。如果应用工具的水平比较高,合起来好,如果目前团队应用工具的水平刚刚起步,还是分开比较好。
我们理解的代码管理工作包含下面几个层次和范围: 1)代码库的管理。 首先你需要寻找一款合适的版本管理工具。版本管理工具有哪些?商业方面的有IBM的ClearCase,微软的VSS,开源方面的有CSV,SVN,GIT等。 版本管理工具并不局限于管理代码,国内很多研发团队还用它来管理资料和文档等。 版本管理工具都需要客户端软件,例如SVN的TortoiseSVN,使用它来check in/out,merge以及管理branch等基本操作。这些操作也是楼主上面提到的哪些操作。
2)代码源代码深度查看工具。 源代码深度查看工具会给团队带来不少好处,这也是JIRA,Trac,Topo等系统都都提供这个功能的原因。尽管开发人员可以通过TortoiseSVN完成几乎所有源代码深度查看工具提供的功能,但是方便性和易用性还是要差些。因为源代码深度查看分析工具都是基于WEB操作的,直接使用浏览器即可进行所有分析工作,并且提供的功能更多的是从管理的角度而不是从开发的角度设计的。
3)代码统计工具。 没有什么比一个团队连自己开发了多少代码都不知道的事情更糟糕了。一款有用的代码统计工具还是非常需要的。代码统计方面的工具也很多。 这方面的工具大概又分为几类:
•纯单机版非代码库绑定工具,需要将要统计的代码下载到本地进行比较,不支持版本间的统计对比。这类工具的鼻祖是linecounter,功能非常简洁,上手也容易。 •与代码管理工具紧密集成的客户端软件,这列软件可以与代码库链接,无需将代码下载到本地。这类工具的好处是可以直接对代码库的某个版本进行统计,并且可以分析版本间的动态变化信息。 •与代码管理工具紧密集成的web系统提供的统计,它在第2类工具的基础上提供了进一步整合,可以让所有操作全部基于浏览器进行,使用更加方便,并且更容易与项目管理系统集成或者干脆就是项目管理系统的一部分,例如Topo系统的设计。
4)代码走查或正规检视工具。 团队开展代码走查和正规检视的方式方法有很多,但是在工具支持下的这类工作更高效一些。这类工具又分为为两个子类,
•一类是帮助查错的工具,即代码扫描工具,有点类似于医院给病人看病的CT仪器,即通过代码扫描工具发现一些潜在的错误,不符合规范的隐患甚至直接找出BUG,这类工具有时又与单元测试工具又交集,例如C++ Test。 •另一类是检视过程辅助工具,最简单的是提供走查结果记录和跟踪,还有就是提供直接的在线检视,即通过与版本管理系统集成,直接提供将检视问题与代码库中的代码直接绑定,即让检视者将问题直接标识在代码行上,并提供更进一步的检视成果分析和统计功能。这类工具不多,JIRA(一般版本不提供,需要另购),Topo提供了这个支持。
5)代码持续集成工具。 持续集成是一个很好的敏捷实践,但是对所有涉及软件开发研发团队同样有效,即使你的组织采用的是基于CMMI这类重流程来说。这类工具也非常之多,免费的,商业的,开源的,Topo builder是我们公司开发的一款持续集成工具,这个工具也是免费的。
6)项目管理工具(缺陷/需求/任务/测试等)中的代码管理。 我想就是这类功能的出现造成了楼主的这个问题。这类工具提供的功能包括:一个缺陷直接与代码库中的代码关联,或者一个缺陷的解决直接与代码库中的某次代码修改关联,测试工具与代码库集成提供代码测试覆盖分析等。尽管这类功能还是非常有用的,但具有这类功能的管理系统不多,尤其是国内的项目管理系统大多不做这类“吃力不讨好的功能,因为这里涉及到一个管理系统设计理念的问题:大多数管理系统设计的出发点是管理工具而不是研发协作工具。要理解项目管理系统的这两类设计理念的差异,你可以用“JIRA/VSTS/JAZZ”和国内的多数研发管理系统的功能列表比较一下就知道了,考虑到这点,Topo在设计的考虑上更加平衡一些,即两方面都比较注重。
本文出处:杭州云图科技www.cloudtopo.com, 改善研发管理,从Topo开始!欢迎转载,但请保留此条信息.