所在位置:答疑 - 内容   
"试错"是正确而无用的废话
 

肘子(23***95) 14:53:29
然而实际上,在产品真正做到可用之前你并不知道效果到底是什么样的,所以最后卖出去的东西总是和最初的愿景相去甚远,与其一开始纠结愿景的细节不如定下个大方向就赶紧开始迭代和试错
UML菜鸟(122***922) 14:54:03
试错是当下最好的开发模式
潘加宇(3504847) 15:33:42
这就是我们要警惕的"正确而无用的废话"。怎么定大方向?怎么试错?
现在流行在开发人员中一种不好的现象是,空喊口号,但无方法或者方法是错的。

参见以下文字:
口号高大上,方法不正确,会造成最大的悲剧,所谓"最坏的事是好人做的"就是这个意思。因为口号正确,认为自己是做好事,所以会做得很绝。历史上那些死几千万人的大悲剧,始作俑者都认为自己在做好事。
例如,网络上经常有人痛陈现在社会上种种不公,全部都是事实,结果给出的解决方案是"回到几十年前"。
再例如,软件开发也是如此,痛诉软件项目中各种痛,全部都是事实,结果给出的解决方案是"敏捷裸奔"。
建模提供方法,而不只是口号。
例如,口号:我们先只做最重要的需求,尽快把系统推向市场。问题来了:你怎么知道哪个需求最重要?抓阄?
建模提供了愿景、业务建模等方法,帮助迅速定位真正的最重要的需求。
再例如,口号:设计是要分离变和不变。问题来了:你怎么知道哪些变哪些不变?拍脑袋?
建模提供了领域分析方法,帮助厘清各种概念的变和不变。
开发团队里面经常有一些"开发人员",擅长喊口号打鸡血,上班时间端着茶杯大谈老子、庄子、孙子、禅、道……这些人,我们要警惕。

《软件方法》第一章:
一些不了解以上概念的开发团队干脆以"敏捷"为名,放弃了这些技能的修炼。就像一名从护士成长起来的医生,只掌握了打针的技能,却缺少检查、诊断、拟治疗方案等技能,索性说:"唉,反正再高明的大夫,也不能一个疗程把病人治好,干脆我也别花那么多心思了,先随便给病人打一针看看吧,不好再来!"迭代"只是一个底线,确实,再高明的大夫也没有把握一个疗程就治好病人,但是检查、诊断等技能越精湛,所需要的疗程就越少。不能把"迭代"作为偷懒的庇护所。
唱曲的名家,唱到极快之处,吐字依然干净利落;快节奏的现代足球,职业球员的一招一式依然清清楚楚;即时战略游戏高手要在极短时间内完成多次操作,动作依然井然有序。在激烈竞争的年代需要快速应变,掌握技能才能真敏捷。世上无易事,偷懒要不得。
刚入行的开发人员体会不到建模的重要性,是正常的。就像下象棋,初学者面对单车对马双士、单马对单士等已经有共识的局面还需要思考良久,最终还拿不下来甚至输掉。这时中局和布局的书在他看来多半是枯燥无味的,还不如把一本实用残局汇编看熟了,学到一些奇技淫巧,也能在菜市场赢几盘棋。不过,要迈向职业棋手的境界,参加更残酷的竞争,就体会到中局和布局的重要了。