スキルシートには出来る限り「プロセスと成果」というスパイスを混ぜるべきだ

この業界の人間であれば一部を除いて面談というものは避けては通れないものでしょう。そして、その面談に至るまではスキルシートという紙媒体によって営業がユーザーさんに提案するわけです。アサインに至るまでには、第一段階としてスキルシートでパスできなければお話になりません。
これまで色んな人のスキルシートを見る機会がありましたが、次のような内容のものを嫌という程見せられたものです。


詳細設計、実装、テスト
〜部分、〜画面実装

たった2行くらいであっさり終わってしまう内容。。。皆さんはこの内容でこのエンジニアがどれほどのスキルかを推し量ることが出来るでしょうか。もの凄く出来るんだけど業務内容の記述が手抜きであるか、書いた内容通り具体的な手法やプロセスをあまり理解していないかの2パターンが考えられますが、大体後者のパターンが多いでしょう(虚偽する輩もいらっしゃいますね)。大量のエンジニアのスキルシートを目を通さなくてはならないような場合は、これではとても目を引く内容ではありません。

では具体的にどうスキルシートを武装していけば良いでしょう。例えば「Webアプリケーションのチューニング」という業務に従事したとします。環境はとりあえずDBを使ったJavaのWebアプリということにしておきましょう。一つにWebアプリのチューニングといっても一体どの分野なのかということが問われるでしょう。とりあえず大分類として以下のような分類ができるはずです。

これで見る側も少しはターゲットが絞れるでしょう。逆にエンジニアがDB、SQLのチューニング業務に応募するような場合、その分野に特化した提案ができるような内容にブラッシュアップすれば良いのです。ただ、これでもまだ範囲は「大きい」です。スキルシートレベルであれば、ここからのもう一段階のブレイクダウンが重要だと思います。

  • ネットワーク・ハードウェア層
  • DB・DAO層
    • 実行計画を考慮したSQLチューニング(結合順序、結合数の検討)
    • パフォーマンスが劣化しにくいテーブル設計(テーブル非正規等)
  • ビジネスロジック
    • アルゴリズム最適化(不要処理除去、ループ回数削減)
    • インスタンス生成コスト削減(インスタンスプーリング等)
    • キャッシュ機構作成
    • スレッディング
  • プレゼンテーション層
    • 画面レイアウト、UIの再考(コンテンツを詰め込みすぎない、表示量の考慮等)
    • Ajaxでのキャッシュ
    • JS圧縮・難読化
    • JSPプリコンパイル

パッと思いついたものを書きなぐってみましたが、これくらいブレイクダウンできるとどのようなプロセスで業務を遂行したかというのが明確になります。さらに、この手法によりどれだけの成果を挙げたかというのも付け加えるとさらに良いでしょう(30%の処理時間削減に成功とか)。スキルシートには具体論を全部書く事はスペース上不可能なので、これくらいの粒度でプロセスと成果を散りばめることが重要だと考えています。もちろん面談では、さらにブレイクダウンした「具体論」を説明できなければならないでしょう。