设定一个项目,提出计划和实行功能,安排角色和选择方法
项目:《好大夫在线》
一、项目计划
1.首先,构造总体模型:
(1)进入条件:团队已经选好了问题领域专家、主程序员、架构师
(2)出口条件:总体模型已经建好;各个实体类的关系已经表达清楚,各个实体类的属性和函数有初步定义;数据流,事件流程等说明文档已经完备
2.其次,构造功能列表
(1)进入条件:团队已经选好了问题领域专家、主程序员、架构师
(2)出口条件:应该得到一些列主题领域、一系列业务活动、一系列功能,这些功能可以满足上述的所有业务活动
3.再次,制定开发计划
(1)出口条件:应该得到主题领域的完成时间(年/月);功能实现的先后顺序;功能的相互依赖关系,和功能所有者的对应关系;各个功能的复杂程度
4.再次,功能设计阶段
(1)出口条件:应得到功能文档;各业务活动对应的时序图,更新的实体模型,类/属性/方法;各个成员知道自己的功能实现计划,精确到天
5.最后,实现具体功能
(1)出口条件:团队成员要实现类/函数,进行相关的单元测试,并在代码复审之后,把代码集成到产品构建之中--产生完整的.验证过的功能
二、项目要实现的功能
1.《好大夫在线》的UI
2.知识模块:推广和展示认证医生的文章
3.我的医生模块:展示我就诊过的医生的问诊情况
4.首页模块:
(1)搜索子模块:搜索疾病、医生+城市、医院
(2)在线问诊子模块:电话问诊、图片问诊
(3)热门门诊子模块:全国选项、科室选项、疾病选项
三、人员安排
1.程序管理人员:负责按约束条件交付产品
2.开发人员:负责按产品规格说明交付产品
3.测试人员:负责保证所有为都得到处理
4.发布管理人员:负责产品部署和后续管理
5.用户体验人员:负责让产品好用
6.产品管理人员:负责让客户满意
四、开发方法:Scrum敏捷开发方法+MSF敏捷开发模型+MSF-CMMI开发模式
1.首先,找出完成产品需要做的事情--product backlog。
(1)backlog=积压的工作、待解决的问题、产品订单
(2)产品负责人主导大家对这个backlog进行增/删/改的工作--以天为单位
2.其次,决定当前的冲刺需要解决的事情--sprint backlog
(1)整个产品的实现被划分为几个相互联系的冲刺sprint,任务被细化了--以小时为单位
(2)团队成员能主导任务的估计和分配,他们的能动性得到较大的发挥。
3.再次,冲刺(sprint)
(1)在冲刺阶段,一些交流只能通过scrum大师[scrum master]来完成,这较好地平衡了交流和集中注意力的矛盾
(2)在冲刺期间,每天要开一个每日例会[scrum meeting],大家依次报告:我昨天做了什么、我今天要做什么、我碰到了哪些问题
(3)在每日例会上,每个人报告整个项目进度,迫使大家把问题摆在明面。同时启动每日构建,让大家每天都能看到一个逐渐完善的版本
4.最后,得到软件的一个增量版本,发布给用户。。
(1)然后在此基础上又进一步激化增量的新功能