7 实战
7.1 管理和计划
强有力的、积极主动管理和指导项目活动的项目领导的重要性。
7.1.1 风险管理
软件开发经理管理非技术风险,项目架构师管理技术风险。
技术风险包括:继承结构的选择、机制的选择
非技术风险:监督第三方厂商交付,管理客户和开发团队间关系,分析期间发现真正的需求
对微观过程,固有的不稳定性,需要采取积极的计划来强制结束
设计开发的宏观过程
OO项目的不同之处在于任务调度和产品评审与其他系统有一些差别
7.1.2 任务计划
大中型项目,每周一次团队会议(讨论已完成和即将进行的工作)
小频率会议对促进交流有必要,但不能过多(项目失去方向的信号)
OO开发需要每个开发人员有大量时间可支配
团队会议:微调进度,洞察隐现的风险
调度宏观过程可提交的产品。
评估即将面临的和长远的风险,必要时集中开发资源处理这些风险(如果没有主动攻击风险,就会被其攻击)
不受过于乐观的计划支配:开发团队的校准标准和工具
管理团队对每一个开发人员可能遇到的附加因素做出计划
管理团队认识各成员的真实生产率,开发人员更准确估工
尽早交付架构方面的发布版本,尽早使用工具
7.1.3 开发评审
对用例场景和系统的架构进行正式评审,对较小技术问题进行非正式评审
用例场景正式评审:团队分析员(精通用例开发)、领域专家、其他最终用户,开发人员在场,含QA(测试员)。贯穿分析阶段。
架构评审:系统的整体结构,包括类结构和机制。架构师和其他设计人员领导。
早期注重于系统架构问题,以后聚焦于某个组件或具体的普遍机制。
在早期确认设计的有效性,沟通架构愿景;增加架构可见度,发现模式和协作,便于简化
7.2 人员配备
7.2.1 资源配置
OO过程重点在架构设计上,架构师和其他设计人员在开发早期加快工作,甚至在分析后期就催促其进行探索。后续增量中,需要的资源通常更少