記事の内容
- モブプログラミング入門の講座を受講したこと
- モブプログラミング導入に関する疑問について、私が考えたこと
モブプログラミングや講座の内容については深く扱いません。
受講した講座
『リーダー&マネージャーのための チームの生産性をあげるモブプログラミング入門』
モブプログラミングとは
モブプログラミングとは、チームメンバーが集まって一緒に同じタスクに取り組む手法です。
モブプログラミングを最初に広めたとされるWoody Zuill氏は次のように説明しています。1
All the brilliant minds working on
the same thing...
at the same time...
in the same space...
on the same computer...
Just like a real mob.
また、モブプログラミングにルールというものはなく、自分たちに合った方法を見つけることが推奨されています。
(ところで"real mob"とは何を示しているのでしょうかね?”モブ(mob)”とは「破壊的で無秩序な集団」をイメージさせる単語のようです。"real"を付けることで「生産的で組織的な集団」というような意味になるのでしょうか?)
モブプログラミングを体験してた感想
モブプログラミングに入門した背景には、開発現場で課題に感じている点があります。それは、チーム内での情報の非対称性や、それぞれの知識が共有されない点、また特定のメンバーにタスクが集中する、といったことがあります。このような課題を解決するために、メンバーが一緒に作業をするような手法に興味がありました。
そのような考えで参加したところ、体験を通して課題の解決につながりそうな期待が感じられました。初対面の参加者でチームを組んだのでぎこちなさはありましたが、それでもアイデアを出して議論したり出来ていたので、情報や知識の共有について期待できそうです。また、全員で最後までやりきるので一部の工程がメンバーに集中するような状況も防げそうだと感じました。モブプログラミングを導入することで、現場で課題に感じていることについて改善が期待できるかもしれません。
モブプログラミング導入について
さて、今回体験したモブプログラミングを現場に導入する、という観点でいくつかの疑問について考えてみたいと思います。
上司や顧客への説明は必要なのか
上司や顧客への説明は常に必要ではないと思います。何故なら、モブプログラミングは開発の手法だからです。開発の手法とは我々が日々の業務を進める手段であり、結果を出すための手段として基本的には一任されているものではないでしょうか。なので設計やリファクタリングと同様に、説明が必須とは限らないと思います。
(ただし説明できなければならないとは思います)
モブプログラミングは生産性あげるのか
講座のタイトルにも「チームの生産性をあげる」とありますが、システム開発における生産性は非常に難しいテーマであると認識しています。例えば、生産性の観点はさまざまです。2 また、学習や教育など人材育成的な側面は定量化が難しい部分です。3 なので、導入にあたって生産性が焦点になる場合は慎重に議論したほうがよさそうです。
(プロジェクトの生産性と組織の人材育成のバランスをどう考えるか、という疑問をぶつけるとどのような回答が返ってくるかはところです。)
どのように導入するか
新しいプラクティスや技術を導入する際は、小さく始めるのが良いと思います。関心のある小数のメンバーと小さな課題について始めるのが良さそうです。”モブプログラミング”というキーワードも使わず、単に”一緒に作業する”といもの良いかもしれません。新しい試みに対して「良い結果になりそうなイメージが持てる」ということが大切だと思います。
まとめ
「モブプログラミング入門講座で体験したこと」「導入にあたっての疑問について考えたこと」について記事にしてみました。
私自身は、モブプログラミングのような一緒に作業する機会を積極的に導入することにより良い結果になりそうなイメージを抱きました。というのも、多くの知識や経験が失われていた活用できいないと感じているからです。開発や業務に関する知識や経験を共有したり、迅速なフィードバックを得られる機会を導入することについて、積極的に考えたいところです。
-
人材育成への投資は経営ポリシーによって決まる。『エンジニアのためのマネジメント入門』 ↩