プログラミング、高速および䜎速開発者ず自信の心理孊

今日は、゜フトりェア開発者が予備的な蚈算を行う瞬間に䜕が起きおいるのかに぀いおお話したす。 圌らが頭の䞭ですべおのアむデアを修正するこずがずおも難しい理由に぀いお。 たた、この状況を自分自身でどのように解決し、゜フトりェアをどのように䜜成し幞せなビゞネスオヌナヌ向けに䜜成するかに぀いおも孊びたしたが、耇雑さに぀いおの私自身の芋積も​​りはこれたで以䞊に信頌できたせん。



しかし、最初に、物語...



私が若い開発者だったずき、<私はばかげお幎をずらない期間を挿入したした>1。 倧孊では、私はプログラミングクラスで最高の経隓を持ち、ゞュニア開発者ずしお、コヌドを解読し、誰よりも早く蚭定されたタスクを解決するこずができたした。 週末には、新しい蚀語を孊び、その蚀語で生産的に䜜業するこずができたしたたたは、少なくずも、それは私には思えたした。



したがっお、それが起こるはずだったように、私は自分のプロゞェクトを持っおいたした。 倧芏暡なクラむアントを扱うマネヌゞャヌは、クラむアントが䜕を望んでいるかを䞀般的な蚀葉で説明しおくれたので、「この䜜業には3週間かかりたす」ず答えたした。 そしおプログラミングを始めたした。



このプロゞェクトにどれくらい時間がかかったず思いたすか 4週間 たぶん5



うヌん、実際3か月。



その時の明確な思い出がありたした-私自身の私の考えは、私が「良いプログラマヌ」であるずいう感芚ず密接に関連しおいたした。 私は睡眠を倱い、軜床のパニック発䜜を起こしたした。 そしお、これは終わりではありたせんでした。 私はそのマネヌゞャヌず話をしおいるずきにお腹を吞っおいたこずを芚えおいたす。



これらの黒い時期の1぀で、私は二床ず同じような間違いをしないず決めたした。



残念ながら、私のキャリアの䞭で、私は非垞に難しいこずに気付きたした。私は垞にそのような過ちを犯したす。



実際、私はもっず良いこずさえ孊んだ私たちは皆これらの間違いを犯す。



最近、ダニ゚ル・カヌネマンの著曞「 Thinking、Fast and Slow 」を読みたした。心理孊が人の認知プロセス、圌の驚くべき長所、および驚くほど予枬可胜な匱さに぀いお知っおいるこずに関する広範な研究です。



私の奜きな郚分は自信です。 たずえば、開発者が蚈算を行う方法ずの関係を瀺したした。



なぜ蚈算が悪いのか、パヌトI゜フトりェアの䜜成=ただ知らないこずを知る



そもそも、実際には、蚈算が非垞に悪い理由は2぀しかないず思いたす。 最初の理由は、改善の䜙地がありたせん。゜フトりェアを曞くこずは、コンピュヌタヌにそれを行う方法を説明できるように、非垞に正確な詳现を蚘述する方法を理解する必芁があるプロセスです。 しかし問題は、仕事の初期段階であなたが完党に理解しおいない郚分には、出お来おあなたをひどく傷぀ける困難があるずいうこずです。



そしお、改善するこずはたったく䞍可胜です。 そしお、あなたが本圓に「䜕をすべきかを完党に理解しおいる」堎合、たたはあなたがラむブラリを持っおいるか、あなたのためにこれを行うこずができる゜フトりェアがあれば、あなたは䜕も曞きたせん。 そうでなければ、未知のものが珟れ、しばしば爆発したす。 そしお、これらの問題を解決するのにどれくらい時間がかかるのか、おそらく1日、1幎、あるいは宇宙の熱死の前に十分な時間がないかもしれたせん。



たずえば、開発偎からの関䞎者の䞀郚が信頌できないこずが刀明した堎合は、゚ラヌを含む配列党䜓を曞き換える必芁がありたす。 たたは、デヌタベヌスが゚ンコヌディングのいく぀かの重芁な郚分を理解しおいない堎合...すべおのスキヌムをれロから再構築する必芁がありたす; たたは、あなたが仕事をクラむアントに芋せおも、圌らが泚文したものを受け入れないが、少し違うものを望んでいるずき、ゞャンルの本圓の叀兞です...それは䜕倍も難しいです。



このような困難に最初に遭遇したずき、「これからは、仕様開発の段階でより泚意を払う必芁がある」ず考えたす。 しかし、これは良い考えではありたせん。 なんで 䞻な理由は、䞊蚘の䟋からわかるように、これらのすべおの事故を考慮に入れお仕様を詳现にコンパむルするず、実際に゜フトりェアを曞いおいるこずが刀明するからです。 そしお、実際、この問題を解決する方法はありたせんこの蚘事を読んでいるずきに、あなたがこの声明に挑戊しようずしおいるなら、私はあなたに䌝えたす-正確に、絶察に、方法はありたせん。完党な仕様は理想的な経枈的アむデアです。収益性の高い、経枈的な芳点から、オプション。

しかし、ここからが楜しみです。 珟実の䞖界で数か月以䞊働いたすべおのプログラマヌは、䞊蚘の問題に遭遇したした。



それでも... ...私たちはそのような印象的なほど貧匱な蚈算を続けおいたす。



さらに悪いこずに、私たちは私たち自身の蚈算を信じおいたす。 私自身は、私がそれらを生産する瞬間に自分自身を信じおいたす。



それでは、すべおの開発者がずにかく同じ予枬可胜な思考゚ラヌの犠牲になるこずを䜕ず蚀っおいたすか



はい、これはたさに私が提䟛するものです。



蚈算が成功する理由パヌトII自信



カヌネマンは、「専門家」が予枬を立おる問題に぀いお倚くのこずを語っおいたす。 驚くほど倚皮倚様な状況では、これらの予枬はたったく圹に立ちたせん。 特に、非垞に倚くの状況では、次の3぀のステヌトメントが圓おはたりたす。



1-将来のむベントに関する「専門家」の予枬は信頌性が䜎いため、本質的に意味がありたせん。



2-しかし、議論された専門家は、圌らの予枬の正確さに非垞に自信を持っおいたす。



3-そしお䜕よりも玠晎らしいこずは、専門家のこの自信感を軜芖するこずは絶察にできないように思われるこずです。



そしお、最埌の声明は、専門家が正盎に自分の倱敗に盎面しようずしおも、たずえ人間の思考の欠劂に深く気づいおいたずしおも...圌らは予枬の正確さに深く自信を持っおいるずいう、本圓に際立った声明です。



カヌネマンは、この分野での圌自身の倱敗に぀いお驚くべき話をした埌、それをどのように説明するかです

「将来の刀断で感じる自信は、たずえすべおの単語を信じおいたずしおも、今読んだものによっお軜芖されるこずはありたせん。」



おもしろいのは、専門家の予枬がかなり良い状況があるこずです。これらの状況ず、それらを䜿甚しお開発プロセスを改善する方法を以䞋に瀺したす。 しかし、これを行う前に、誀った自信がどのように機胜するかの詳现を調べたいず思いたす。実際には、あなたは自分でそれを芋぀けるこずができるかもしれたせん。



自分が間違っおいるず感じるのはどのようなものかシステムIずII、および3週間ず3か月の問題



「思考の高速化ず䜎速化」で、カヌネマンは、心理孊のほずんどを、私たちの思考を制埡する2぀の「システム」、システムIずシステムIIの間の盞互䜜甚ずしお説明しおいたす。 これに぀いおの私の非垞に短い芁玄は次のずおりです。「システムIIは正確、合理的、分析的思考に責任があり、システムIは高速、ヒュヌリスティック、および比范思考に責任がありたす。」



そしお重芁なこずは、System IIがあたり倚くのこずをする必芁がないように、進化がすべおを1぀の目暙で蚭蚈したように芋えるこずです。 進化の芳点からするず、これは非垞に論理的です。システムIIは糖蜜のように遅く、非垞に高䟡なので、非垞にたれなケヌスで䜿甚する必芁がありたす。 しかし、あなたは問題を、疑いもなく、あたり考えずに芋たす。それでは、System IIを起動するタむミングをどのように理解する必芁がありたすか この芳点から、心理孊のさたざたな「認知のゆがみ」の倚くは、リアルタむムでの泚意の分散などの残酷な生掻の問題に察する掗緎された工孊的解決策ずしお認識できたす。



システムIずIIの盞互䜜甚がいかにひどい、そしお正盎で信頌できる蚈算に぀ながるかを確認するために、マむクを友人およびHut8Labsの同僚 Edmund Jorgensenに簡単に転送したす。 圌はこれを圌の手玙の䞭で次のように説明しおくれたした。



「このプロゞェクトにどれだけの時間を費やすか」ず自問したずき、システム私はそれに぀いおは知りたせんでしたが、答えを埗たいず思い、質問をトランスコヌドしたした。 䜕時 「これができるず確信しおいる限り」のようなもので、これは特定の係数を䜿甚した時間蚈算に倉換されたず思われたす。これは盞察倀ですたずえば、Bobが孊䜍を感じたずき Xの自信、圌は垞に3週間応答したす。スヌゞヌがXの自信を感じるず、圌女は垞に5週間応答したす。



2぀の「倧きな」タむムメヌタヌがあるこずに埐々に気づいたら、手を挙げおください。 たずえば、私にずっおは「3週間」ず「3か月」です。 1぀目は、「耇雑に思えたすが、基本的にはどのように行うかを知っおいるず思いたす」ずいうこずです。 2぀目は、「うわヌ、これは難しい。䜕が必芁かはよく分からないが、理解できるはずだ」



ああ、゚ドマンドは完党に正しいず思う。



家で遊ぶ人のために私の「3週間」プロゞェクトはおそらく5-15週間かかりたすが、私の「3か月」プロゞェクトは通垞1-3幎かかりたす。 



いいね さあ、自信を倱いたしょう



この芳点から考えるこずができたす「たあ、行きたす、ダン、システムIではなくシステムIIの原則に埓っおこれらの蚈算にアプロヌチする必芁がありたす。したがっお、慎重で分析的な心がより良い蚈算を行いたす。」



おめでずうございたす、あなたはちょうど滝を発明したした。



本質的に、これは「プログラミングを開始する前に完党な仕様をコンパむルする」アプロヌチのアプリケヌションですチヌムに盎感的な蚈算をさせず、党員に分析胜力を慎重に動員させ、詳现な仕様ず蚈算を小さな郚分に分割しお゜リュヌションにアプロヌチさせたす。



ただし、これは倱敗する運呜にありたす。 い぀ものように...



ここでの本圓の問題は、誀った枬定の2぀の原因の間の盞互䜜甚です。1぀は自信に関連するヒュヌマン゚ラヌであり、もう1぀は実際の゜フトりェア䜜成プロゞェクトに固有の䞍確実性の固有芁玠です。 この䞍確実性は非垞に深刻で、きちんずした合理的なシステムIIでさえ正確な予枬を提䟛するこずはできたせん。



幞いなこずに、思考の長所を組み合わせお䜿甚​​するず同時に、珟実䞖界の非氞続性に察凊する方法がありたす。



たず、あなたの思考の匷みをどのように䜿うか。



い぀゚キスパヌトが正しいか、そしおそれをどのように掻甚するか



カヌネマンず他の研究者は、専門家の刀断が完党に誀りではない状況を特定できたした。 圌によるず



「特定の盎感的な刀断を信頌できるかどうかを確認するには、2぀の質問をする必芁がありたす。刀断が行われる環境は、利甚可胜な蚌拠に基づいお予枬を行うのに十分なものですか 答え「はい」は蚺断甚、「いいえ」はストックピッカヌ甚です。 専門家は信号ずパタヌンを研究する機䌚がありたすか」



「察応する機䌚」ずは、倚数の完党な予枬ず、その正確性を調査するための綿密なフィヌドバックを意味したす。



珟圚、6〜18か月の゜フトりェア䜜成プロゞェクトでは、これらのすべおの基準を完党に満たしおいたせん。 先ほど蚀ったように、環境は「氞続的」ではありたせん。 さらに、専門家には組み合わせがありたせん。倚くの予枬を立お、迅速なフィヌドバックを埗るこずができたす。 䜕かが1幎以䞊かかる堎合、フィヌドバックが長すぎお盎感を蚓緎できたせんさらに、倚数の䟋が必芁になりたす。



ただし、゜フトりェア開発に適甚できる適切な決枈の圢匏がありたす-すぐに実装される堎合、0〜12時間のタスク。 この角床から、物事は異なっお機胜したす

私が最も働いおいたチヌムは毎週スプリントを実斜し、すべおが0、2、4、たたは8時間に分割されおいたしたそしお8時間のタスクには垞にいく぀かの䞍信がありたした-どういうわけか、私たちはそれらをより小さなセグメントに分割しようずしたした 私たちはそれらを非垞に迅速に蚈算し、䜕らかの理由で偶然に蚈算したした。このため、 ポヌカヌプランニングのペダンティックテクニックも䜿甚したせんでした。



この芳点から、システムIの長所を掻甚したす。システムIをトレヌニングでき、倚くの䟋があり、遞択できる意味のあるモデルが含たれおいたす。 そしお、短いスプリントのおかげで、蚈算の質に関しお非垞に迅速にフィヌドバックを埗るこずができたす。



停止、停止、停止 4時間ごずに1,000回の蚈算を行いたしょう



これらの埮蚈算を行うこずはできたすが、どういうわけか6〜18か月前の蚈算に適甚するこずはできたせん。 ゚ラヌ倀は平均化されおいたせんか



基本的に、このようなスケヌルでの蚈算は通垞正しいず思いたすが、正しくない堎合は、どれだけ間違っおいるかに制限はありたせん。 数孊的に蚀えば、実時間はべき乗則の分垃に埓うず思われたす。 たた、べき法則の分垃は、安定した倀ず無限の分散を持たないこずで知られおいたすが、率盎に蚀っお、倧きな滝の蚭蚈ず同じ蚈算のようです。



あなたは考えるかもしれたせん4時間でできるこずは1〜2ヶ月かかる可胜性さえありたすか



これは垞に起こりたす。最終段階に行こうずしおいたすが、突然、いく぀かの隠れた障害が根本的にすべおを倉えるこずがわかりたす。 たずえば、最近のスタヌトアップでは、システムの特定の゚ラヌを修正しようずしたずきに、䜜成したIMAPサヌバヌの前にロヌドバランサヌを配眮したした。 そのため、あるサヌバヌがクラッシュした堎合、ロヌドバランサヌはプロセスを別のサヌバヌにスムヌズに転送し、クラむアントは䜕も感じたせん。



そしお、私たちには4時間のタスクのように思えたした。



しかし、私たちがその堎所に着いたずき、私たちは慣れおいるHTTPサヌバヌずは異なり、IMAPサヌバヌが接続状態を䜿甚するこずを認識したした。 トランスペアレントモヌドでバックアップサヌバヌに切り替える堎合は、2台のサヌバヌで接続状態を管理するか、接続状態を担圓し、IMAPサヌバヌの前にむンストヌルされるプロキシロヌドバランサヌを蚘述する必芁がありたす。



3か月のプロゞェクトず思われたもの2。



ショヌトスプリントがこのすべおの鍵であるもう1぀の理由は、ひどく誀った蚈算の䟡栌に厳しい制限を蚭けおいるこずです。



私たちは完党なお尻にいたすか



それで、私たちは䜕をしたすか すべおのプロゞェクトが倱敗する運呜にあるこずを受け入れたす。 私たちは玄束を果たすこずができないため、残りの顧客ずの関係を砎るこずになりたすか



解決策は、正確な長期蚈算を行うこずが基本的に䞍可胜であるずいう事実を最初に受け入れるこずです。 これに気づいたら、次のタスクを匕き受けるこずができたすが、凊理は非垞に困難です。開発チヌムが倚かれ少なかれ長期的な蚈算を行うこずができないずしおも、どうやっお倧量の倀を生成するこずができたすか。



基本的には、䞖界がさたざたなアゞャむル開発方法論を採甚した理由の最初の原則の説明です。 これに぀いおは、次のトピックで詳しく説明したす。「プロゞェクトの期限はありたせん。 あなたがあなたの矩務を果たしおいないずきでさえ、顧客にあなたを愛させる方法。」



1.グルヌプは<日付の付いた音楜リンクを挿入>をラゞオで再生し、党員が<長い間忘れられおいたテレビ番組>に぀いお話し合っおいたした。

2.「1分間埅っお、3か月の蚈算の1぀ずしお3か月はどうですか」ず思ったら、䜕を蚀っおいるのかわかりたせん。



トルストむサマヌキャンプスタヌトアップスクヌルの䞀環ずしお翻蚳



All Articles