2017-11-26

プログラミング簡単だと吹聴するのはやめてくれ

プログラミングが出来る人が増えるのは大いに結構

その副産物として、個人開発と大規模開発の違いが分からない人が増えていく、これはいただけない。

下手にかじって誤解されるぐらいなら、よく分からないものだと思ってくれていた方がマシである

実のところプログラミングは難しい。

企業必要とされるような、長期的にメンテナンスできるコードを書くのは難しいのだ。

プログラミング簡単な面だけでなく、難しい面を教えないのは無責任だ。

なぜプログラミングは難しいのか

プログラミングは何らかのシステムを作り上げるために行われる。

システムには何らかの達成すべき目的がある。

厄介なのはシステムが達成すべき目的が変わりうるということである

やりたいことが増えたり、本質的に違うことが目的になってしまうこともある。

プログラミングをする人間は、少しだけ未来予知して、変更に耐えられるようにシステムを作ることを求められる。

ちょっと変えるだけ、と言われたときちょっと変えれば新しい目的を達成できるに作るように作る。

これがプログラミング技術であり、難しさの根源である

個人開発と大規模開発の違いは何か

長い文章複数人で手分けして書くようなシチュエーションイメージして欲しい。

最初から最後まで首尾一貫した文章を書くにはどうするだろうか。

一度全員で話し合って内容を決めた後、パラグラフ毎に担当を割り振り、メンバ内で信頼できる人に、特に重要とされる文章最初最後を任せるのではないだろうか。

そして最初最後を書く人が「やり手」なら、書いていくうちに全体の主張がちょっと変わることを見越して、ある程度あそびを持たせた書き方をするだろう。

プログラミングで同じようなことをすると、大規模開発と呼ばれる代物になる。

個人では作れないような規模のシステムを、複数人で分担して作り上げていく。

「やり手」なら、うまくパラグラフに分割できるように繋ぎ目を用意し、さらにはシステム目的が変わることを予知し、あそびを持たせた作り方をする。

個人開発であれば、時間的な遅れを作業量によって力技で解決することも可能である

大規模開発になると、およそ力技での解決不可能になる。

開発に携わるメンバを途中で増やしたからといって、遅れた時間を取り戻すことはできない。(ちなみにこれはブルックスの法則と呼ばれている)

悲劇を起こさないように、うまく全体を構成する能力が問われる。

うまく全体を構成する能力とは、人を束ねる能力、そしてプログラミング技術である

最後

プログラミングは難しい。

これを読む人々がプログラミングの難しさを理解し、大規模開発を支える能力を正当に評価してくれることを祈っている。

  • 難しいと無理やり思い込んでいるだけなんじゃ?

  • とりあえずペリーローダンが凄いことはわかった

  • プログラミングって面倒くさいね。自分の書いたコードですら後で見ると分かりづらい。 モジュールの分割、コメントの重要性を実感しました。

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん