减少软件开发成本的十个技巧
创始人
2024-03-21 00:01:15
0

不景气的经济,不断高涨的油价,严重影响了商业活动,每一个人都在寻找新的途径,用来抵消新增加的成本:能源。伦敦的软件质量管理主管顾问Martin Adcock,提供了10种减少软件开发成本的方法。

1、 良好的功能需求文档

没有文档化的需求,系统就存在不能满足客户期望的隐患。“比如,也许它不能按照客户认为应该的方式工作,即便是开发团队认为他们的工作一直符合归档的需求。”Adcock说。这将导致项目返工、延期发布、增加成本以及客户和软件团队之间潜在的矛盾。

2、 非功能的需求应尽早定义,尽早明确

大多数组织都集中在系统的功能方面,即它做什么,而不是它怎么做。“非功能的要素包括一切,从性能到安全再到可用性。”Adcock说,非功能的需求同样重要。

缺少清晰的、尽早定义的非功能的需求,发布后的系统可能和客户想的功能一样——但它太难用、速度奇慢、不安全、不可靠或者扩展性太差。“这将再一次”导致开发组返工——一些非功能的领域对于产品的设计是必须的,再没有重新启动项目的情况下,很难去修正它们。”

3、保证适当的变更控制过程

没有变更控制,系统开发会发现自己处于不确定的状态。“例如,”Adcock解释说,“随着项目的进行,越来越多的需求面临着变更,每个变更都没有正确的影响评估。”每一个变更都应该被严格控制。每一个允许的变更都应该在完整的影响评估之后,要分析它对项目的时间进度和成本的影响。

4、 使用配置管理系统管理代码、数据和文档

没有配置单管理系统,做高质量的测试是不可能的。“这是因为你不确定正在测试的软件或者文档是不是正确的版本,或者发布给用户的版本是不是完全测试的。”Adcock说。配置管理比较差的组织可能测试的是一个版本,而发布的是另外一个版本,其中包含了还没有经过测试的特性。

5、 集中在缺陷预防,而不是测试

项目开始时在需求文档中修正一个错误远比它开发完成后再修正更快速更便宜。“这已经被证明很多次,在项目周期中越晚发现一个缺陷,修正它花费就越多。”

下面的几个技巧大家都不会陌生,但你能真正做到吗?

6、在需求定义阶段开始设计用户验收测试

7、在系统设计阶段开始设计系统测试

8、重点关注单元测试

每一个人都知道,在开发过程中越早的发现缺陷,修复它就越容易、越快速、越便宜。对藏身于代码中的缺陷来说,单元测试是发现它们最早的阶段。

9 、计划基于风险的测试

由于各种原因,比如固定的发布期限,开发组的拖延,测试时间总是非常有限的,这将意味着并不是所有原先计划的测试都能得到执行。“在这个项目中,那些被认为是对产品成功非常重要的元素被充分测试。所以,测试应该总是集中在系统的“***风险级”的区域,根据测试时间的要求,然后是“中等风险”和低风险的元素。”

当面临时间压力时,这种基于风险的方法可以保证系统中还没有测试的元素都处于***风险区域。

10、 在发现错误更便宜更高效的时候,尽早使用工具来发现功能和非功能方面的错误

在开发的早期开始阶段,如果创建并维护好一套自动化的测试工具,它就可以重复使用做“冒烟测试”。“这种方法可以很快的、更早的发现潜在的很多缺陷,为以后的测试阶段节省宝贵的时间。”

另外一些特别的工具有时还能发现系统设计上的缺点,这些缺点应该发现的越早越好。“例如,早期对部分系统的性能测试可以暴露设计很差的模块,它发布后会拖累整个系统的性能到用户的容忍度以外。”这种情况下,该模块很容易被确认并被隔离,很容易修正或者重写。如果在系统交付测试后或者发布前才去做性能测试,这种确定过程将困难很多。

***一句话结束语,尽早测试,频繁测试。

【编辑推荐】

  1. 软件开发者需做代码复查的五大原因
  2. 软件工程师必知的12个单元测试技巧
  3. 印度软件出口商称新软件需求将停滞两年

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
P2P的自白|我不生产内容,我... 现在一提起P2P,人们就会联想到正在被有关部门“围剿”的互联网理财服务。×租宝事件使得劳...