gunrose
发贴: 100
积分: 20
|
于 2003-03-19 10:33
要看你的团队,要看你的团队的技术水平和交流沟通能力: 如果大家水平都是中上,可以纵向分配,也就是楼上说的按模块分配,每个人懂自己的逻辑.缺点是如果一个人中间有了任何变动,例如辞职之类,没人可以帮的上.因为没有人懂逻辑.也不知道他怎么实现的.更有甚者,就是每个人的实现方式不一致.
如果你有一个好的分析设计人员,加上几个普通的程序员也可以试试采用按层分配:tier. 程序员只编写跟自己那一层相关的代码.例如view,model.层与层之间的接口由分析设计人员规定.这样就可以避免纵向分配任务时导致不恰当地实现出现在不合适的层中.而且由于每一层都是同样的人来实现的,保证了实现的一致性.
不过这种横向的按层次来分,真正考验的是你的分析设计人员.由于他要所有的程序员都了解自己该干什么,所以要求他要有清晰的思路,详细的文档.而且即使有人事变动,也不会很大的影响.
这是我自己在项目管理时的一点点感受.当你要求每一个人都做复杂度高的任务时,就给自己添加了风险.当你要求每一个人都做简单的任务时,他们的错误最小,但是最可能发生的也是最可怕的错误的就在决策层上.在时间紧迫的情况下,你要求每一个程序员都了解从上至下的一整套实现方案是有危险的.与其在每个人身上绑一个定时炸弹,不如让少数人来担负责任,减轻其他人的负担.
如果可能的话,由两三位资深的程序员来组成core team,他们通过合作,交流,研究来作出决策,得到分析设计文档.他们是站在更高一层去看待问题的,而不是深入到编码实现层.由于站得更高,从而保证他们看得更多,更远离细节实现,保证整体的方向.
这只是个人意见,请大家指正.
|