思考と現場の間で

「いいサービスづくり」のために、組織づくりやソフトウェア設計など、考えていることを書きます

ソフトウエア開発は、作業が何も見えない

何もしないと何も見えない

作業がどこまで進んでるのか、どのような課題があるのか、メンバーが何を考えているかなど、日々仕事を進めていくためには「情報」が必要です。現状の状態が分かれば、目標との差分がわかる。その差分を順番に前に進めていけば、目標にたどり着くはずです。

トヨタ生産方式に代表される「見える化」は、例えば工場の工程のなどだとわかりやすいかもしれません。どこにものが置いてあるか、どう作業をしているか、一つ一つ目で見ていくのが第一歩じゃないでしょうか。同時に計測していくなど、より現状を鮮明にしていくような形です。

方やソフトウェア開発の場合どうでしょうか。職場を見ても全員パソコンの前に向かっていて、何も見えません。一人ひとりの席に行って画面を眺めることはできますが、それで課題が見えるかどうか…。チームで仕事をすることも多いので、チームの関係性というパラメータもあるとするとやってる本人たちでさて周りを見通すのは難しいのではないでしょうか。勝手に見える化されることはありません。

意識的に見える化する

勝手に見える化されないとなると、ソフトウェア開発の場合は、「意識的に見える化する」必要があるということですね。日々の開発の中で、頭の中に留めとくのではなく、表に出す。

Friday 8th, a.m.


例えばこのようなカンバンに、タスクや課題などを付箋に書いて常に見えるようにしておくと、チームで自分が何をやっているか、他人が何をやっているかが一発で見られます。誰かが同じタスクをやり続けているのであれば、何か進める上での問題があるのかもしれないし、予定されたタスクが予定日に残っているのであれば、予定通り進んでいないことも一目瞭然となります。

プロセスに見える化せざるを得ない要素を入れる

かんばんのようにアウトプットをしつつ、それを確認したり更新したりカイゼンしたりし続ける必要があります。そこで開発プロセスと組み合わせて行く必要があります。以下の絵は、アジャイル開発プロセスの一つである「スクラム」のプロセスを1枚の絵にしたものです。

slide.meguro.ryuzee.com

スプリントプランニングで計画とタスクの見える化を行う、毎日行われるデイリースクラムをカンバンの前で行い、その日の作業を確認する、レトロスペクティブ(ふりかえり)で全員で課題を見える化し、その解決策を検討する。

そのようなプロセスを必ず行うことで、常に現状の状態が見える化され、更新されていく。見える化のやり方もカイゼンする。それが続くと、チームがどんどん変化し、良くなってきます。

感情の見える化も大切

ソフトウェア開発は知的労働です。日々の感じていることや感情が作業のパフォーマンスに影響します。マイナスの要素は環境を整えることで、パフォーマンスが出るようにする必要もあります。そこで、ニコニコカレンダーのようなツールを使ったり、レトロスペクティブ(ふりかえり)で嬉しかったこと、楽しかったこと、嫌だったこともざっくばらんに伝えあうことで、感情が見える化されます。

感情が見える化されれば、マイナス要素を無くす努力をチームで行うこともできます。周りがうるさいとか、椅子が座りにくいとか、体調が悪いとか。その辺の対処もできたとしたら、パフォーマンスが上がりますよね。

チーム全員で工夫しよう!

Discussion after the daily stand up meetings.

例えば、強いプロジェクトマネージャーがいる場合、その人が進捗も何もすべて把握するために、自分だけ認識できる状態を作ってしまいます。そうなると各メンバーはただ言われたことを作業するだけになります。ただ、ソフトウェア開発は作業の中でも多くの課題があり、課題の本質はほとんどメンバーが持っています。なので、メンバー一人ひとりが考えて解決していったほうが効率よくカイゼンできます。そして、自分で低減した課題がどんどん解決していけるとしたら、モチベーションも上がるものです。

そのようなその繰り返しによって、いい開発チームを創っていきたいですね。