发现是软件开发中最被低估的阶段

发现是软件开发中被低估的唯一阶段。 公司常常因为发现自己已经知道需要什么而急于完成发现过程。 然后,在开发过程中,他们被一开始就很容易处理但现在却有可能使整个项目脱轨的东西所蒙蔽。

这种情况更加令人沮丧,因为尽管不可能为所有事情做计划,但是通过扎实的发现可以避免很多混乱。 这就像是灵活的发展路线图。 继续阅读,以了解发现为何如此重要,它如何与敏捷方法结合以及良好的发现是什么样子。

发现的价值

发现是定义的旅程。 在此情况下,目标,对成功的期望和初步要求被给出了可衡量的形式。 确定最终用户和利益相关者。 有时在发现期间也会进行原型制作和线框图制作。 通常以草拟风险评估和时间表来指导成本估算而结束。

超过70%的开发公司需要发现。 它通常持续两个星期到几个月不等,具体取决于项目的范围。 项目越复杂,发现的时间就越长。 此处适用修改后的80/20规则:80%的问题来自20%的原因。 提前找到尽可能多的20%可以节省不成比例的时间和金钱。

缩短发现的后果可能是巨大的。

  • 目标不一致最大的风险是创建完全无法满足客户需求的产品。 这是一个完全的失败,虽然不常见,但可能会破坏开发人员的声誉。
  • 不完整的要求:当开发人员没有完整的图片时,他们必须即时添加功能。 在敏捷开发过程中自然发现的新需求不会在时间表中留下空间。 然后,该项目将面临范围不断扩大,期限延长和预算膨胀的问题。
  • 不切实际的价格估算:需求不完整的开发人员可能最终陷入不利的出价。
  • 缺乏采用:发现期间未咨询过的用户可能对使用新软件的兴趣不足。 客户的投资被浪费了,开发商可能失去了他或她的客户。

为什么否则聪明人会绊倒发现

如果发现是如此有用,那么开发人员为什么要匆忙完成呢?

  • 热情:兴奋地跳入一个有趣的项目,导致客户和开发人员在发现方面走捷径,以获取有趣的东西。
  • 过度自信:开发人员有时会假设他们已经知道项目的范围和需求,尤其是当他们之前完成过类似项目时。
  • 价格和时间表:人们倾向于将花费在除实际编码之外的任何时间视为填充。 他们调整发现以释放资源来执行“更有价值的”任务。 该决定是基于错误的逻辑。 实际上,强调发现是公司保持软件开发项目正常进行所能做的最有影响力的事情。
  • 对敏捷方法学的误解:敏捷是关于小的,功能性的目标,快速无法学习无效的方法以及转向适应不断变化的优先事项。 这种哲学似乎从表面上延长了发现过程的时间。 但是,信息可以提高敏捷性。 全面的发现为响应变化做出更好的选择奠定了基础。 它有助于将发现视为热身冲刺,而不是浪费时间。

发现失败的案例研究

FoxMeyer失败的ERP系统就是一个典型的例子,说明发现不足可能造成多少损失。 它计划投资3500万美元提高SAP和仓库自动化系统的效率。 不幸的是,发现不力使项目从一开始就失败了。

一方面,开发时间表不现实。 没有任何更改或重新定位的空间。 当公司进行新的合同中期项目时,该软件突然不得不进行扩展,以满足远远超出原始范围的要求。 可怜的任务不足。

问题的一部分在于工具的选择。 FoxMeyer的开发合作伙伴未进行足够的研究,因此建议早期采用该系统,该系统所处理的订单数量不到旧系统可以处理的订单数量的四十分之一。

只有在系统开始向用户推广后,公司才意识到它缺乏经验丰富的操作人才。 它求助于承包商以填补空白,但仍无法召集足够的技术专家进行培训。

FoxMeyer也忽略了寻求利益相关者的支持。 IT领导该项目时没有考虑专家的建议,用户或对社区的潜在影响。 担心工作的工人积极反对该软件的推出。 他们忽略了进货单和执行任务,甚至主动损坏产品。 超过3400万美元的库存丢失或损坏。

ERP严重失败,公司为此付出了巨大的努力。 1993年,FoxMeyer以50亿美元的市值排名第五。 到1996年,它已经破产,以微不足道的8000万美元出售。 没有理由应该发生这种情况。 当发现FoxMeyer有足够的时间进行调整时,应该会发现绝大多数问题。

好发现是什么样子

每个项目都是唯一的,但通常每个发现过程应包括四个阶段。

  1. 研究确定项目目标的问题的答案。
    • 软件应该解决什么问题?
    • 市场上还有其他类似的东西吗?如果有的话,这有何不同?
    • 谁是用户和利益相关者?
    • 项目范围有多广? 什么时候需要?
    • 哪种技术最能解决问题? 这将是移动应用程序,桌面软件还是其他?
  1. 收集需求。 与利益相关者合作产生想法,然后按优先级排序功能。 设置优先级可以帮助开发人员充分利用意外的时间和重组。 构造用例图来指导设计。 制定一个灵活的时间表,说明何时可以完成操作,并注意某些功能的最佳和最终要点。
  2. 绘制信息体系结构并构建线框。 客户期望看到什么? 如何运作? 这符合他们的期望吗?
  3. 明确初始目标和延伸目标并获得最终批准。 该项目将随着客户的需求而变化,但是至关重要的是要事先了解预期的方向和范围。 知道成功是什么样子,以及如何判断出问题了。

敏捷性需要准备

短暂地发现发现就像在瞥了一眼地图后就走上了道路。 开发人员对他们的去向有一个大致的了解,知道如何找到食物或住宿,但是他们并不准备绕道而行。 他们最终为最后一刻的酒店支付了更多的钱,错失了往返旅行的机会,并且出现了比他们想要的晚的时间。 结果是一个糟糕的假期-或走出隐喻,一个糟糕的软件开发过程。

From: https://www.infoworld.com/article/3294201/discovery-is-the-most-underrated-phase-of-software-development.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值