ソフトウェア開発は若者の向けの商売か?
「自分で何を言っているのか理解しているのか!」
この言葉に筆者は完全に頭に来た。開発チームを集めたこの全体会議は昨日のことのように良く覚えている。
チームにはいろいろな人がいた。人種的な意味ではない。年齢的な意味でだ。ピカピカの新人開発者もいれば、頭の白いベテラン開発者もいた。
さて、どちらの人種の方が自分を物知りだと思っただろうか?
あなたの答えはたぶん間違っている。ベテランと初心者の両方が相手の集団よりも頭が良いと思ったのだ。
筆者は、たまたま初心者の方に入っていた。われわれは、COBOL で書かれた在庫管理アプリケーションのパフォーマンス改善の必要性について議論していた。筆者は前のプロジェクトで学んだパフォーマンスを強化するためのトリック(符号付きフィールドと符号なしフィールドに関するようなもの)を披露していて、パフォーマンス改善のために最初に戻ってすべてのフィールドを修正しよう、と力説していた。
ところが、部屋にいた最年長の開発者は文字通り筆者をあざ笑った。
「たった数ミリ秒相当の CPU 処理のために全員の時間を無駄にしたいというのか? いいかげんにしろ。」
筆者の顔は絶対に真っ赤になったはずだ。前回のプロジェクトでこの提案をして賛辞を得ていたので、これが価値ある変更であるとの確信が筆者にはあったのだ。1ミリ秒でも短縮すれば、バッチジョブが時間内(夜間)に完了して荷物がタイムリーに出荷されることが確実だったからだ。
当時の筆者に分からなかったのは、ある環境においてコーディングテクニックの評判が良く、完全に筋が通っていたというだけでは、環境が変わったときに同じ結果が出るとは限らないということだった。絶対にである。
結局、机上の知識と限定的な実体験ではすべての答えが出ないことが分かった。もちろん、その最大の理由は、質問の前後関係によって回答も変わってくる可能性があるためだ。理想の世界では、すべてのコードが完璧に書かれ、傑出したパフォーマンスを出している。スケジュールと予算内ですべての要件が満たされる。
しかし、われわれの世界は完璧とはほど遠い。
筆者の新しい仕事で重視されていたのはプロセッサのスピードではなく、予算の削減と連動して増えていく未対応の要件だったのだ。
そう、「年長」の開発者が生きてきた実世界においては常に白黒がはっきりするとは限らない。リソース(スタッフ、予算、機器など)が限られているため難しい選択をしなくてはならないのだ。そこで妥協することを学ぶ。そうしなければならないのだ。
これは新しい開発者の大半を苛立たせる。
元気な若者たちは一歩も譲らず、「不公平だ。手を抜いてずさんなコードを書くことは断固拒否する」と言い返す。
すると、経験豊かな開発者は、「またか。この問題を解決するのにクリエイティブになることなどできない」と話す。
確かに、結果的にはスピードの遅いシステムが完成するかもしれない。しかし、その結果をエンドユーザーが受け入れる限り、それはさほど大きな問題ではない。大体の場合においてお金を支払うのは彼らだからだ。
だからといって、コーディング基準を全面的に犠牲にするわけでもない。スパゲティーコードを受け継いできた年齢の高い開発者には、メンテナンスのために詳細にドキュメント化され、明確に書かれたソフトウェアの重要性が分かるのだ。
基準に合わせてコードを書くのにさほど時間はいらないが、最高の輝かしいパフォーマンスを引き出すアプローチを見つけ出すには何時間もの実験が必要になる可能性がある。常にそれだけの時間があるとは限らないのだ。
ということは、管理者としては、若い世代ではなく常に年長の経験豊かな開発者を選ぶべきだということになるのだろうか?
もちろんそのようなことはない。若い開発者はいろいろなことを持ち込んでくる。
http://japaninternetcom.pheedo.jp/click.phdo?i=14a63f1313577908bc7441323f384c71
「怒りを懲らし欲を塞ぐ」という慣用句があります。
心に生じた怒りを止め、貪欲な心を閉ざしなさいということ。
過ちを起こす根本原因は怒りと欲である。つまり、怒りと
欲は損のもとである。。
これは本当に心に留めておかねばならない言葉ですね。。
PICKUP
近隣トラブル解決債務整理の基礎知識 個人民事再生探偵に盗聴器調査依頼借金を免責する自己破産申請楽しく稼げ!アルバイト動く顔文字デコメーカーどこでレーシック?自由の女神像曖昧模糊(あいまいもこ)佐藤寛子 アイドル情報