文章目录

  • 前言
  • 一、软件开发方法论
  • 二、我们感觉糟糕的原因
  • 总结

前言

Michael Feathers发表了这样的观点:
I think that, in the end, we just have to accept that developer skill is a far more significant variable than language choice or methodological nuances1. Frankly, I think we all know that, but we seem to suffer from the delusion that they are the primary knobs to tweak. Maybe it’s an extension of the deeply held view that from an economic viewpoint, it would be ideal if people were interchangeable.
他认为开发人员技能是一个比语言选择或方法论细微差别更重要的变量。

Why Software Development Methodologies Suck?

要搞清楚这个问题,你首先就要清楚什么是软件开发方法论,它与软件开发模型,软件过程有什么联系?为什么它会让我们感觉很糟糕呢?下文做出了本编个人的见解。


一、软件开发方法论

软件开发方法论就是根据待开发的软件特点设计相应的开发流程,就是把一个大事情,拆分成一个一个的小事情,再把这些小事情串起来组成一个大事情。经过不断的实践,效果非常明显的开发流程就固定了下来,形成了“开发模型”。
如果你还不是很清楚它的定义,建议查看小编之前写的一篇文章 :
软件工程方法论对我们经软件开发有多大用处?


二、我们感觉糟糕的原因

一、问题是我们如何找到有技能的开发人员?由于信息技术中个人生产力的概念从未得到令人满意的定义,这是一个特别难以解决的问题。代码行仍然是一个流行的衡量标准,遭受了一个毁灭性的缺陷,即一行代码是一种负债,而不是人们通常认为的资产。衡量工作时间会鼓励英雄行为,但经验表明“英雄”通常是那些在早期就承担不可接受的风险而导致项目延期的人长时间工作会使人变得愚蠢,并导致软件质量低下。对于IT专业人士,目前还没有一套公认的专业标准或特许制度,招聘优秀人才在很大程度上是一门艺术,而不是一门科学。

二、传统的软件项目与常规的、可预测的环境是相反的。衡量项目成功与否的唯一标准——最终结果是否在其生命周期内创造了预期价值与导致成功或失败的关键决策相距甚远,以致于原始团队中的任何人都很少能在场获得反馈。几乎不可能确定哪一个这些决定中的任何一个都会导致成功或失败。

在人工智能中,这被称为信用分配问题。

三、开发人员获得的技能使他们能够最有效地实现激励他们的目标——通常尽可能快地宣布他们的工作“开发完成”,而不管功能是否已集成和生产就绪,在其他功能领域也会出现类似的问题。软件项目是一个复杂的系统而不是常规的环境,这一事实导致了另一个问题:收集技术、实践和方法实际有效的数据非常困难,并且几乎不可能在收集数据的上下文之外概括这些数据。

四、软件方法学:是“雇佣一群优秀的人,让他们自我组织”的方法都很糟糕,因为它们常常会导致货物崇拜行为:我们做的是站起来,我们有一个优先的积压工作,我们甚至为了上帝的缘故在实践持续的集成——为什么我们制作的东西仍然是肮脏和迟来的?因为你忘了最重要的事情:建立一个组织它能尽快学习和适应。


总结

当然,我并不是建议我们放弃运行实验来了解在软件开发中什么是有效的,什么是无效的,以及这些声明在什么环境下是有效的。恰恰相反,我是说我们还不够努力。事实上,从想法到反馈的短周期时间的好处非常重要,因此它们应该成为商业模式最重要的标准之一。不可能的对于我们来说,要练习持续改进,学习如何作为团队或个人变得更好,并获得能够成功地创建伟大产品和服务的技能,除非我们专注于让反馈循环尽可能短,这样我们才能真正地发现相关性,并辨别因果关系。
推荐阅读:https://continuousdelivery.com/2012/08why-software-development-methodologies-suck/

为什么软件开发方法论让你觉得糟糕?相关推荐

  1. 为什么软件开发方法论让你觉得糟糕?Why Software Development Methodologies Suck?

    为什么软件开发方法论让你觉得糟糕? Why Software Development Methodologies Suck? https://continuousdelivery.com/2012/0 ...

  2. 文章:为什么软件开发方法论让你觉得糟糕

    推荐阅读:为什么软件开发方法论让你觉得糟糕 Why Software Development Methodologies Suck(为什么软件开发方法论让你觉得糟糕) 这篇文章介绍了软件开发方法论给软 ...

  3. 为什么软件开发方法论让你觉得糟糕

    为什么软件开发方法论让你觉得糟糕 围绕软件开发实践和方法的宗教战争中有很多教条.阶段门方法是否可以有效地管理软件开发风险,或者仅仅是风险管理歌舞uki?TDD是否真的可以使软件质量更高?结对编程是代码 ...

  4. 阅读为什么为什么软件开发方法论让你觉得糟糕有感

    ·软件开发方法论只是一个书面的表达形式,在我们具体开发过程中总会遇到一些与之相悖,这常常令我们感到烦恼.这就是人们常常遇到的书面与现实的相悖 **·**围绕软件开发实践和方法论,总有很多教条式的口水仗 ...

  5. 软件开发方法论:TDD、BDD、DDD、ATDD、DevOps

    软件开发方法论:TDD.BDD.DDD.ATDD.DevOps 一.TDD:测试驱动开发 二.BDD:行为驱动开发 三.ATDD:验收测试驱动开发 四.DDD:领域驱动开发 五.持续集成CI 六.持续 ...

  6. 敏捷软件开发方法论_什么是敏捷方法论? 现代软件开发讲解

    敏捷软件开发方法论 如今,每个技术组织似乎都在为软件开发或它的一种版本实践敏捷方法. 或者至少他们相信他们这样做. 无论您是敏捷应用程序开发的新手还是几十年前使用瀑布式软件开发方法学过的软件开发,如今 ...

  7. 上周热点回顾(6.17-6.23)

    热点随笔: · 各地IT薪资待遇讨论(潇洒一回) · 这些年过上幸福生活的程序员(上篇)(飞扬青云) · 一个线上运营着3000+人的游戏,因为我不小心一个DROP DATABASE,全没了. 怎么办 ...

  8. Why Software Development Methodologies Suck?

    为什么软件开发方法论让你觉得糟糕? 围绕软件开发实践和方法的宗教战争中有很多教条.阶段门方法是否可以有效地管理软件开发风险,或者仅仅是风险管理歌舞uki?TDD是否真的可以使软件质量更高?结对编程是代 ...

  9. 为什么软件开发论让你觉得糟糕?

    为什么软件开发方法学很烂 围绕软件开发实践和方法的宗教战争中有很多教条.阶段门方法是否可以有效地管理软件开发风险,或者仅仅是风险管理歌舞uki?TDD是否真的可以提供更高质量的软件?结对编程是代码审查 ...

  10. 工程师必知的代码重构指南

    作者 | CATE LAWRENCE 译者 | 冬雨 策划 | 蔡芳芳 本指南将带你了解进行代码重构的好处.可能遇到的挑战.可以采用的工具和最佳实践,以及重构和技术债务之间的区别. 我们都在寻找清理代 ...

最新文章

  1. GPU上稀疏矩阵的基本线性代数
  2. 架构设计之分布式文件系统
  3. OpenSessionInViewFilter原理以及为什么要用OpenSessionInViewF
  4. 计算机集中器的原理图,集中器,集中器原理是什么?
  5. 拒绝从入门到放弃_《Openstack 设计与实现》必读目录
  6. mysql有没有单机版?
  7. 如何使用JavaScript实现纯前端读取和导出excel文件(转)
  8. (原创)自已实现服务器控件 之 简单的Label控件
  9. 安卓APP_ 其他(1) —— 程序的签名打包并在手机上运行
  10. chromium 桌面_如何使用Chromium和PyInstaller将Web应用程序转换为桌面应用程序
  11. 小程序员的大梦想 与盖茨像哥们儿
  12. 密码与确认密码自动验证html,HTML确认密码
  13. MyBatis的逆向工程工具,自动生成数据库对应的POJO实体类、mapper接口、增删改查mapper.xml文件
  14. AS3 使用Loader对象加载外部图片
  15. Android系统匿名共享内存(Anonymous Shared Memory)C++调用接口分析(7)
  16. 梦幻西游易语言辅助教程
  17. 读书寄语:安忍的智慧
  18. c语言memcmp函数详解,C语言之memcmp()函数
  19. 我的2017,五味杂陈
  20. it方面的证书 计算机软件,计算机及IT技术认证类型

热门文章

  1. matlab 数学 应用论文,MATLAB在高等数学课程中的应用(图文)
  2. 数据库系统概论学习总结
  3. OpenCv —— 检测车牌号(附完整源码)
  4. python能开发android吗_用Python开发Android程序到底
  5. 基于情感词典的文本情感分析(附代码)
  6. 读论文:AlexNet
  7. 诺基亚c7微信 服务器忙,诺基亚C7怎么刷机
  8. c语言练习题库网站,c语言练习题库网站_0.doc
  9. C语言数据结构之顺序队列
  10. C语言 实现学生管理系统(手把手教学)