SIerのプログラミング技術向上を求む
1. お客さんが使うのはソフトウェア
SIerはきちんと仕事をすると言われているらしいけど、運営やドキュメント作成は本当にしっかりやってると思う。
(長時間のドキュメントレビューなど、やりすぎだと思うこともあるくらい)
しかし対照的にプログラムについてはあまりにもノータッチだと思う。
新人が書いたものがそのまま納品されていたりする。
(ここでの新人は初級プログラマを想定)
先輩にプログラミングが分かる人がいないのが大きな原因だと思うけれど、それでよいのだろうか。
新人が書いた提案書をそのまま顧客に持って行ったりすることがありえないように、新人が書いたプログラムがそのまま納品されるのもありえないと思う。
お客さんが使うのはドキュメントでなく、ソフトウェアだから。
2. ソフトウェアの品質
「新人が書いたとしても、テストで問題がなかったからいいのではないか?」
もしそのソフトウェアが一度もメンテナンスされることがないのであればそうかもしれない。
けれど現実的にはそのようなことはありえなくて、何度も何度も修正が入ることになる。
その時に上級プログラマが書いたプログラムと新人が書いたプログラムの間には、とてつもなく大きな差が生まれる。
上級プログラマが書いたプログラムに修正を加える場合は20分でできるものが、新人の書いたプログラムに修正を加える場合は200分以上かかったりする。
さらに、新人の書いたプログラムは可読性が低く、修正箇所が多く、重複も多く、不具合の生まれる可能性も高い。
3. 外から見ても耐震偽装はわからない
(このエントリのネタ出しをしてた頃から時間が経ちすぎて、かなり懐かしくなってしまった)
今まで書いてきたことの繰り返しになるけれど、プログラミング工程をブラックボックスにしないで、中身をチェックしないといけないと思う。
たとえ最初の納品前のテストで問題がでなかったとしても、そのプログラムは潜在バグの宝庫の可能性がある。
悪質なプログラマは、システムエラーだけはおこさないように、エラー発生時も処理を続けるためのTry Catchを書いていたりする(実話)。
外から見ても耐震偽装は気づきにくいが、中身を見ればすぐに分かる。
4. ものづくりを楽しめるように
SIerには要件定義等、上流工程が好きな人が多いのかもしれないけれど、僕はプログラミングが好きだ。自分の頭に描いたものがカタチになっていくのがとても楽しい。
しかし・・・
今、仕事でプログラミングをする時は、過去に一括外注で作られたシステムのメンテナンスをしているが、これは楽しくない。ため息をつきながらメンテナンスをしている。
理由は前に書いたように、可読性が低く、修正箇所が多く、重複も多く、いらいらしてくるから。
中身を見る前は20分と見積もったものが、実際には200分もかかるから。
楽しみながらやるのと、ため息まじりにやるのと、どちらがいい仕事ができるかと言えば楽しみながらに決まっている。