加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 正文

一个输入框你要做一周?

发布时间:2020-02-17 10:48:27 所属栏目:创业 来源:互联网
导读:副标题#e# 对于产品和开发来说,这两者可能会因为需求开发的难度与耗费工时发生一些争议与不同看法。那这背后隐藏的是什么原因呢?我们又该如何解决这类问题呢? 如果PO说这是个很小的改动,你不要信他。 01 一次有争议的估点 在某次迭代会议上,PO希望交付

我帮他略为列了一些子任务之后,他陷入了沉思:

  • Database migration脚本
  • 实体类
  • 实体类之间的关联
  • Service/Controller类
  • 异常处理
  • 单元测试
  • 与下游系统的契约
  • 集成测试

我印象中这个任务花费的时间应该是多于三天的,因为光找其他团队的接口人要契约就花了一天半。

04 应对策略

通过上述的例子,相信大家已经看出评估失误的一些原因了,而要应对这些错误,大的原则当然是反其道而行之。

在具体的实践上,除了经验之外,一个可行的应对策略是足够程度的细化。通过细化事实上可以在一定程度上降低不确定性,使得很多原先没有看清楚的点被重新发现。

比如输入框的各种状态,状态之间的迁移,每个不同状态所涉及的样式等,通过细化(比如通过可视化的方式画出状态机),则很多细节自然浮现。

更进一步,如果涉及到数据的获取,那么对应的加载中,加载失败,无数据等等状态又会进一步驱动出更多的细节,从而潜在的可以产生更加客观的评估。

实践中,通过有限状态机的方式来描述穷举一个组件(或者一组互相关联组件)的状态是一个比较有效的方式,它可以更好的揭示组件的各种变体的形态和所需逻辑。

一个输入框你要做一周?

(图片来自:http://dwz.date/gcS)

另一方面,在心理上需要充分认识到现实世界的复杂程度,特别是涉及组织,,相关方很多的时候,不确定性会非线性的增加,从而导致评估的失误。

这要求我们一方面要拥抱变化而不是对抗变化,另一方面驱使我们采用更简单的设计,更坚固的基础设施,质量更高的构建方法等等,从而更快速的响应变化。

05 小结

至此,相比你已经猜到,虽然开发在估算中以为自己已经留有足够buffer,事实上这个功能的实现必然超过一周。

在实际项目中,一方面由于知识壁垒和一些偏见,人们倾向于忽略必要的细节,从而造成对实际所需工作量错误的评估。

另一方面,由于我们所处于的现实世界是一个高度复杂,不确定性很高的环境,很多因素往往会互相叠加,互相影响,从而导致即使我们从比较客观的视角去评估,如果忽略了不确定性,同样可能低估实际所需的工作量。

我们可以通过足够细化的方式降低不确定性,从而提高估算的可靠性。

另一方面,还需要积极的拥抱混乱,通过更简单可靠的方式来构建软件,从而提高响应变化的能力。

P.S. 我本来计划着写这篇文章大概需要3天,结果画图就花了两个晚上。然后又去检查了之前的博客,确定相对于之前的类似观点有了一些提升,才开始写草稿(耗时两个晚上),然后又花了两个晚上来润色。

 

来源:https://mp.weixin.qq.com/s/cjONOqFZoVbmLSROWde7RQ

作者:邱俊涛;公众号: ThoughtWorks洞见

本文素材来自互联网

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读