この記事は『CRESCO Advent Calendar 2021』 13日目の記事です。

 

どうも、ちゃんかわです。
毎年恒例のアドベントカレンダーの投稿です。今回は、研修の参加レポートになります。

株式会社Odd-e Japan様主催の認定スクラムデベロッパー研修(CSD®)について、研修の内容とそこから学んだことをまとめて紹介したいと思います。

認定スクラムデベロッパー(CSD®)研修・トレーニング
https://www.odd-e.jp/ja/service_csd/

今回の記事を書くに至った経緯

昨今、アジャイル開発というワードを聞く機会が増えてきている中で、弊社、特に私が所属している部門は、アジャイル開発や DevOps の推進に力を入れています。そういった中で、認定スクラムマスター(CSM®)研修や認定プロダクトオーナー(CSPO®)研修を受講する方が増えてきました。

一方で、認定スクラムデベロッパー研修(CSD®)を受講する方は少なく、どのような内容の研修なのかを知る機会があまりありませんでした。研修中に、プログラミング等の実技が含まれるということや、完全オンラインでの研修ということもあって、すこし不安に思う方もいたようです。(研修の案内に、学習意欲の低い方はご遠慮ください。とやや強い言葉の記載があるのも要因としてありそうです。)

それらの不安を払拭すべく、どのような研修で、どのような雰囲気で、どういった方にお勧めなのかをまとめて、受講を迷っている 1 人でも多くの方が受けてみようかなと思えるよう後押ししたい、という思いからこの記事を書くに至りました。

また、この研修で、スクラムで開発する1エンジニアとしてできることは何かを再認識できたのと、これからのエンジニアに必要なスキルが習得できる点が良かったため、この研修の良さを伝えたい思いもありました。

研修のスタイル

Google Meet を使用した完全オンラインの研修で、Miro と呼ばれるマインドマップツール上で研修が行われました。

Miro 上に研修資料や、各種研修に必要なリンク先等が記載されており、各種振り返り等も Miro 上で実施されました。普段受講する研修と異なり PowerPoint のスライドが使用されていなかったため、少し新鮮に感じました。

デベロッパー向け研修ということもあり、コーディングも多く研修内容に含まれており、研修内容の割合は、講義 30 %、コーディング 60 %、振り返り 10 % ぐらいでした。
AWS の Cloud9 と呼ばれる IDE を使用して、2 人 1 組のペアプログラミングの形式でコーディングを行いました。

各テーマが終了するごとに振り返りが実施され、学んだことや分からなかったところ、質問したいことを皆で共有する場が設けられました。

研修の内容

研修の内容は、研修開始の初めに講師と受講者間の中で相談しながら決めました。
私が受講した時のアジェンダは以下の通り。

  • アジャイル開発の概要
  • TDD
  • ATDD
  • CI/CD
  • リファクタリング
  • ペアプログラミング
  • Incremental Development

講義は、なぜこれらの手法が必要なのかといったところから、どのように実践するかといった具体的なやり方まで内容に含まれていました。また、講師によるライブコーディングも行われ、実際にどのように手を動かすかを目で見て体感することができました。これは非常によかったです。

コーディングは、課題が最初に提示され、それをコーディングしていく中で、TDDやリファクタリングを行い、ペアの方と学びを共有しながら進めていきました。コーディングの言語は、研修概要にも記載がある通り、Java でした。課題自体は難しくなく、Java に精通していなくても十分に実施できる内容でした。(私自身も、Java での開発経験はほとんどありませんでしたが、特に問題はありませんでした。)

研修の雰囲気

講師 2 人、受講者 7 人の小規模な研修でしたので、話しかけやすく、質問もしやすい雰囲気でした。
講師の方も、研修の内容だけでなく、アジャイル開発やスクラムに関する質問にも正確に回答をしてくださり、非常に良かったと思います。

コーディングは、ペアごとに各部屋に分かれて、二人きりで常に会話をしながらペアプログラミングを実施しました。初対面ということもあり、最初は少し緊張しましたが、コーディングを進めていく中で打ち解けて行けたかなと思います。

時々、講師の方が様子をうかがいにやってきましたが、特に監視されているような感じもせず、気楽に質問できました。

学んだこと

TDD や ペアプログラミング、リファクタリング、CI など常にリズムを意識した取り組みが重要だと感じました。

スクラムでもスプリントとよばれる週単位でのサイクルが回っていきますが、例えば、ペアプログラミングでは、ナビゲータとドライバの役回りを一定時間で交代したり、TDD では、テスト実装とコーディングの周期をなるべく一定に保つなど、一つ一つの手法にリズムが意識されていました。

TDD について、私は今まで、単体テストのみに適用できる手法だと思い込んでいました。研修では、受け入れテストを先に用意する ATDD(Acceptance Test Driven Development)が紹介され、ウォーキングスケルトンを利用した受け入れテストのコーディングなど、TDD とは別のループで回す手法を学ぶことができました。

また、Primitive obsession(基本の方に頼りすぎている状態) や Data Class(メソッドがないクラス) などのリファクタリングの指標であったり、テストコードの構造化や Data Table など、コードやテストの品質を高める細かい手法も学ぶことができました。

どんな人におすすめか

アプリを実装している人、これからアジャイル開発に開発者として従事する予定の人、新人さんとか特におすすめだと感じました。

アジャイルの基本的な考え方を学べる点と、コードを実装するうえでの取り組み方、細かい技法を見て学ぶことができる点がおすすめポイントです!現在スクラムに取り組んでいない方でも、エンジニアとしての考え方は生かせるところが多いと思いますので、特に問題ないかと思います。

スクラムマスターやプロダクトオーナーになる予定の人は必須ではないかと思います。認定スクラムマスター研修や認定プロダクトオーナー研修などを受講されるのが良いかと思います。

最後に

この研修は、エンジニアとして学ぶ点が多くあります。座学だけでなく、ペアプログラミングを通した実践と、学んだことを皆で振り返り整理する、まさしくスクラムでの動き方が、研修においても生かされています。

宣伝っぽくなってしまいましたが、認定スクラムデベロッパー研修に興味を持たれた方は、ぜひ受講してみてはいかがでしょうか。

以上になります。