第6回 この汚いコード、明日までに書き直しちゃえ!
ナレッジエックス 中越智哉
2007/7/6
■何だか様子がおかしいぞ
すると、このプロジェクトには入っていないはずの面田さんが、なぜかしんじ君の席にやってきました。
面田さん | しんじ君、プロジェクトの人たちがテストで詰まってるみたいだけど、何か心当たりはない? |
しんじ君 | え? いえ心当たりはないですが……。私の担当分のテストはうまくいっているので。 |
面田さん | そうか、それならいいけど。もししんじ君の作業が原因だったら、かなりまずいことになるよ。 |
しんじ君 | ま、まずいことって何でしょうか……? |
面田さん | あ、いやまあしんじ君は気にしなくてもいいよ、それじゃあ頑張って。 |
そういうと面田さんはそそくさと立ち去っていきました。いつもと様子が違う面田さんを見て、しんじ君は何となく不安になってきました。さらに、しばらくすると今度は鮫島さんまでやってきました。
鮫島さん | しんじ君、もしかして、昨日モジュールのコードを書き換えたりしなかったか。 |
しんじ君 | え? はい。少しだけですけど……。でも鮫島さん、このプロジェクトじゃないのに、どうして分かったんですか。 |
鮫島さん | あ、ああ、いや別にそんな気がしただけだよ。でもそれが本当だとすると、相当まずいかもな。 |
しんじ君 | さ、鮫島さん、まずいことって何でしょうか……? |
鮫島さん | い、いや、そんなに気にしなくてもいいよ、じゃあ私は会議があるから。 |
そういうと鮫島さんもそそくさと次の会議へと向かっていきました。面田さんばかりか鮫島さんの様子もおかしいので、しんじ君はますます不安になります。そんなしんじ君のところへ、今度は麻根主任と上野部長がそろってやってきました。
麻根主任 | しんじ君、ちょっといいかな。 |
しんじ君 | は、はい、麻根主任、何でしょうか。 |
麻根主任 | いまやってもらっているテストなんだが、しんじ君、この機能で使うモジュールのコードで書き直した部分などはあるかね? |
しんじ君 | ……はい、実は1つ、最初から書き直したコードがあります……。 |
麻根主任 | そうか……やっぱり……。上野部長、どうしましょうか。 |
上野部長 | う〜ん、そうだなぁ……。 |
しんじ君 | 私の書いたコードが、何かいけなかったのでしょうか? |
上野部長 | しんじ君、今回のテストでみんなが困っている原因は、どうも君が書き換えたコードにあるようなんだよ。 |
しんじ君 | ええっ! そうなんですか? 私の担当分のテストはまったく問題ないんですが……。 |
上野部長 | そうか、でもほかの作業は全部ストップしてしまった。これは見過ごせない問題だ。 |
しんじ君 | すみません……。 |
上野部長 | 君はいままでよく頑張ってくれたが、今回はそういうことだから、しんじ君、もう帰りなさい。明日からは出社しなくて結構。 |
しんじ君 | え……それって、クビってことですか?……どうしよう……まさかそんなことになるなんて……。こんなはずじゃなかったのに……どうしたらいいんだ〜! |
■しんじ君、会社に駆け付ける
……と、気が付くと、そこは布団の中でした。どうやら、しんじ君は夢を見ていたようです。時計を見ると、朝の5時になるところです。
しんじ君 | 夢かぁ〜、よかったぁ、入社3カ月でクビになるところだった……。 |
しかし、夢で見たことが気になって、しんじ君はとてももう一度眠る気にはなれませんでした。それどころか一刻も早く出社して、自分が書いたコードについて詳しく調べなければいけないと思ったのです。
しんじ君はそのまま支度をして、始発電車で会社に向かいました。オフィスにはほかの開発プロジェクトで徹夜している社員がいたので、朝早い時間でもそのまま入ることができました。
しんじ君 | 僕の書いたコードは、どの機能で使われているんだろうか……。 |
しんじ君は、システムの設計書を隅々まで読んでみました。考えてみると、配属当初このシステムの開発プロジェクトに入ったときには、設計書は自分の担当分のごく一部しか見ていなかったような気がします。いま、あらためて設計書を確認してみると、しんじ君が書き直したモジュールは、想像したよりもはるかに多くの機能から利用されていることが分かりました。今回の案件で改修の対象となっている機能ではもちろん、改修の対象となっていない機能でも、このモジュールが利用されていました。
しんじ君 | 僕が思っていたよりもずっと影響範囲が大きいんだ、このモジュールは……。しかもほかの機能からどう使われるかなんてあまり考えていなかったから、もしかしたら全然違う動作をしてしまうかもしれない……。 |
しんじ君の頭の中に、先ほど見た夢の光景がよみがえります。
しんじ君 | このままテストを始めたら、あの夢と同じ状況になってしまうかも……。 |
■周囲への影響の大きさを意識することが必要
青ざめるしんじ君の席に、面田さんがやってきました。
面田さん | おはよう、しんじ君。今日はずいぶんと早い出社だね。 |
しんじ君 | おはようございます、面田さん、実は……。 |
しんじ君は面田さんに、昨日からのことを話してみました。
面田さん | なるほど。確かにこの仕事をしていると、最初から作り直したい、書き直したいって思うことは多いよね。 |
しんじ君 | 特に私の場合、初めて作ったコードがあまりにもひどかったので……。 |
面田さん | ただ、今回のしんじ君のプロジェクトのように、すでに動いているシステムがある場合は、作り直すことによる影響の大きさを考えることが必要だね。 |
しんじ君 | はい、コードを作り直すこと自体は難しくないのですが、それがたくさんの機能に影響するとなると……。 |
面田さん | さらにほかのコードを作り替えないといけなくなる場合もあるから、予定よりも多くの時間がかかってしまって、プロジェクト全体の作業に遅れが生じる可能性もあるね。 |
しんじ君 | はい。 |
面田さん | それにしてもしんじ君、どうして今日はこんなに早く出社する気になったんだい? |
しんじ君 | (小さな声で)あ、いえ……。やっぱりクビになったりしたら困るので……。 |
面田さん | クビ? いや、いくらなんでも、これくらいのことではクビにはならないと思うけど……しんじ君、心配しすぎじゃないかな。 |
しんじ君 | そ、そうですよね。 |
面田さん | ところでしんじ君、そのモジュールのコードは元に戻したの? |
しんじ君 | あ! そうでした! 前のバージョンに戻しておかないと……。 |
結局、しんじ君が書き直したコードは幻のモジュールになってしまいましたが、テスト作業自体は順調に進めることができました。この調子でいけば、プロジェクトも無事に納品の日を迎えることができそうです。
「どう考えても作り直した方がいいものができると思っても、その変更の影響範囲やコストを考えると、そう簡単にやり直しっていうわけにいかないこともあるんだなぁ……。ビジネスとしてシステム開発をしていくには、単に良いコードやきれいなコードにするっていうだけじゃなくて、お客さんにシステムを提供している責任を考えて行動しないといけないんだなぁ。
つらいこともあるけど、だからこそやりがいもあるんだ、次のプロジェクトも頑張ろう!」と、もう次の仕事に思いをはせる、気の早いしんじ君でした。
今回のインデックス |
新人しんじ君、IT業界へ(6) (1ページ) |
新人しんじ君、IT業界へ(6) (2ページ) |
筆者プロフィール |
中越智哉●北海道出身。北海道大学大学院電子情報工学専攻修士課程修了。在学中はJavaとLinuxに熱中。卒業後、Javaの仕事にあこがれ、1999年にテンアートニに入社。Java の受託開発案件や教育事業、コンサルティングなどを幅広く担当した後、2006年2月に同社を退社。同年3月にナレッジエックスを設立。 JavaをはじめとするIT開発技術の教育に奔走する。趣味は自転車と草野球、そして毎日欠かさない耳かき。 |
@IT自分戦略研究所の関連記事
新人エンジニアに贈る、プロとしての心構え
新人が「仕事の壁」を乗り越えるポイントは?
新人が知らない会社の常識
先輩エンジニアが心得ておくべきこと
総集編 新人はやっぱりそこが分かってない!
@IT自分戦略研究所は2014年2月、@ITのフォーラムになりました。
現在ご覧いただいている記事は、既掲載記事をアーカイブ化したものです。新着記事は、 新しくなったトップページよりご覧ください。
これからも、@IT自分戦略研究所をよろしくお願いいたします。