私を育ててくれたシステムたち その9

—————————————————————————
このシリーズはソリットコンサルティング代表吉岡大介が
今までのキャリアで携わってきたシステムたちと、その開発を
通して吉岡大介が成長する様を記した実話に基づくものがたりである
—————————————————————————

※期間   2002年3月~2002年11月

※システム名  上海プログラムセンター活用(その1)

※規模・構成  -

※ポジション  フィールドSEと上海とのブリッジSE

offshore 現実はこんなに甘くない…

この時期はITバブル崩壊や同時多発テロなどあって、また大塚商会も創業以来右肩上がりの業績だったのが、この時期は前年割れをするなど、毎月の全国の受託開発の実績を見て偉い人たちはピリピリしていたように思う。SE実績の支出はほぼ外注費なので考えることは「単価を下げる」か「工数を減らす」だろう。前者の対策としてオフショア開発(海外で開発すること)の推進、後者はのちに関わることになる設計標準化プロジェクトだったのだろう。今回は前者の話。

上海へプログラムセンターが設立され、総経理には主力パッケージを開発しており、全国のSEの駆け込み寺的な名物プログラマーがそろう部署の課長さんが抜擢されたことから、その力の入れようが分かる。私の部署はプロフィットSE部門のトップのお膝元だったため、さっそく各自手持ちの案件で外注に上海を使うよう指示があったに違いない、いつくか試験的にオフショア開発を進めたようだった。

そのうちの1つに某予備校の受講管理システムがあったのだが、そのメインとなるクラス割り当て機能がガタガタで、動きが意味不明とのことでヘルプに入るよう指示を受けた。が、そのソースコードを見て仰天した。ご法度とされているコーディングがてんこ盛り、えらいことになっていた。内部で共通設定を読み込むような頻度の高い処理が、数十か所全てコピペされていた(これは普通1か所にまとめてそこへ飛ばすようにする。もし処理内で修正があったら全部直さないといけない)。また至るところに「マジックナンバー」と呼ばれる、何かを意味する数字が直接コードに書かれていた(これも可読性が下がり、仮に番号が変わったら探し出すのは至難になる)。

実際に画面の部品一つ一つに数字を割り当てて数百にもなっており、コード内には何千か所も登場していたが、案の定バグ修正のため画面に一つ項目を追加することになり、何千か所もの数字を1つずつずらす羽目になった。こんなバカげた作りにしなければ項目追加など10~20分作業なのに平気で100倍以上の時間がかかった。

怪我の功名か、何千か所もコードを眺めているとやりたいことは把握できたので徹底的に直すことにした。困ったことはたいてい誰かがすでに経験しており、解決策や手法があるものだが、そのときプログラムの動きを変えないでコードの構造を整理する方法を「リファクタリング」と呼ぶことを知った。さっそく専門書を買い見よう見まねで取り組んだ。本にあるダメな例が悉く当てはまるのに苦笑しながらずいぶんスッキリさせることに成功すると、結局仕様を理解できずお茶を濁して適当にコードを書いたと思われる本当のバグが浮き彫りになった。

もろもろのできごとを被害者意識も働いてか大げさに報告すると、同じ部署の私よりずっとコーディング経験の長い優秀な後輩たちと上海を教育してくれと返ってきた。単に学校出たてでコーディング経験の浅いだけなのかと思っていた私は、その後価値観も文化も違う異国の人間と仕事をする難しさを思い知るなど想像できなかった。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする