スクラム『で』教育する~メンバーを育てながら開発を進める~
はじめに
#この記事は、「新米スクラムマスターの思考メモ」シリーズの番外編です。最終回の記事でも述べていたように、スクラムで教育するということについて執筆します。今回の記事も主観多めでお送りいたします。
今回の記事は、「スクラム『で』教育する」という話で、スクラムの場でどのように社員教育をすべきなのかという点にフォーカスしています。「スクラム『を』教育する」いう話ではありませんのでご注意ください。
スクラムと教育の相性は?
#個人的には、スクラムと教育の相性は決して良くはないと思います。
スクラムガイドでは、チームについて以下のような記述があります。
スクラムを構成するのは、作業に必要なすべてのスキルや専門知識をグループとして備える人たちである。また、必要に応じてそうしたスキルを共有または習得できる人たちである。
つまり、開発プロセスでは要求分析~実装・テストまで、技術要素はインフラ、フロントエンド、バックエンド、CI/CDなどあらゆる要素をチームとしてカバーできる状態であることが必要ということです。さらには、必要に応じて足りないスキルを習得するということが重要であるともいっています。
スキルを習得するとはいっても、カバーすべき領域や深さは開発者によって異なります。すでに開発経験が豊富である開発者と、入社して初めてスクラムチームにアサインされた新入社員とでは、スキル習得にかかる時間が異なるのは容易に想像がつくでしょう。
中には、「そもそもスクラムチームとしてフルスタックとなるように人選すべきである」という意見もあるかと思いますが、人材不足や案件都合により難しいケースもあると思います。弊社の社内案件の場合は、新入社員教育も兼ねていました。上手く新入社員を教育するための工夫も必要です。
スクラムを教育の場として機能させるには
#スクラムを教育の場として機能させるにはどうすればよいでしょうか?
ここでは3つほどお話しして見たいと思います。
まずは簡単ではないことを認識すること
#まず、大前提として開発と教育の両立は非常に難しいです。当然、教育に時間を割くのであれば、その分開発効率は下がるのが自然です。しかし、開発スピードを維持することが求められるとすると、結果として教育が後回しにされ、十分な教育が行えない可能性が高くなります。
そのため、スクラムチーム(特にPO)は開発スピードを維持することが難しいことをしっかりと認識すべきです。もし仮に、教育を実施しつつ開発スピードも従来と変わらないことを追い求めるのであれば、それ相応の覚悟と努力が必要になると思います。ときには、チーム外にも助けを求めることが必要になるでしょう。
人を教育することは、みなさんそんなに甘くはないですよ。
教育に関する内容もスプリントゴールに掲げる
#前節の内容にも関連しますが、スキル習得は個々の開発者が自主的に行うケースも少なくないかと思います。
個々の開発者に委ねるのではなく、本当にチームとして喫緊に必要なのであれば、教育に関する事項はスプリントゴールに掲げるべきです。つまり、スクラムの開発の中に「教育」というSBIに組み込んでしまえということです(実際に社内案件でも実施していました)。例えば、「開発者全員がAWSで基本的なWebサーバ構成を構築できる」がSprint Goalで、それに対するSBIとして「AWSのチュートリアル実施」や「Webサーバのトライアル環境構築」などでしょうか。
あるいは、スプリント中にスキル習得のための時間枠を確保することも1つの方法かなと思います。例えば、「スプリントの約10%の時間をスキル習得のために当てる」とPOと開発者が合意しておく方法です。
スクラムマスターが鍵を握る
#個人的には、スクラムでの教育が上手くいくかどうかは、スクラムマスターによる部分が大きいと感じています。
スクラムマスターとして、教育にどれくらいのリソースを割くべきなのか、POとDEVの間に上手く入って調整する必要もあるでしょう。また、教育やスキル習得のためにチーム外への協力を求める、ステークホルダーにも教育と開発を並行して実施する難しさを理解してもらう。ときにはスクラムマスター自らが、スキル習得や教育のためのサポートをすることだってあるでしょう。
例えば、私は以下の内容に取り組んでいました。
- 新入社員のコーディングする時間を増やすため、モブプロ1部屋からペアプロ2部屋に変更
- 新入社員の伸ばしたいスキルに合わせてSBIを割り当て
- Javaの実装スキルに不安がある場合は、Javaのソースコードを修正するSBIを優先的に割り当て
- Javaの実装スキルが十分な場合は、より幅広いスキルを身に着けさせるためにインフラや他プログラミング言語のSBIを割り当てる
- 教育のための研修用テキストを、教育チームから提供受けられるように交渉する
- もし未経験の技術トピックがあれば、座学を行う(これは、私が元々講師経験があるからできることかもしれません(笑))
- Spring Framework未経験のメンバーに対して、ソースコードの文法面と各レイヤーごとの実装方針について解説
私自身、すべてを上手くできていたとは胸を張って言えるわけではありません。しかし、スクラムに社員教育という要素があるときには、スクラムマスターが重要な役割を果たすべきときがあると思います。
また、スクラムマスターとして教育対象者(教育を受ける側)にも、スクラムの「5つの価値基準(確約、集中、公開、尊敬、勇気)」を改めて意識づけすべきです。例えば、分からないことが消化しきれずにどんどん積り重なっていくと、自信を失ったり質問もしずらくなり、5つの価値基準の実践とは逆行する遠ざかる方向に向かうことになると思います。
ネガティブになるのではなく、分からないことがあるならなおのこと、5つの価値基準をしっかりと実践し、自身のスキルアップにつなげていきましょう(わからないことはハッキリ伝える、勇気をもって質問するetc...)。
おわりに
#今回は、「新米スクラムマスターの思考メモ」シリーズ番外編で、スクラム『で』教育するためにはどうしたら良いかということについて記載してみました。
もし、スクラムが教育の場も兼ねていて、悩んでいるスクラムチームがあればご参考になれば幸いです。