对于一个以开发一般的商业应用软件的开发团队来讲,对于《人月神话》中提及到的外科手术队伍并不是一个值得借鉴的方法。所以在此应该对一些概念进一步进行分析。
1.效率问题:根据我们的经验数据,一个有经验的编程高手对于应用软件来讲一天的代码编写量可以达到400-500行代码,而对于熟练人员一般在200左右,对于新手每天小于50-100行代码。所以如果完全用最好和最差来比较的话符合1:10的比例,但一个小型开发团队不可能全部是新手,其主体部分人员应该属于熟练人员。在这里我们给出熟练人员和编程高手的两个重要观点:
a.架构设计对开发人员有更高的要求,不能要求每个开发人员都精通架构。但我们认为在一个成熟的架构下,在一个开发人员完全理解了的架构下,熟练人员可以真正熟练的开发。
b.我们不能要求每个开发人员都有复杂问题或疑难问题的解决问题,进度滞后一个重要原因往往是开发人员遇到了意想不到的疑难问题花费了他们太多时间去解决。
2.概念一致性:我们需要民主但又不能忽略了专制,在一个小型软件开发项目中有两个重要的概念一致性,一个是对需求的理解,需压要完全符合SMART原则;另外一个就是我们的架构设计,总体或架构设计确定了整个系统的框架,是软件开发中的一个重要里程碑点和审查点。
基于以上两点后,再来分析一个10人团队的合理安排:
1.需求人员(2人):在这里将业务需求分析和软件需求分析,界面DEMO制作等几个角色全部合并。所以对需求人员提出了更高的要求,需求人员要熟悉业务,同时也要熟悉软件工程和软件需求的开发方法。因此需求人员首先是同用户一起分析实际的业务流程,收集和分析需求,挖掘需求,在业务需求得到用户认可后将其转化为用户需求和软件需求。用户需求将纳入范围说明书的一部分,是最好用户验收的标准和基准。软件需求用于指导团队的设计和开发,是设计开发依据的基础文件。
2.项目经理(1人):在这里的项目经理技术和业务都要熟悉,在此的项目经理重点在于和客户以及其它干系人到交道。因此干系人管理是项目经理的一个重点内容。任何产品只有赚钱才是硬道理,所以PMBOK里面强调的范围管理,成本管理,风险管理以及团队建设,沟通管理,采购管理都是项目经理需要关注的内容,具体详细开发进度和开发质量控制项目经理关注,但具体的制订由开发经理负责。
3.开发经理(1人);开发经理即项目中的架构设计师,总体设计负责人。项目经理和开发经理是相互协作的关系:一个主外,一个主内。开发经理的重点除了架构设计外,就是要负责软件开发的进度和质量。架构设计的重点就是保持概念完整性,我们关注点是在架构设计确定了后开发人员可以完全按照架构的思路来实现这些业务功能或模块。因此我们讲数据库设计,顶层包和类的划分,模块和单元间的接口,集成的方法,系统的安全性能或健壮性等为架构需要重点考虑的内容。开发经理在整个项目中参与编码时间约10-20%左右,主要是负责完成一些复杂或核心的算法,协作开发人员解决些疑难问题。开发经理需要完成工作有
a.详细开发进度计划的制订,包括后期的测试进度
b.架构设计(数据库,模块单元划分,接口,复用,性能)
c.复杂算法研究或编码,疑难问题的解决
d.功能模块的集成,开发人员代码的Review
在这种情况下,开发经理能够得到充分的利用,基本在每个阶段都承担重要的任务。
4.编码人员(4人):编码人员水平不可能完全都达到熟练的水平,因此4人最好采用结队的方式分为两组进行不同功能或模块的的开发。这里并不一定要采用XP完全结队的这种方式,但我们强调的是通过分组后尽量减少沟通的路径,提高沟通的有效性。在这里的编码人员并不是单纯的Coding人员,而是包含了详细设计的工作,在小型开发团队中我们关注重点是总体设计和架构设计,对于详细设计应该由熟练的编码人员自己来完成,但架构人员必须随时检查概念完整性得到了执行,编码人员完全遵循架构思路在进行开发。
5.美工人员(1人):专职一名美工主要处于是否要考虑软件的产品化问题,如果要考虑软件的产品化,界面的友好性,美观性和易用性是很重要的。美工的重要职责就是保证界面整体风格的一致性和美观性。对于有一定的编码经验的美工,如果项目能够实现分层开发,则该美工可以承担界面层的开发任务。
6.配置管理(1人):对于小型项目而言源代码管理系统和缺陷跟踪系统是不可以省略的系统,这两个系统的管理和维护,代码的管理,每日构建和打包需要由配置管理来完成。这样来看,配置管理工作不是很饱满的,因此配置管理还可以承担测试,文档编写和秘书得相关的职责。
7.测试人员(2人):这里安排两名测试人员,一名做白盒测试和集成测试,一名做系统测试。对于做百盒测试人员在这里更多要理解为开发经理的副手,应该是对系统架构和业务都比较了解的人员。百盒测试人员保证系统的主体功能文档和集成正确,是提交系统测试的前提。同时白盒测试人员需要介入到代码的Review上面,一定程度上保证代码的质量。系统测试人员安排一名就足够了,系统测试人员需要编写专门的测试用例,准备测试数据。
对于小型团队,不可能像大型团队一样项目周期长,人员可以分期投入。因此如果保证各个人员在项目的各个时间段都可以得到充分的应用是务必关注的一个问题。因此项目的生命周期模型一般采用增量迭代开发方式,另外一种是Feature Based的开发方式,这两种应该将是可以很好将功能迭代起来的方法。架构必须要保证概念完整性和统一性,因此是不推荐在总体设计没有完成前就开始迭代开发的方法。
以上人员分配是基于项目的以有实践得出的,一个关键点在项目经理和开发经理两个角色的定位上面。通过定义两个角色进行了明确的分工,使架构人员作用充分发挥,但是带来团队中出现两个Leader的问题,这一块可以借鉴微软的MSF团队模型。
一个十人开发团队的人员安排相关推荐
- 电话机器人商用源码,10人开发团队历时一年完成的项目
调用说明 调用方式说明: 第一种方式:主动调用 这种调用方式是客户主动调用接口获取数据或实现功能: 主动调用需要传入APP_KEY和APP_SECRET用于权限校验: 注意:请在开发对接程序前联系技术 ...
- 一个IT人的非典型职场十年 (2)
2019独角兽企业重金招聘Python工程师标准>>> 话说上一篇博文让@红薯推了下,搞的还挺热闹. 有些朋友回复或私信我,提到我的一个观点:学计算机研究生应不应该读.我的观点很明确 ...
- app开发团队人员构成怎么分配?国内著名的app开发团队有哪些
app开发团队人员构成:作为一个独立的app开发团队,人员架构必须包括产品经理,程序开发人员,测试专员,运营团队,UI 设计.这里是对专业的App开发公司而言,一般个人或团队可能一个人会身兼多职,所以 ...
- app开发团队人员构成怎么分配?
app开发团队人员构成:作为一个独立的app开发团队,人员架构必须包括产品经理,程序开发人员,测试专员,运营团队,UI 设计.这里是对专业的App开发公司而言,一般个人或团队可能一个人会身兼多职,所以 ...
- The Joel Test:Joel 用来评价软件开发团队成熟度的12个问题
转自:http://www.cnblogs.com/supercpp/archive/2011/11/10/2245087.html 如果你与软件行业有若干联系,但是还不知道Joel这个人以及他的博客 ...
- 微信之父张小龙最新公开课曝光8个互联网新思维:下一个十年将非常有想象力...
1月19日晚,在2021微信公开课PRO"微信之夜"上,张小龙做了一个半小时的演讲,分享了自己对于微信视频号.直播.以及微信产品十年的思考,还对下个版本的微信做了一些"剧 ...
- 微信之夜,张小龙说视频化表达将会成为下一个十年内容领域的主题
因为疫情,今年微信的公开课Pro和开发者倍加关注的微信之夜放到了线上举行,微信之父,腾讯高级执行副总裁.微信事业群总裁张小龙的微信之夜直播,更是用今天他在演讲中反复提及的视频号进行直播,将今天的活动推 ...
- 张小龙“微信之夜”大谈视频:内容领域下一个十年的主题(附万字实录)
关注ITValue,看企业级最新鲜.最价值报道! "回看十年前,当时只希望有一个适合的通讯工具,没想到十年后的微信现在这样.我感觉特别幸运,我想我一定是那个被上帝选中的人,因为光靠个人努力是 ...
- 适合软件开发团队的知识管理系统有哪些?10大知识库盘点
知识管理系统并没有一个统一的定义,不同的知识库工具适合的人群也不一致,所以本文将对比以下10大知识库工具(含开源.免费等):1.PingCode:2.Confluence:3.MediaWiki:4. ...
最新文章
- python 预测算法_通过机器学习的线性回归算法预测股票走势(用Python实现)
- 计算机基本信息的获取
- pytorch checkpoint_pytorch的两种部署方式 web部署与c++部署
- 集训2--进程控制理论
- 什么为java运行时的环境_什么是JRE?Java运行时环境简介(一)
- JavaScript 简介 1
- JavaScript基础语法介绍
- HI3518E 中Sample Venc分析
- 2021 年百度之星·程序设计大赛 - 初赛一
- amos里CFA可行性辨别结果怎么看_本科毕业论文做问卷和数据分析应该怎么着手?(1)...
- Unity3D做的DEMO
- 传统蓝牙协议栈 串口协议SPP(Serial Port Profile)概念介绍
- WPS添加宋体等字体问题
- Java关于日志,及日志的error和warn的选择
- Android Service(一) Service初识
- 推荐一款Mac上好用的Markdown编辑器
- linux insert最后一行,insert基础用法及进阶
- 自己实现strcat函数
- 右键新建没有Word怎么办?右键新建添加Word方法!
- 2014 360校园招聘技术类面试题
热门文章
- EditPlus格式化xml文档
- 工作中遇到的常见问题
- iptables防火墙
- 计算机存储单位全称KB/MB/GB/TB/PB/EB/ZB
- 【VMW】虚拟机安装小攻略
- 怎么修改数据库服务器名字,修改SQL Server数据库服务器名字
- 广州车展直击:全新“机甲科技”沙龙机甲龙全球首发
- 阿里云open API中的签名算法
- 选修课:唐宋词鉴赏课堂笔记03
- c语言西南交通大学出版社答案,西南交通大学C++上机实验答案