1. 敏捷及敏捷软件开发
20世纪90年代中期,起源于瀑布模型的软件开发过程被认为是缓慢、低效和官僚主义的,有悖于快速高效的工作。作为回应,各种敏捷软件开发方法学适时提出。敏捷软件开发是以人为本,自适应性,通过沟通、协作等方式进行迭代,循序渐进的软件开发方法。
每一次迭代通过一个完整的软件开发周期,包括规划、需求分析、设计、编码、单元测试和验收测试,把一个可运行的工作产品展示给利益相关者。这有助于降低整体风险,并快速适应和调整内外环境的变化。
2. 项目风险管理
项目的风险来源于不确定性。一个典型的项目风险管理包括风险规划、风险评估、风险应对和风险监控四个过程,其中风险评估又包括风险识别和风险分析。风险规划从战略角度确定了风险管理的过程以及实施方案。
风险评估是利用事件发生的概率及结果来识别、分析、量化项目中的风险。风险应对是以降低风险至理想程度为目标的计划和执行过程。风险监控是系统化的风险追踪过程。
3. 敏捷软件开发的风险管理
敏捷软件开发风险管理的思路是:首先分析敏捷软件开发的特点,然后结合风险管理过程进行管理。敏捷软件开发通过其执行结构规避和减轻了常见的软件开发风险,但这也引进了开发过程的不确定,因此也蕴含了大量的风险。
1)敏捷软件开发的风险分类
软件开发可分为人、过程、产品和技术四个纬度,它们互相联系和统一,共同决定了软件开发的速度和效率。以下是敏捷软件开发中这四个纬度上的主要风险来源。
(1)人员风险。人员风险有沟通不畅,缺乏协作,人员变动,素质低下,矛盾和冲突,缺乏激励,士气低下,对业务不理解,缺乏优秀人才,缺乏客户介入等。
(2)技术风险。技术风险有伪敏捷,架构体系不稳定,设计不佳,缺乏技能,高估新技术等。
(3)产品风险。产品风险有功能不符,需求镀金,功能蔓延,质量低下,工期延误,成本超支,客户满意度低,低产品价值,低投资回报等。
(4)过程风险。过程风险有缺乏计划,迭代掌握不佳,评估和规划不合理,缺乏风险管理,缺乏质量保证措施等。
2)敏捷软件开发的风险处理
以下是敏捷软件开发从人、过程、产品和技术四个纬度进行的风险处理过程。
(1)人员风险。敏捷软件开发通过频繁沟通、每日站立会议、反馈等方式解决了沟通不畅,缺乏协作的问题;通过领导、结对编程、代码集体所有权等方式促进团队协作,提高技能素质,应对人员变动,降低矛盾和冲突;
通过频繁的产品发布提高人员成就感和士气;通过现场客户,降低缺乏客户介入的风险。
(2)技术风险。敏捷软件开发通过迭代、测试套件、重构等方式适应变化和演进,避免了传统的开发方法在一开始就进行架构及设计,从而导致架构体系不稳定和设计不佳的风险。对于敏捷技能险,可以通过引入敏捷教练、结对编程、学习环的方式加以应对。
而对于非敏捷软件开发所特有的普适性技术风险,可以通过组织和加强内部技术人员的培训和培养,引进能解决项目关键问题的优秀人才,防止优秀人才的流失等方式进行规避。
(3)产品风险。敏捷软件开发通过迭代、反馈、客户参与的方式解决了构建错误产品、功能蔓延、需求镀金、质量低下、客户满意度低等风险。可以通过综合考虑功能价值和风险,按照高风险高价值→低风险高价值→低风险低价值→高风险低价值的顺序开发产品功能,渐次降低产品的价值风险;通过对净现值、内部收益率、回收期、贴现回收期等经济指标的综合分析,规避项目的投资回报风险。
3.2 监控系统硬件电路的设计实现
(1) 电源电路设计
T M S 3 2 0 F 2 8 1 2 供电电源分为两种, 即内核电源1 . 8 V(1.9V@150MHz)和I