wicked-engineerのブログ -6ページ目

wicked-engineerのブログ

システムエンジニアの私的なメモ書き

会社のグループウェアは、ノーツ4.6とサイボウズガルーンの混在、というちょっと不思議な状況なのですが、
どちらにしろ、気楽に自由に使える感じではないので、自チーム内での情報共有にはWikiを使いました。
代表的なコンテンツはこんな感じ。特に管理者を立てていたわけではないので、勝手に増えていきます。
使ったのはPukiwiki。

・おしらせ
・週間予定/月間予定
・振り返り(KPT)の結果まとめ
・みんなでGTDした結果のまとめ
・ミーティングメモ(議事録)
・作業報告
・技術系の情報をまとめたナレッジベース
・仕事とは関係ない掲示板(美味しいお店、とか)
・チーム全体で作業するときのタスクリスト管理用ページ
・etc

今では結構書き込みがありますが、当初はあんまり使われませんでした。

①Wikiの記法に少し壁がある
②更新状況を確認するのに、定期的に見ないといけない

こんな理由だと思います。特に②が壁になったみたいです。
RSSリーダーを入れれば更新状況を把握できるのですが、RSSリーダーを定期的に見るのも面倒、といった風でした。

この状況は、チームのあるメンバが小さいRSSリーダを自作して配ったことにより解消されました。
IPメッセンジャーのようにタスクトレイに常駐していて、RSSが更新されると、アイコンがピコピコ光ります。

効果バツグン。Wikiを読み書きする人が飛躍的に増えました。
時間があればオープンソースで公開したいかも。

「KPT」や、「みんなでGTD」の話はまた書きます。

マネジメントとテクノロジーのことを交互に書いていこうと思います。
今日はテクノロジー編。

今回のプロジェクトでは、DIコンテナを導入しました。
AOPも使えるわけですが、その使いどころについて。DIのことはまた別の機会に書きます。

結果から書いちゃうと、使ったのはメソッドのトレース(メソッドの入出力値をログ出力。いわゆるTraceInterceptor)だけでした。DIコンテナにデフォルトでくっついてきたInterceptorはイマイチだったので、自作してます。

もともと持っていた自社フレームワークにDIコンテナを組み込んだので、AOPの例題にありがちなトランザクションの管理や例外の処理といったところはフレームワーク側で管理。トレースくらいしか使い道がなかった、という説もありますが、このトレースが重要。

たとえば、複雑な計算をするライブラリを提供するチームにとっては、何を引数にメソッドが呼び出されかを記録できていないと、不具合が発生したときの調査ができません。これをメソッド単位で自力で書くのと、Interceptorの設定だけで済ませられるのでは大違いです。

メソッドのトレースなんてどうってことない話なんだけど、ないと困る。
これだけでもAOP使う価値があるかと思います。





朝会は定番のプラクティスですよね。
私のチームでもしていました。人数は8~10人くらいでこんな風。


・毎日定刻に実施。所要時間はMAXで15分。突っ込んだ話が必要な場合は朝会後に個別に。
・バックログを印刷した紙を全員に配布(チームの残タスクが一通りのっているもの。フォーマットは、課題管理表に近いイメージ)
・各メンバ順番に、バックログを見つつ、「昨日やったこと、今日やること、問題点」を報告。リーダーに報告するのではなく、チームに報告。
・作業机を囲んで、スタンディングでやる。


スクラムの日次ミーティングを意識した感じでしたが、手元の本を見た感じだと、スクラムだとスクラムマスタが各メンバに聞いていくんですね。私はリーダーが休める(笑)チームを作りたかったので、各メンバがチームに報告するスタイルにしました。


スタンディング、と、バックログを印刷して配る、というのが良かったかなあと。
スタンディングは短く済むのと、ちょっと目立つのがいい感じ。

バックログは紙で印刷しても、カンバンみたくどこかに貼ってもいいんだけど、報告時に何か見るものがあったほうがいいのは確か。


ここまではチーム人数が減って10人前後になってからの話です。
それより前には、最大で30人超のメンバが配下にいたので、チーム内を5つのサブチームに分けてました。


30人で一斉に朝会をするわけにもいかないので、朝会の運用は各サブチームに任せていて、特にケアしませんでした。朝会をしていたチームもあれば、していないチームもありました。内容もばらばら。今ならこうします。


・各サブチーム内で個別に朝会を開いてもらう。↑に書いてある内容に大体沿ってもらう。
・バックログはチーム内で共有する(サブチームではなく)。印刷して配るときには、各サブチーム担当分だけ抜き出して印刷しても良いけど。


サブチームとして独立して動きつつ、チーム全体にも気を配ってもらうには、チーム内でバックログを共有して、誰が何をやっているかを、誰でもすぐにわかる状況にしておくのが大事かと。


当たり前かもしれないけど、意外とできてないよね。