「自分自身を評価してみてください」

リファクタリング・ウェットウェアを読書中です。

自身のふりかえりにも丁度いいので、第1章の「さっそく実行」をさっそく実行してみます。

自分自身を評価してみてください。

  • Java : 上級者
    • 根拠 : とりあえず、綺麗なコードは書けるとの評価を頂いたので。
    • 仕事へのインパクト :
      • 今の案件はコードは書かないが、ほぼJavaで組まれているので、読んだり調べたり改造してみたりは問題なく、設計する上での調査や納品されたソースコードのレビューなど多くの場面で、他のチームと比べて優位性がある。
      • イザとなれば自分(達)で何とかなるという自信にもつながっている(が、これは良し悪し)。
      • 仕事上で使うツール類も自作出来るので、業務効率化に繋げている。
    • 次のレベルに進むために:
      • テスティングへの理解と経験。実プロジェクトへのユニットテスト適用での課題とか、分かってない。
      • フレームワークへの理解と経験。DIやAOPは概念は理解している(つもりだ)が、実際にはほとんど触ってない。Strutsとかは「使ってないから知らないけど、問題ある?」と開き直るレベル。
  • Ruby : 初心者
    • 根拠 : 30行程度の簡単なツールをリファレンス見ながら、位しか使えない。
      • リファレンス見ながら作れるなら初心者は脱してる…と言えなくもない。ドレイファスモデルだと。
    • 仕事へのインパクト :
      • 仕事上で使う簡単なツール類を自作して、業務効率化に繋げている。
      • Redmine導入の際、Railsの基礎を知っていたため、問題なくインストールすることができた。
    • 次のレベルに進むために :
      • んー、正直分からない。
      • Win32OLEでのExcel操作をフレームワーク化してみるとか?でも、ドキュメントレベルの仕事な気もする。
        • 動的型付け言語の素養もありますよ、という宣伝文句は獲得したい。という大人の事情も。
  • DB全般 : 中級者
    • 根拠 : テーブル設計は一応できるので。
      • でも綺麗に〜とかは無理。
      • パフォーマンス関係はよーわからん(インデックス付ければいーんでしょ?!実行計画で予測コストくらいは読めるわよ!!)。
      • SQLは普通に書くが、複雑なクエリは書く価値がないと思っている(もしかして:書けない)。
    • 仕事へのインパクト :
      • 一通りのシステム設計はできるよ。
        • でもここ2年ほどは、既存の腐ったDB設計に文句言う位しか出来ない。大人の事情も含め。
    • 次のレベルに進むために :
  • 開発チーム運営 : 中級者
    • 根拠 :
      • 5名程度の小規模チームを何とか引っ張れる。
    • 仕事へのインパクト :
      • 何とか引っ張ってる。
      • でも、「あー、やることないっすね。とりあえず自習で」とかよくやる。天然の20%ルール。
      • 急な増員にはまだ弱い。
      • 2009年はRedmineSVNを本格導入。ある程度まわった感はある。
    • 次のレベルに進むために :
      • 朝会または夕会の導入
      • 定期的なふりかえりの導入
  • ソースコード構成管理 : 上級者
    • 根拠 : SVNでベンダブランチあたりまで使えてれば上級者でいいでしょ。
    • 仕事へのインパクト :
      • ベンダさんのバージョンアップに付随する作業を4日程度で終わらせたり。従来での見積もりの半分以下。
    • 次のレベルに進むために :
      • Excel文書の競合解消支援マクロとか作る
      • 分散型を導入
      • 並行多段滝開発での管理パターンをまとめる
      • 元請け巻き込んで導入
  • タスク管理 : 上級者
    • 根拠 : 適用が容易な部分を見つけ出して、フローを作成して「あとはよろしく」ができれば、とりあえず上級者でいいや。
    • 仕事へのインパクト :
      • 部分的に「あとはよろしく」ができるので、管理いらず。レビューに集中できる。
    • 次のレベルに進むために :
      • メンバー的にこの進め方はどうなんですか?という意見は聞くべきだ。
      • インデックスカードや付箋紙によるタスク管理をしてみるとか。
      • 現時点では、チケット駆動開発の方向には、あまり進むつもりはない。部分的に使う程度。
  • 英語 : 中級者
    • 根拠 : 一応読めるけど、遅いし、意味分からんことも多い。会話は日常の意思の疎通が出来る程度。TOEICは665。
    • 仕事へのインパクト : 日本語ドキュメントが無いツールやライブラリにも抵抗が少ない。
    • 次のレベルに進むために : 語彙力向上。マジな話、語彙力なしでここまできてますので。
  • お客さんへの対応 : 上級
    • 根拠 : 信頼していただいているようなので。
    • 次のレベルに進むために : 現場リーダだけではなくマネジメント層との意思疎通の強化。
  • 上司の使い方 : 爆弾
    • 根拠 : 触れないでください。爆発します。
  • Flex/ Air : 初心者
    • 根拠 : 基本的なコンポーネントのみを使った簡単なアプリ程度しか作ってないので。
    • 次のレベルに進むために : 密かに作ってるATNDのアプリをもう少し作りこみたい。
  • Ioke : 初心者
    • 根拠 : ビンゴ位しか作ってないし。
    • 次のレベルに進むために : マクロの使いどころとか。
  • コミュニティ活動 : 上級者
    • 根拠 : 主催と言うか幹事を3回した。何件か発表した。
    • 次のレベルに進むために :
      • 他の人の意見の取込み方を模索すべき。
      • グダグダ発表が目立った。キレのいいLTをする。
  • 料理 : 上級者
    • 根拠 : 和洋中いろいろ作れる。でも、綺麗に〜とかは苦手。あと、自分で自分の料理に飽きる(のは、シンプル指向の宿命か)。
    • 次のレベルに進むために : バリエーション増やしたい。特に手早く副菜を、とか。料理本かー。
  • ブログ : 達人

チームでの問題、ドレイファスモデルを知っていればどうなったか

  • チームでの問題 : チームのグループ間で人の取り合いが発生していること。
    • メンバを共有しているので、あちらを優先したらこちらが遅れる的な状況が続いた(続いている)。
  • ドレイファスモデルを知っていれば :
    • マネジメント層に対する理解は変わっていたかも知れない。
      • 自社のマネジメント層は初心者から中級者でしかなく、「ルール」は他者が定義して自身は従うものだと思っている。自社のルール作りには関与せず、他社との交渉も出来ない。とても残念な状況になっている。
      • 初心者だと意識して対応すれば、お膳立てから色々用意し、その分の余裕をはじめから組み込むべきだという判断はできた。
        • って愚痴だなこりゃ。なんか違うわ。
  • チームメンバに対しては…それほど問題はなかったというと、「無知の知」ではない証明は出来ない。ふりかえる機会は必要。

チームメイトは?

  • Aさん
    • Javaは中〜上級、今の仕事のサーバ環境設定は達人レベルに達してる。その他は中級。
    • バージョンアップに伴なうマージ作業は一瞬で終わらせてくれたとか。
    • これこれこうして作ってよ、というと、パパッと作ってくれるとか。
    • 分からない部分は確認、曖昧な部分は指摘、などしてくれるので、助かってます。
  • Bさん
    • 設計書やテスト仕様書(もちろんExcelだけど)記述は中級。
    • ある程度曖昧でもとりあえず進めてくれる。ツッコミが厳しいので、また助かってます。
  • Cさん
    • テストはこなします。設計書は読む気ないのか。ベテランさん。
    • お客さん気分をどう持っていくことができるのか。
  • Dさん
    • 先日合流。テストはこなします。
    • たぶん器用なので、色々覚えてもらう予定。自社メンバなので、引継ぎの最有力候補。

全体的にふりかえってみて

  • チームメンバやコミュニティメンバに対する理解が薄いと、自分自身では感じているようだ。必要だと思う事前・事後のアンケート、ふりかえりなど、もう少し比重をおくべきだと思っているのかも知れない。
  • 自動テストも満足に使えないのに、プログラミングで上級語るのもオコガマシイか。「未熟なのに無自覚」って、自覚してますよ!けど、あえて直さない。
  • チームメンバに対して期待していることは、どうやらツッコミらしい。切り崩すから援護してくれ、みたいな感じ。
  • この自己分析法は、現状持っている具体的な能力の延長線上に次の目標を見出す方法であり、方向性の違う目標(たとえばアジャイル開発への転換とか)へは行きづらいような気がした。

ちなみに、このエントリは2時間弱かけて書いてます。まぁ、そんなもんですよ。

ネタの元

リファクタリング・ウェットウェア ―達人プログラマーの思考法と学習法

リファクタリング・ウェットウェア ―達人プログラマーの思考法と学習法