前言
小型技术研发团队,往往开发流程比较简单:整理需求/bug、分配任务到个人、完成指定任务、验收。涉及到的相关管理工具主要是:项目/任务管理系统、源代码管理系统。
项目管理系统
从09年开始,我用过ActiveCollab做项目管理工具;后面12年开始使用禅道。
AC从0.7以后的版本转向商业,但毫无疑问,这套系统给人一种优雅的感觉;而禅道,本身功能非常强大,一看就是一个工具,只是稍微缺少一点那种文艺范。
其实,日常生活中,个人还在尝试使用很多新兴的任务管理平台,像
Tower、TeamBition等。发现这些软件在交互体验上,都做得非常不错,非常适合做一些简单零碎事务的管理。然而不能进行所谓的自托管,对企业应用来说,限制较多。
源代码管理
这两年,很多团队将源代码管理工具从svn迁移到了git上,但个人认为svn在很长一段时间内,还是符合小型团队的需求的。
而且,有一些web界面的svn仓库管理工具可用,大大简化了远程登陆服务器去维护的流程,个人用得比较顺畅的是usvn。
搞技术的,总希望用的各个系统能集成,统一的账户管理、权限管理等等。
但svn主要支持的用户鉴权authn与authz的方式是unix风格的配置文件,无法方便的与数据库系统整合。
其实“鉴”还是有办法的,apache有mod_mysql_auth这样的模块,但“权”似乎没有看到相应比较灵活的实现。
查看了大量的资料后,发现实现方式应该是这样:设置一个中间的代理层,当用户请求过来时,通过代理层进行鉴权后再转到svn仓库。
目前看到了人通过go语言实现过一个代理层,以及redmine中通过apache支持perl
module的方式以perl语言编写代理层并以apache模块的方式嵌入使用。
一句题外话:没想到perl跟apache才是原配,php都算不上。
小团队为什么要实施这样的管理
曾经这样回答:任何一个小团队小企业总是有一个做大的梦想。
工具与方法,是提高团队工作效率、建设团队文化、降低人为因素风险的一种途径。
绝大多数小团队都会死掉,所以小团队往往成就的不是团队,而是个人。
实施基本的项目管理,是每个团队成员都需学习的一门基础课。