1、成功项目开发的最佳实践白皮书在本篇白皮书中,Qt 专业服务团队分享了多年来积累的最佳实践。我们希望这些实践能够在项目开发项目时助您做出正确决策,保持组织架构的灵活性和有效性,避免产生不必要的时间和精力的损耗。尽管本白皮书中的许多示例都基于 Qt 框架,但这些最佳实践也适用于其他软件项目。成功项目开发的最佳实践2目录简介 3错误的代价 4正确理解需求 5深谋远虑的研发 6考虑周全的硬件选型 7培训先行 8实施持续集成(CI)8团队步调一致 9避免重新发明轮子 10性能优化和重构 11结论 12成功项目开发的最佳实践3简介即使经过精心规划的项目要成功发布产品也并不容易。这句话尤其适用于软件开发项目
2、,因为它可能会集了各种不合理的需求、不完备的技术组合以及许多其他挑战于一身。因此,采用最佳实践对于确保高质量的快速交付至关重要。如果能持续贯彻,这些最佳实践能让开发者和开发流程更灵活,从而产生可扩展的、坚若磐石的代码,并帮助公司避免代价高昂的错误和延迟。成功项目开发的最佳实践4错误的代价您一定听过这句话:错误的代价随着项目的执行呈指数级增长,甚至是高达百倍的增加1。某个 NASA 团队2分析了航天飞机、军用飞机和通信卫星等三个开发项目后也得出了同样的结论。他们使用了三种不同的方法【自下而上的成本(bottom-up cost)、总成本细分(total-cost breakdown)和自上而下的
3、假设(top-down hypothetical)】来估算在项目生命周期中不同阶段时刻发现错误后纠正的成本,所有这三种方法都揭示了成本增长与项目阶段之间的明显关系 有些分析结果显示错误纠正的代价甚至呈指数级增长。三种不同分析方法展示了错误纠正的延后对其成本的影响这些结果也证明了尽早进行错误排查是关键。上述研究中还遗漏了非常重要的一点,即这不仅影响研发进度,也会导致产品延迟上市,可能促使客户去寻求其他解决方案,从而损害公司整体财务业绩。1 Boehm,B.W.(1981).Software Engineering Economics,Prentice-Hall,Englewood Cliffs,
4、NJ.2 Stecklein,J.M.,Dabney,J.,Brandon,D,Haskins,B.,Lowell,R.,&Moroney,G.(2004).Error Cost Escalation Throughthe Project Life Cycle.Report JSC-CN-8435(Houston,TX:NASA Johnson Space Center,2004).180.00135.0090.0045.000.00 相对成本180.00135.0090.0045.000.00需求 设计 构建 测试 运营自下而上的成本总成本细分自上而下的假设成功项目开发的最佳实践5正确理解需
5、求 需求的数量和质量都会直接影响产品的架构。反之,这也会影响实现成本以及错误纠正的成本。正如我们一次又一次看到的,在设计之初改正错误要比为一开始就不该存在的问题编写变通方案要省钱得多。在确定需求时(不管用敏捷、瀑布或其他开发方法),确保将要开发的系统满足可用性预期至关重要。我们建议您首先分析并详细记录最终用户 和市场的需求。然后,建议构建多个用例来描述用户在新系统中每个可能的举动。如果您正在使用敏捷或其他迭代的项目管理方法,您可能需要用早期原型设计来验证所有假设。这也将确保您能在硬件限制范围内满足产品需求。如果手头没有硬件,您也可以利用 Qt 中的嵌入式设备模拟器在台式机上完成初始开发。无论您
6、采用何种开发模式,我们都建议您多构建几套原型;迭代、细化是成功的重要组成部分。QML可以轻松地创建模型、原型。需要提醒的是,原型代码很少能达到成品所需的高质量代码框架。您的原型可能需要几轮迭代。这样,您就可以在流程中创建可靠的、可复用的组件,如果您遵循既定的编码实践,您就可能重复利用这些组件。成功项目开发的最佳实践6深谋远虑的研发如果假定代码只需运行在确定的环境中那就太简单了。因为代码往往会存在很长时间,而且几乎总在变化。几年后,人们可能希望您的应用运行在手机、平板电脑或其他设备上。我们建议从一开始就假设您的应用需要运行在多种设备上,这意味着代码需要处理不同的屏幕尺寸、分辨率和高宽比。应对这一