Dojo
最新
最佳
搜索
订阅
解道Jdon
架构设计
领域驱动
DDD介绍
DDD专辑
战略建模
领域语言UL
领域事件
商业分析
工作流BPM
规则引擎
架构师观点
数据工程
产品经理
系统思维
微服务
微服务介绍
微服务专辑
模块化设计
SOA
API设计
clean架构
SpringBoot
分布式事务
事件溯源
Kafka消息
Kubernetes
DevOps
编程设计
GoF设计模式
模式专辑
面向对象
函数式编程
编程语言比较
编程工具比较
形式逻辑
前端编程
Reactive编程
Jdon框架
Rust语言
人工智能
Web3
模因梗
幽默梗
程序员吐槽
面试技巧
Java入门
数字化转型
认知偏差
道德经
更多话题
产品开发铁人三项 - Kent Beck
20-10-07
banq
这是2016年7月19日发布
的原始版本
重新发布。
2016年3月25日。那些天我一直在认真记笔记,所以我可以确定出二十年前问题的确切时机:如果那些坚持瀑布方法的人没错怎么办,如果他们正在解决不同于我的问题怎么办?在解决吗?那是什么问题?
在过去的四个月中,我的生活令人难以置信。我改变了我对待软件开发的方式,但也改变了整个生活。不同的风险状况需要不同的方法,但是有时我可以选择在某种情况下使用哪种风险状况。
探索/扩展/提取
产品开发分三个阶段进行:
探索-冒险寻找可行投资的可行回报。成功的勘探是无法预测的,因此,最高期望值的策略是降低实验成本,并为许多不相关的实验投入少量资金。如果幸运的话,这些实验之一证明是出乎意料的成功,从而导致:
扩展-现在一切都变糟了(例如Pokemon Go或Facebook Live Video)。出现意外的瓶颈。您所拥有的全部时间就是消除在您出轨之前的下一个瓶颈。一旦增长成为常规,就该:
提取-现在问题的形状和解决方案的空间都清晰了。工具书应运而生:这是您在新城市中推出该服务的方式。规模经济很重要:以较低的成本提供服务更有利可图。
这个模型隐含着好几个小时,但这是基础。
铁人三项的教训
每个阶段需要不同的设备,不同的技术,不同的培训。软件产品开发在三个阶段需要不同的工具,技术和价值体系。(我笔记本中的答案是“有效提取”。)
您无法混合各个阶段。仅仅因为骑自行车是每小时公里数中最快的阶段,并不意味着您可以将自行车在水里骑更快。(就在昨天,我正在处理一个从探索到扩展的过早项目。)
过渡很尴尬,但是很重要。如果一个项目从一个阶段发展到另一个阶段,而团队却没有注意到,那就像试图骑自行车游泳一样。不太好。
只有可以执行所有三个阶段的组织才能完成比赛。如果您只是不想跑步,那就不是铁人三项。
与铁人三项不同,同一个人不必完成各个阶段。我专注于探索。扩展开始后,我准备再次开始探索。只要有人可以交给我,它就可以正常工作。
这三个阶段的相对进度大致对应。探索(游泳)似乎很慢。实验失败。错误的希望破灭了。反复。然后是扩展(骑自行车)的“过夜成功”。这将需要花费数月的进展,现在发生在数天或数小时,就像骑自行车一英里的路不到一英里的游泳短。提取(运行)更多地是扩展而不是扩展。
??? [希望从实际的铁人三项运动员或诗人那里获得建议]
应用
一些要点:
选择探索。如果您正在提取并且开始感到绝望或精疲力尽,请故意切换到探索。
加速实验。如果您遵循所有规则,而实验却一无所获,请打破规则以加快实验速度。如果实验不可能持续下去,那么从长远来看,快速简便不会花费您。
过渡。如果事情进展不顺利,请查看是否已更改阶段而没有注意到。如果是这样,请更改规则以匹配您所在的阶段。
我才四个月,所以我相信还会有更多。
产品经理
敏捷工程方法
LeanStartup
产品研发