起業の決心 その7

IT
ソフトウェア作成(プログラミング部分)を、もの凄くざっくり説明すると以下となる。

・プログラミング言語でのソフト作成(=コーディング)は、作文みたいなもの。
 同じ内容(機能)を作るのであっても、人によって千差万別となりうる。
・同じ機能や処理をまとめる仕組みがある。
 メソッドとか、クラスとか、ユーティリティ、フレームワーク、コンポーネント・・・

前者の「作文みたいなもの」とは、ITに携わっていない人には意外かもしれない。
ただ、これは本当にそうなのだ。
ブログなどで物事を説明するのに、いろんな記述の仕方があるように、
プログラムも、命令文の組み合わせであり、ロジックの組み立て方は無数にある。
一般的には、保守、つまり、不具合修正や機能追加しやすい方法で、作っていく。
ソフトウェアとは1回作って終わりではないからだ。

また、Aさんが書いたソースコードにBさんが加筆修正するということは、頻繁に起こるため、
誰でも無理なく理解できる記述にする必要がある。
複雑な処理をするなら、なおさらだ。(なんか矛盾しているように見えるかも知れないが)

そのために、会社内でのコーディングルールや、デザインパターン、○○パターン
あるいは、○○モデルといったプログラム構成の共通認識を使って、
なるべく書き方・作り方に統一性を持たせる。一定の品質を保つにも役立つ。

後者は、前者にも関係するが、また書くと長くなるため、今回は省略。

やみくもに作る人を投入しても、例えば、1人あたり1万行のソースコードを書いたとして、
それらをまとめあげ、統一していくことは容易ではないと想像付くだろう。
後者の「まとめる仕組み」も、何が既にあるのかを各自がよく理解していないと、
それぞれが別々に作ってしまい、車輪の再発明といったことがおこる。

だから、各自で好き勝手に仕事するのではなく「コミュニケーション能力」が必要なのでしょ?
というと、まあ、その通り。
その「コミュニケーションで認識を揃える」というのが、またコスト(日数や労力)がかかる。
それが前回、「100人日の作業を2人でやっても50日以内にするのが難しい」といったことに繋がるのだ。


この記事へのコメント


この記事へのトラックバック