スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
ブログランキングに参加しています。応援クリックいただけると嬉しいです♪
FC2ブログランキング
人気ブログランキングへ

コード プロテクター

去年所属していたチームのリーダーが、ホワイトボックスエンジニアの仕事内容について、プレゼンをしたことがありました。彼が作成したプレゼン用のスライドの一番最初に、ホワイトボックスエンジニアとは、一言で言えば「コード プロテクター(コードを守る人)」である、と書いてありました。先日、ほんとにそうだな~と思った出来事がありました。

プログラマーたちの仕事の一つに、リファクターという作業があります。これは、簡単に言えば既存のコードをより良いコードに改善することです。しかし、既存のコードを変えるわけですから、当然上位互換性、つまり以前のバージョンともちゃんと作動するか、ということを考えなくてはなりません。もちろん、いくつものバージョンが開発されたのち、以前のバージョンとの互換性が失われる機能も出てくることもあります。うちのチームではそうなった場合、チェンジコントロールというプロセスを踏むことになっています。

チェンジコントロールプロセスでは、プログラマーが既存の機能をどうしても変えなければいけないと判断したとき、以下の手順を踏みます。

  • 1.プログラマーはどの部分を変えなければいけないかについてレポートを提出

  • 2.それを主にアーキテクトとプログラマーチームのマネージャーが審議

  • 3.それが許可された場合、製品のどの部分が変わるか、この変化によってどんな影響が出てくるかを文書化

  • 4.カスタマーに報告


  • 大体こんな感じです。一番大事なことは、カスタマーがこの変化について、ちゃんと報告を受けているということです。でなければ、例えばカスタマーが何も知らずに製品をアップグレードした場合、もしくはパッチをダウンロードした場合、製品が動かない!?となり、カスタマーにとっては、「聞いてないよ~!」なわけです。会社にとっては、あるまじき事態です。

    が、そのあるまじき事態が起こりそうになったんですよ、先日!あるプログラマーが、既存のコードを勝手に変えたのを私は発見したんです。即効シニアプログラマーをつかまえて、一緒に彼女に話しに行きました。

    私:「あなた、既存のコードをたくさん変えちゃってるけど、ちゃんとチェンジコントロールのプロセスやったの?」

    プログラマー:「いいえ、やってないわ。」

    私:「いいえって、あなたが変えたコードは、ちゃんと以前のバージョンといっしょに動くの?互換性は大丈夫なの?」

    プログラマー:「以前のバージョンとの互換性は絶対無理ね~。あはっ

    こいつめ~!!!と思った私でしたが、後はシニアプログラマーに任せました。彼が冷静に、こういう場合はちゃんとチェンジコントロールプロセスを踏まなければいけないことを話してくれて、結果、彼女が変えたコードは全部元に戻されました。

    でもね、私は知ってるんです、彼女がこのプロセスをわざと無視したこと。私は彼女のすぐ近くに座ってるんですが、このことが起こる2,3日前に、彼女が他のプログラマーからこのプロセスについて教わっていることを、私はちゃんと聞いてるんですよ、この耳で。横着者め~と思いましたね。

    まあね、彼女がどうしてそういうことをしたのか、わからないこともないんです。まず、どの部分を変えなければいけないかについてレポートをまとめるのが結構大変だし。というのは、リファクターの作業を始めてみて、つまりコードを変え始めてみないと、実際どの部分を変えないといけないのか、完璧に把握はできないと思うんですよね。あと、チェンジコントロールのプロセス自体が1~2週間かかってしまうので、そうなると彼女が自分の作業をスケジュール内に終わらせるのはほぼ無理。でも、だからといって、こういうことをされると困るんですよ、本当に!スケジュールに無理があるなら、それをちゃんと自分のマネージャーに伝えればいいことなんですから。

    こういうプログラマーからコードを守るのも、ホワイトボックスエンジニアの大切な役目の一つ、今週も頑張って目を光らせようと思います。横着プログラマーめ、I'm watching you.......

    そのうち、こういう勝手なコードがコードレポジトリーにチェックインされるのを防ぐツールを書いてやろうと思っています。

    ブログランキングに参加しています。応援クリックいただけると嬉しいです♪
    FC2ブログランキング
    人気ブログランキングへ

    COMMENTS

    COMMENT FORM

    TRACKBACK


    この記事にトラックバックする(FC2ブログユーザー)

    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。