その副産物として、個人開発と大規模開発の違いが分からない人が増えていく、これはいただけない。
下手にかじって誤解されるぐらいなら、よく分からないものだと思ってくれていた方がマシである。
実のところプログラミングは難しい。
企業で必要とされるような、長期的にメンテナンスできるコードを書くのは難しいのだ。
プログラミングの簡単な面だけでなく、難しい面を教えないのは無責任だ。
プログラミングは何らかのシステムを作り上げるために行われる。
厄介なのは、システムが達成すべき目的が変わりうるということである。
やりたいことが増えたり、本質的に違うことが目的になってしまうこともある。
プログラミングをする人間は、少しだけ未来を予知して、変更に耐えられるようにシステムを作ることを求められる。
ちょっと変えるだけ、と言われたとき、ちょっと変えれば新しい目的を達成できるに作るように作る。
長い文章を複数人で手分けして書くようなシチュエーションをイメージして欲しい。
最初から最後まで首尾一貫した文章を書くにはどうするだろうか。
一度全員で話し合って内容を決めた後、パラグラフ毎に担当を割り振り、メンバ内で信頼できる人に、特に重要とされる文章の最初と最後を任せるのではないだろうか。
そして最初と最後を書く人が「やり手」なら、書いていくうちに全体の主張がちょっと変わることを見越して、ある程度あそびを持たせた書き方をするだろう。
プログラミングで同じようなことをすると、大規模開発と呼ばれる代物になる。
個人では作れないような規模のシステムを、複数人で分担して作り上げていく。
「やり手」なら、うまくパラグラフに分割できるように繋ぎ目を用意し、さらにはシステムの目的が変わることを予知し、あそびを持たせた作り方をする。
個人開発であれば、時間的な遅れを作業量によって力技で解決することも可能である。
開発に携わるメンバを途中で増やしたからといって、遅れた時間を取り戻すことはできない。(ちなみにこれはブルックスの法則と呼ばれている)
悲劇を起こさないように、うまく全体を構成する能力が問われる。
うまく全体を構成する能力とは、人を束ねる能力、そしてプログラミングの技術である。
プログラミングは難しい。
難しいと無理やり思い込んでいるだけなんじゃ?
とりあえずペリーローダンが凄いことはわかった
プログラミングって面倒くさいね。自分の書いたコードですら後で見ると分かりづらい。 モジュールの分割、コメントの重要性を実感しました。