スポンサーサイト

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

思わぬ挑戦

ここ最近、仕事についてずっと考えています。

毎日の仕事は基本的に楽しいし、やりがいがある。知識が勝負の仕事なので、いつもできるだけ新しいことを学ぶようにしていたら、それなりにいろんなことを吸収しているのがわかります。最近では、プログラマーが書くのを忘れたコードを指摘できるようになったり、小さいことけどデザインにバグを見つけたり。

ホワイトボックステストにユニットテストは欠かせないけど、それだけじゃなく、うちのチームが開発しているカスタムAPIを実際に使ってちょっとしたプログラムを書いてみて、APIにバグを見つけたり。

ゆっくりとですが、少しずつホワイトボックスエンジニアとして成長しているのが実感できています。なので、技術の面ではあまり心配することはありません。自分が勉強すればいいだけですから。

ただ、その努力がどこまで認められているか、最近ずっとそれを疑問に思っています。前から思ってたけど、やっぱり私のマネージャーは、ホワイトボックスエンジニアの仕事がどんなものか、一つ一つの作業にどれだけの努力が費やされているのか、どれだけ時間がかかるのか、わかっていない。

例えば、ホワイトボックスエンジニアは、プログラマーが約1ヶ月かけて書くコードを約3週間かけてテストします。その3週間の中で、そのコードが何をしているのか理解し、それをテストするためにいろんなシナリオ(これをテストケースといいます)を考えなければならない。

そのためには、テストするコードを読んだり、時にはそのコードに関する文書を読んだりもしなければならない。それからやっとテストプログラムを書くことができます。

なので、時にはたった一つのテストケースを実行するプログラムを書くのに丸一日かかることもあります。これを5人のプログラマーたちが書くコード全てに対して、私一人で行わなければなりません。

こういう作業内容を何度もマネージャーに伝えたものの、やっぱり実感としてはわかっていないらしく、私のスケジュールはいつもいっぱいいっぱいなのにも関わらず、自分でもできるようなレポート作成の仕事を私に頼んできたりします。

私のマネージャーだけではなく、さらにもっと上のマネージメントの人もわかってないな~ということが最近ありました。

つい先日あった社内全体でのミーティングで、ちょっと前までうちのチームにいたプログラマーが功労者の一人に選ばれました。彼がうちのチームで最後に書いたのは、既存の機能を新しいフレームワークを使って書き直したものだったのですが、これがまたバグだらけ・・・・。

うちのテスターチームだけではなく、うちのチームが開発しているこのアプリケーションを使っている他のチームからもどんどんバグレポートが舞い込んできています。「これ、書き直さない方がよかったよね。」というのが、うちのチーム全員の意見です。

でも、彼はもう他のチームに移ってしまっているので、彼がこのたくさんのバグを直すことはありません。その作業をしなければならないのは、うちのチームに残っているプログラマーたちです。アーキテクトも、「コードを書くだけ書いて、バグを直さなくていいって、ありえるのか?」と首をかしげてました。

にも関わらず、その彼が功労者として表彰された・・・・・。うちのチームには、バグだけを残して他のチームに移っていった彼よりはるかに貢献しているプログラマーはいるのに、報われないな~と思いました。その話をある別のプログラマーとしていた時に、彼はこう言っていました。

「マネージメントが考慮するのは自分の手元にあるチェックリストだけ。例えば、この機能を開発してほしい、誰がその機能を書いたか、ああ、彼が書いたんだね、じゃ、彼が功労者だね、というふうにね。その人が本当にいいコードを書いたのか、つまり、その人のした仕事は、本当にチームや製品に貢献するものだったのかなんてこと、ちっとも考えてないんだよ。」

マネージメントの仕事は、文字通り開発のプロセスを管理することなので、開発に使われているプログラミング言語やコードの書き方に関して、そこまで知識がないのは当たり前なのかもしれません。

最近わかってきたのですが、その知識のギャップを埋める努力をするのも、エンジニアの仕事なのでしょう。

なので、例えば私のマネージャーが前述のように、私の他の仕事に支障をきたすような仕事を課してきたとしても、すぐに「ちょっと今、手一杯なのですが・・・・・。」とは言わず、とりあえずある程度やってみて、「今このレポートは、この段階です。完成させるために、あとこういう作業をしなければなりません。それにはこれくらいの時間が必要です。と同時に、私は今このテストプログラムも書いています。このプログラムを書くためには、こういうことをしなければならず、テスト期間はいつまでです。どちらを優先しましょうか?」というふうにコミュニケーションをとるようにしています。

それと、会話だけではなく、時にはメールでやりとりしたりして、その作業の経過に関する記録が残るようにしたり。

それと同時に、マネージャーたちは、自分たちが、自分たちの下で働く社員たちに仕事を与えるときに、その仕事内容についてよくわかってないことが結構あるということもわかってきました。

なので、本来なら1ヶ月はかかるという作業に対して、最初は1週間しか時間を与えてくれない、などということが結構あります。でも、それは別に厳しくしてやろうとかそういうわけではなくて、その目的を果たすのにどういう作業が必要か、本当には把握していないからなんですよね。

だから、彼らが与える課題や期限が現実的でないとか、あまり意味のないものである時には、それをちゃんと明確に伝えられることも、エンジニアには求められているわけです。

こういうコミュニケーションの仕方もうまくなっていかなければ、結局、自分が本当にやらなければいけない仕事ができなくなる場合もあり、結果として自分のキャリアに必要な経験を積めなくなることも考えられます。

以前は、この業界ではとにかくスキルや知識さえ身につければどんどん上に昇れると思っていたのですが、思わぬ挑戦に立ち向かっている気がしている今日この頃です。

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

COMMENTS

COMMENT FORM

TRACKBACK


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

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