极客视点
极客时间编辑部
极客时间编辑部
113241 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/04:55
登录|注册

区分敏捷开发中过早出现的和可预见的问题

讲述:丁婵大小:6.76M时长:04:55
敏捷的力量在于应对未解决的问题,但同样的力量也会导致技术债务和产品价值的减少。资深创业者巴斯·格罗特(Bas Groot)认为,根据本质的不同,未解决的问题应该分为两种:过早出现的和可预见的,二者之间的区别在于强调重要性还是可能性。以下是格罗特对过早出现的问题和可预见问题的阐述,有助于你在问题发生前更好地解决它们。

过早出现的问题

过早出现的问题是当下不需要担心的问题。现在去管它们就是浪费时间。可以确定的是,等时机合适,它们自然会再度出现。
根据预测,过早出现的问题有四种:
无关紧要:比如一个脚本运行起来很慢,但很少运行,几乎无人注意。它是没有解决,但不值得任何时间的浪费。
保持不变:比如改变窗口大小就会持续闪动的 UI 界面,确实不好看,但不会阻碍关键流程,而且不管什么时候解决它,整体的工作量都不会有变化。
变得容易:比如复杂的配置 UI 界面,随着你对项目越来越深地理解以及有了更多可重用的 UI 组件,原本难度很大的 UI 配置会随着项目发展降低难度。
消失不见:比如某个复杂的功能特性需求,你不确定再过几月用户是否还需要它,所以不需任何工作就能解决此类问题。
总之,对于很多过早出现的问题,先放在一边是正确的选择。

可预见的问题

可预见的问题是会随时间推移变得更难处理的问题,技术债务和烫手山药就属于它们。
越早处理此类问题最好,如果你总是无视它们,总有一天,可预见的问题会变得过于庞大而无法解决。
经验表明,在一定时间内,难度会缓慢增加,当环境发生变化,问题难度就会陡增。
可预见的问题有两种:
直接:问题本身就是造成问题的根本原因。比如执行缓慢的门户初始化脚本,在不断增长的数据库中费力地运行。
间接:根本原因不在于造成问题的本身,而是导致其它地方问题恶化。比如侵入式框架(intrusive framework),依赖它的代码越多,它导致的冲突越多,以后就难以去掉这个框架。
要想判断一个问题是否可预见,需要一些预测技巧,如:
对于表面原因和根本原因的感觉
理解为什么某些模式会在以后导致特定问题
考虑各种场景,估算它们的概率
预测哪些环境有可能变化,以及何时变化
在问题达到可行性边界之前,你还有多少时间
可预见的问题有一个或是多个可预见的场景。你可以预测到:如果不行动,情形会如何恶化;当特定条件变化时,它如何跨越可行性边界。
架构师的职责,就是要判断哪些问题是过早出现的,哪些是可预见的。

敏捷角色中的信任

但是,敏捷的本质缺点在于:所有未解决的问题都被视为过早出现的问题,不存在可预见的问题。
所以,架构师除了日常职责之外,应该时常浏览待办任务列表,并将问题标识为过早出现的和可预见的,同时说明可预见的场景、可能的情境变化风险和可能造成的影响。
架构师应该选择最迫切的、可预见的待办任务列表条目,并产出可以解决它们的设计。然后将这些设计扼要转化为日常工作任务。设计应该足够成熟,可以切分难点,变为能够直接动手开工的任务。
为可预见的问题排定优先级很复杂,涉及到多个层面,包括:价值、工作量、破坏程度、达到可行性边界的概率和剩余时间。这些参数很难量化,最好由经验出发加以评定。
一条根本原则是:最“间接”的可预见的问题应该首先解决,因为它们造成的麻烦最严重,而且到处都是,先解决它们可以释放出资源,以解决优先级稍低的问题。
同时,程序员应该相信、支持架构师。唯一要注意的是,程序员不能过度依赖架构师,不能把待办任务列表当成垃圾堆,把所有尚未认真想清楚的问题都丢进去。
以上就是今天的内容,查看完整分享可点击文末的原文链接。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • 阿玛铭
    有、意思。比如拔智齿,医生总是建议一次拔一边上下颌的两颗,一个月内全部拔掉,永绝后患。但是拔牙是要钱滴,我穷啊。所以我第一次只拔长歪后续影响的附近牙齿的那颗。健康机构相对医院真的死贵要2500,但服务确实比正规医院好多了。下次拔牙的话把另一边疼过的那颗。就跟华佗与他的两哥治病能力的对比一样,因为资源有限,全方位看的话其实各有妙处。
收起评论
大纲
固定大纲
过早出现的问题
可预见的问题
敏捷角色中的信任
显示
设置
留言
1
收藏
18
沉浸
阅读
分享
手机端
快捷键
回顶部