第6回 この汚いコード、明日までに書き直しちゃえ!
ナレッジエックス 中越智哉
2007/7/6
この春に大学を卒業し、ある中堅SI企業に就職した中山しんじ君。初めての経験にとまどいつつ、周囲のサポートを受けながら、社会人としてもITエンジニアとしても成長していきます。皆さんもしんじ君と一緒に歩んでみませんか。 |
前回(第5回「『私も分かんないんだよね』っていわれても!」)、メンバーが2人だけのプロジェクトを担当したしんじ君。最初は不安もありましたが、先輩エンジニアの鮫島さんと二人三脚で何とか無事に納品を迎えることができ、ほっとしていました。
このプロジェクトを通じて、しんじ君は鮫島さんとのやりとりにもすっかり慣れました。入社早々質問の仕方で怒られたこともありましたが、それ以来、かなり的確に質問できるようになり、いまでは技術的な相談はほとんど鮫島さんにするようになっています。
しんじ君のこれまでの失敗と学びは…… 新人しんじ君、IT業界へ 第1回 「分からないんで教えてください」はいけないの? 第2回 初めてのお客さま訪問で遅刻しちゃった! 第3回 お客さまへのメール、こんな感じじゃダメですか? 第4回 すぐ直すから、報告しなくてもいいよね? 第5回 「私も分かんないんだよね」っていわれても! |
|
■しんじ君、2カ月前の自分のコードを見て微妙……
さて、しんじ君は次のプロジェクトについて、麻根主任から指示を受けています。
しんじ君 | 麻根主任、お呼びですか。 |
麻根主任 | ああ、しんじ君、次のプロジェクトなんだが……。 |
しんじ君 | はい。 |
麻根主任 | ナレッジ商事さんのところの案件に入ってほしいんだ。 |
しんじ君 | 私が最初に入ったプロジェクトのお客さんですか。 |
麻根主任 | ああ、そうだったね。実はあの案件は納品されてからもいろいろ改修の要望があってね。追加でその改修を受注したんだよ。 |
しんじ君 | そうなんですか。 |
麻根主任 | だから、しんじ君にとってはよく知っているシステムということだよ。どうだい、気が楽になったんじゃないか。 |
しんじ君 | はい、それはそうなんですが、入社当時に書いたコードを見るのはちょっと恥ずかしい気もします……。 |
麻根主任 | この2〜3カ月の間に、しんじ君もずいぶん力を付けているだろうしね。自分の成長ぶりを確かめるいい機会かもしれないぞ。 |
しんじ君 | はいっ、頑張ります。 |
そんなわけで、しんじ君はナレッジ商事の改修案件プロジェクトに入ることになりました。
プロジェクト自体はしんじ君が参画する前から始まっていて、コードの改修は8割以上終了していました。しんじ君は残った一部のコードの改修と、システム全体のテストが主な役割となりました。
しんじ君は、コードの改修をしながら、以前自分が作ったコードを眺めています。
しんじ君 | これを書いていたころは配属されたばかりで、よく麻根主任や鮫島さんに怒られてたなぁ。面田さんにもいろいろ相談したし……。 |
ぼんやりそんなことを考えながらも、しんじ君は自分のコードに強い違和感を覚えていました。
しんじ君 | これは……われながらヒドいコードだな〜。なんでこんな書き方しちゃったんだろう? いまだったらもう少しまともなものが書けると思うんだけどなぁ。 |
配属されて以来、いくつかのプロジェクトでプログラミングを経験してきたしんじ君には、2カ月前の自分のコードがとてつもなく稚拙に見えて仕方がありませんでした。
■よし、書き直しちゃえ
しんじ君 | このコード、最初から書き直したいなあ。一から書き直したら、きっとかなりいいものを作れるはず……。 |
とはいっても、しんじ君が見ていた自分のコードはすでに改修のコーディングが終了し、テストを残すのみでした。その機能のテストは、明日から開始のスケジュールになっています。
もうすぐ昼の12時、テストの開始まではあと半日時間があることになります。そこでしんじ君は、今日のうちにできるだけこのコードを書き直してみて、もし間に合えばシステムに組み入れ、間に合わなければあきらめて以前のコードでテストをするということに決めました。
しんじ君 | よし、今日中にできるだけ頑張ってみよう。 |
しんじ君が書き直そうとしていたコードは、配属当初に四苦八苦しながら何日もかかって書いたコードでした。しかし、いまのしんじ君にはそれほど難しい内容ではありませんでした。日が暮れ、オフィスに人が少なくなってきたころ、そのコードは何とか書き上がりました。
しんじ君 | できた! 内容がよく分かってるせいもあるけど、意外と早くできちゃったなぁ。後は取りあえず動作確認して、明日からのテストで最終的な確認だ……。 |
■僕って才能あったのかも
そして、翌日になりました。今日からテストフェイズなので、しんじ君は昨日完成させたコードを組み込んだシステムをテストしていきます。書き直したコードが含まれている機能も含めて、しんじ君の担当する範囲のテストは驚くほど順調に進んでいきました。テストを始めてから2時間ほどたちましたが、テスト結果がNGになった項目はまだ1つもありません。
しんじ君 | 半日で仕上げたコードだけど、うまく動作しているみたいだ。僕ってもしかして、プログラミングの才能があったのかも! |
しかし、順調なしんじ君の作業とは対照的に、周りのメンバーのテストはあまりうまくいっていないようです。
メンバー1 | 最初の方のテストで、すぐ動かなくなっちゃうじゃないか。 |
メンバー2 | 動くことは動くけど、エラーだらけだぞ。 |
メンバー3 | 昨日まではそれなりに動いていたのに、なんで今日になってこんなにおかしいんだ? |
そんな声がしんじ君にも聞こえてきます。
しんじ君 | え? どうしてだろう。僕の担当している部分は全部動いているのに……。 |
今回のインデックス |
新人しんじ君、IT業界へ(6) (1ページ) |
新人しんじ君、IT業界へ(6) (2ページ) |
@IT自分戦略研究所の関連記事
新人エンジニアに贈る、プロとしての心構え
新人が「仕事の壁」を乗り越えるポイントは?
新人が知らない会社の常識
先輩エンジニアが心得ておくべきこと
総集編 新人はやっぱりそこが分かってない!
@IT自分戦略研究所は2014年2月、@ITのフォーラムになりました。
現在ご覧いただいている記事は、既掲載記事をアーカイブ化したものです。新着記事は、 新しくなったトップページよりご覧ください。
これからも、@IT自分戦略研究所をよろしくお願いいたします。