Skip to content

Latest commit

 

History

History
23 lines (12 loc) · 2.55 KB

07-How-to-Grow-a-System.md

File metadata and controls

23 lines (12 loc) · 2.55 KB

How to Grow a System

木の葉には大人のアイデアが含まれていますが、成人の形や効力を完全には理解していません。胚が成長する。それは大きくなります。大人のように見え、より多くの用途があります。結局それは果実を生みます。その後、それは死に、その体は他の生物に栄養を与えます。

私たちはそのようなソフトウェアを扱う贅沢さを持っています。橋はそうではない。ベビーブリッジはありませんが、未完成の橋はありません。ブリッジはソフトウェアよりもはるかに簡単です。

ソフトウェアが成長していると考えることは、完璧な精神的なイメージを得る前に有用な進歩を遂げることができるので、良い考えです。ユーザーからのフィードバックを得て、それを使って成長を修正することができます。弱い手足を切り取ることは健康です。

プログラマは、配送して使用できる完成したシステムを設計する必要があります。しかし、高度なプログラマはもっと多くのことをしなければならない。完成したシステムで終わる成長経路を設計する必要があります。アイデアの芽を取って、できるだけスムーズに有用な人工物に変える道をつくるのはあなたの仕事です。

これを行うには、最終結果を視覚化し、エンジニアリングチームが興奮してやり遂げることができる方法で伝達する必要があります。しかし、あなたはまた、彼らが今どこにいても、どこにいても大きな飛躍を見せていないところに行く道を彼らに伝えなければなりません。木は生きていなければなりません。それは一点で死んではならず、後で復活することはできません。

このアプローチは、螺旋状に展開されています。遠すぎることのないマイルストーンは、経路に沿って進捗をマークするために使用されます。超競争的なビジネス環境では、たとえ設計されたエンドポイントから遠く離れていても、マイルストーンがリリースされ、できるだけ早く収益を上げることが最善の方法です。プログラマーの仕事の1つは、マイルストーンで表された成長経路を賢明に選択することによって、即時の報酬と将来の報酬のバランスをとることです。

先進的なプログラマは、ソフトウェア、チーム、および人員を増やすという3つの責任を負っています。

読者、Rob Hafernikは、このセクションのこのコメントで、私が完全に引用するよりもうまくいくことはできない:

私はあなたがここで重要性を強調していると思う。これはシステムだけでなく、アルゴリズム、ユーザーインターフェイス、データモデルなどです。あなたが大きな目標を達成するために大規模なシステムに取り組むようになると、絶対に重要です。終わりに近づき、すべてがちょうどうまくいかないことを発見するという特別な恐怖ほど悪くない(投票者ニュースシステムの最近の大失敗を見てください)。私はさらに進んで、それを自然の法則と言っています。大規模で複雑なシステムはゼロから実装することはできません。単純なシステムから一連の意図的なステップで複雑なシステムにしか進化できません。

どちらに返信することができますか?* Fiat lux *!

Next How to Communicate Well