開発においては、創造性がすべてです。 これは芸術であり、科学ではありません。 私たち開発者は複雑な問題を解決し、多くの場合、私たちの解決策はまったく明らかではありません。 私たちは実験、革新、研究、調査を行っています。 これをすべて行うために、私たちは
話します。 チャットルーム、Skypeでの会議、またはゆるいチャンネルで一緒に座ります。 決定について話し合います。 同僚に意見を求めます。 最高のアイデアについて議論します。 疑いもなく、会議は現代のソフトウェア設計の重要な要素です...そして見るのは非常に
悲しいことです。
優れたPMのような優れた
アーキテクトは 、
会議を必要とせず、開催する
こともありません。
会議はやる気をなくし、時間を無駄にし、お金を使い、品質を低下させます。 しかし、これについては後で詳しく説明します。 最初に代替案について説明しましょう。
私が新しいプロジェクトでリレーショナルデータベーススキーマを設計する必要のあるアーキテクトであり、5人のプログラマのチームがあり、設計を手伝ってもらいたいとしましょう。 これは非常に論理的で適切な願望です。 優れたアーキテクトは、最終的な決定を下す前に、可能なすべてのオプションをチームと常に話し合います。 だから、私は会議を集めていますか? いや!
良い建築家
プログラマーの1人であるJeffにドラフトデータベーススキーマの作成を依頼しますが、実際には彼と話をしていません。 私は彼の時間を高く評価し、尊敬しています-この組織的なノイズで彼を煩わせる必要はないので、チケットを作成してジェフに割り当てます。 時間があれば、彼はドラフトを作成し、プールリクエストを返します。 私はそれを調べ、ブランチを更新する前にいくつかのコメントを追加し、最終的には
フリーズします。
すばらしい:下書きがあります。
ドキュメントの最後に、ジェフは仮定、リスク、質問もリストしました。 例えば、私が彼から得たものは次のとおりです(これは、単純な技術文書にとって非常に便利なフォーマットであるMarkdownです。非常にお勧めです)。
## Tables
user (id INT, name VARCHAR, email VARCHAR);
payment (id INT, date DATETIME, amount INT);
order (id INT, details VARCHAR, user_id INT FK(user));
## Assumptions
- All payments will be in whole dollars, no cents.
- All users will have only one email.
- There will be no search feature required.
## Risks
- Order details may not fit into VARCHAR.
- Foreign keys may not be supported in the DBMS.
## Concerns
- Would NoSQL be more suitable?
- What is the DB server we'll use?
, , 10 . , . , . , , , .
, . . , , - , , , . : . , . ,
.
. , . , ; .
- ( ),
schema.md
.
, - , - . , . , , , , PostgreSQL . — , , .
, ? , ? : - - . !
, .
, , , , —
!
. , .
. , : Google Calendar. , -. :
- : 10 .
- : 15 .
- : 15 .
- -: 10 .
- : 30 .
- : 10 .
: , , «». , . , . . , .
schema.md
.
Git- -, « ». ,
?
.
, , , . , , , ,
, .
30 , . .
, , , -
.
—
, . , , , , .. — , .. , .
, ? , , ? , .
—
. , — . , , , , -
— —
.
— - . «» , , . "
" .
, , .. ,
2 .
,
. : , -, , , .
, , . , , . ,
, , . , .
, . , . — ,
, ,
.
, ,
— , ,
. -, . , , - - .
, - .
, , . , . , , . , , .
. ,
, , , , . .
, ,
. (, CTO, CEO, ) . , , , . .
!
. , .. «» ? - ? , ? , , ? ? , , , ? , . .
,
. - , , . , ,
, .
. , . , , . , ,
?
: « ?» — , ; - , ? , , , .
,
. , . , - . ,
.
?
, ? « » , -, ? , , - . ? ; , . ?
. ? .
, .
. — , , — . , .