早い失敗は有益
hiroki_daichi: アジャイル等の原理がその言葉の意味から「速さ、敏捷性」に関連づいて説明されることでわかりにくくなっている。ソフトウェア開発における重要な原理は「Fail-Fast」であり、静的型付けも自動テストもカオスエンジニアリングもスクラム開発もプロダクトマネジメントも原理は「早期失敗」することだ。 nishio: 「新しいことにチャレンジすると失敗する可能性がある」「失敗は学びの機会であり有益である」あたりから「失敗しないことを高速に実行しても新しくないことをたくさんやるだけであって学びは得られない」が導出される。当たり前なのだけど「失敗は悪」と思い込んでる人にはなかなか伝わらない nishio: 「失敗は悪ではない、むしろ有益である」を当たり前の事実として伝えても「これは失敗した人に対する慰めとして言ってるのであってもちろん失敗しない方がいいよね」とねじれた解釈をして新しい解釈に適応することができない。書かれてない意図を勝手に汲み取るとこういう罠にハマる。 nishio: 自分が勝手に生み出した「意図」によって自分の学びが妨げられてしまう。 他人が自分の感情をケアするために発言する仮定
対話のイメージ
hrjn: 失敗に学びがあることには同意なんだけど、成功した方が有効な知見が得られるはず。そもそもやる意味があることをしている前提ではあるけど、失敗しないことを高速に実行している方が基本は良い気はする。例えば、歴史に学ぶ場合など。 twitter.com/nishio/status/… hrjn: 基本的には意味のある達成目標があって、その達成目標に対してどうアプローチするかという話かなと。決められたリソースの範囲内でリスクを低減しつつリターンを最大化することを考えるわけだけど、失敗して失うリソースと歴史に学ぶリソースのどちらがより高いかという問題なのかなという気はした。 hrjn: 仕事の仕方として失敗に学ぶ方をお薦めしやすいとは思っていて、なぜかというと目の前の状況には固有の背景が多少なりとも含まれていて、歴史に学んだとしても結局それをそのままには適用できないのであって大抵の場合やってしまった方が早いのである。 hrjn: やってしまって中身を理解した上で歴史を見返す方が歴史についても理解しやすい。 初めから網羅的にやろうとすると、大抵よくわからんことになったり外しまくったりするのでおすすめしづらい。 nishio: 前半では「新しいことにチャレンジすると〜」って条件だったのだから結論も「失敗しないことを高速に実行しても『新しいことについての』学びは得られない」であるべきだったのが書きこぼしたな。 愚者は経験に学び、賢者は歴史に学ぶ