スクラム開発における「開発者」の役割は何ですか?と聞かれて、具体的に答えられる人は少ないと思います。
次のプロジェクトは「スクラム開発」でやってほしいと
言われたんですけど、開発者として何を心がければ良いか分からず……
ウォーターフォール開発と何か変える必要があるのか悩むよね。
スクラム開発における開発者の役割や責任、具体的な業務を解説するよ!
・スクラム開発における「開発者」とは何かを理解できる
・スクラム開発における開発者の役割や具体的な業務がわかる
・スクラム開発で開発者として活躍するためのノウハウを知ることができる
スクラム開発での開発体制や役割に関しては、以下の記事で解説しています。
スクラムにおける開発者とは?
スクラム開発における開発者とは、スプリントを通して利用可能なインクリメントを作成する人のことです。
ウォーターフォール開発では、以下のように役割ごと担当する業務が分かれていることが一般的でした。
スクラム開発では、開発者は以下4つを心がける必要があります。
[スクラム開発]
・機能横断:仕事を成し遂げるために必要なすべてのスキルを持つ
・自己組織化:どうやって仕事を進めるか(How)は自分たちで決める
・自己管理:1スプリントにどれくらいできるかは自分たちで決める
・協調的:全員で協力してスプリントゴールを目指す
これら4つを実現するためには、自身の専門性を発揮しながら、専門外のスキルを学び、それを教えられるレベルまで学習しようとする姿勢が大切です。
上記のようなマインドの人材を「T字型の人材」と言います。
役割・責任
開発者が必要とするスキルは幅広く作業の領域によって異なりますが「スクラムガイド」では、以下の内容が開発者の責任として記載されています。
[開発者の責任]
・各スプリントにおいて、利用可能なインクリメント及び、それに関連する全てもの側面に責任を持つ。
・専門家として、各自インクリメントや作成物に責任を持つ。
[開発者の役割]
上記責任を果たすために、以下の役割を担います。
・スプリントの計画を作成する。(スプリントバックログを作成する)
・完成の定義を守り、品質を作り込む。
・スプリントゴールに向けて、毎日計画をアップデートする。
[開発者のスプリント中の役割]
・スプリントのスコープとなっているプロダクトバックログアイテムに取り組み、完了させる。
・プロダクトバックログに関する不明点に関して、プロダクトオーナーからの説明を求める。
・デイリースクラムにて、毎日の進捗状況の追跡とメンバーが抱える問題や障害を報告・共有する。
・お互いにレビューを実施し、必要に応じて他の開発者を支援する。
・自分のタスクが終わったら、他の人のタスクを手伝う。(優先順位が高いものを片付ける)
具体的な業務
開発者は、インクリメント及びそれに関連する全ての側面に責任を持つ必要があります。
プロジェクト立ち上げ時期では、そのプロジェクトにアサインされていないことも多いと思いますが、あらかじめプロジェクトに関わることが決まっている場合もありますので、それぞれの時期でどのような業務を実施するか確認しておきましょう。
[プロジェクト立ち上げ時期]
・インセプションデッキを作成する。
特に「やらないことリスト」「技術的な解決策を描く」「夜も眠れない問題」に関しては、開発者観点で記載に漏れがないか確認しておきましょう!
「インセプションデッキ」に関しては、以下記事で詳しく解説しています。
[プロダクトバックログ作成時]
・ユーザーストーリーの内容を確認する。
・スプリントスケジュール(期間、インベントの実施日、タイムボックスなど)を決める。
・初回スプリントのプロダクトバックログアイテムの見積りをする。
ユーザーストーリーは、ユーザーの要望が反映されたものになっているか、優先順位に違和感がないか、開発者の観点で不足している機能がないか、などの観点で確認しておきましょう。
「ユーザーストーリー」に関しては、以下記事で詳しく解説しています。
[スプリント中]
スプリントプランニング
・スプリントゴールを確認する。
・スプリントバックログを作成する。
・スプリントバックログの見積り時間が、スプリント中の稼働時間内に収まっているか確認する。
・プロダクトオーナーとスプリントスコープ(実施するPBI)に関して、調整する。
デイリースクラム
・昨日からの作業状況、本日の作業予定、課題・問題・解決したことの共有をする。
リファインメント
・現在のスプリントで、PBIの見積誤りがあれば、POに共有する。
・追加・変更があったPBIの内容に関して、POに質問する。
・プロダクトビジョンの確認やリリース計画に関して、POと認識を合わせる。
スプリントレビュー
・レビュー前に、スプリントで達成できなかったことをPOと認識を合わせる。
・レビュー前に、インクリメントを披露するデモの準備をする。
・インクリメントを参加者へ向けてデモする。
・参加者からのフィードバックをメモする。
レトロスペクティブ
・スプリント中の改善事項を検討し、次のスプリントでのアクションを検討する。
「スクラムイベント」に関しては、以下記事をご確認ください。
開発者に必要なスキル
- アジャイル開発プラクティス
チームは「機能横断」「自己組織化」されたチームであり続ける必要があります。
より広範な分野の業務ができるように、個人が成長できる機会を設けるため、スプリント中にプラクティスを適応し、各自の成長につながるプロセス作りをすることが大切です。
そのため、開発者は「ペアプログラミング」「自動化された回帰テスト」「テスト駆動開発」など、アジャイル開発で代表的なプラクティスは身につけておきましょう!
- コミュニケーション能力
自身の作業状況や課題、改善策をお互いに連携することでスプリントゴール達成へ向けた透明性が上がります。
また、小まめにPOと状況の連携をすることで問題が発生した場合の対処が早くなり、リスクの軽減ができます。
これを実現するために、開発者はコミュニケーション能力も必要です。
- 改善力、順応性
これまでウォーターフォール開発を主体で実施してきた人は、一度決めた仕様を変更したり、直近の開発スコープが変わることに不安を覚えるかもしれません。
スクラム開発では、顧客のフィードバックや市場状況の変化によって、プロダクトの方向性や次のスプリントで実施することが頻繁に変わります。
アジャイルのフレームワークに順応し、スプリントを重ねながら、より良いプロセスに改善しようとする姿勢が大切です。
はじめはスプリント計画通りに行かないことがほとんどです。
そこから改善し、より良くしていくのがスクラムだよ!
スクラム開発者として活躍するためのノウハウ
これから開発者としてスクラム開発に参加する人は以下を意識してみてください。
すでに実施している人は、自分がどのくらい実施できているかチェックしてみてください。
- プロジェクト開始時のリスクをPOに共有できる
- PBLがReadyの状態の定義(インプットやアウトプットなど)をPOと認識合わせができている
- PBIの内容が曖昧なままスプリントバックログを作成しない
- 優先度が高いPBIから実施できている
- 自身の専門分野のPBIばかり担当しない
- スウォーミングの考え方が実施できている
- 知識や技術がない場合は、調査のためのSpikeを登録できる
- スーパーエンジニアの場合(がいる場合)は技術サポート役になる
- ドキュメントや試験などをそのスプリント内で完了させる
- リファクタリングを小まめに実施し、技術的負債を最小限にする
おすすめの資格
スクラム開発者には、以下の資格がおすすめです。
・認定スクラムデベロッパー(CSD)
Scrum Alliance認定スクラムトレーナーによる研修を受講し、受講後に認定試験の受験資格が与えられます。認定試験で合格すると「Scrum Alliance」から認定証が発行されます。
「スクラム開発における開発者」まとめ
[ポイント]
・スクラムにおける開発者とは、スプリントを通して、利用可能なインクリメントを作成する人
・開発者は、インクリメント及びそれに関連する全ての側面に責任を持つ
・開発者は、スプリントバックログを作成し、デイリーで進捗をアップデートする役割がある
・プロジェクト立ち上げ期は、インセプションデッキの内容を開発者視点で漏れがないか確認する
・プロダクトバックログ作成の時は、スプリントスケジュールを決め、PBIの見積りをする
・スプリント中は、デイリー、リファインメントで進捗を見直し、レビューでインクリメントをデモする
スキルアップへ向けたおすすめ記事
実際に私が読んだ本の中で「絶対に損しない」初心者が読みやすい本をピックアップしてレビューしています。
教本選びのご参考になれば幸いです。
本を読んでいる暇がない!活字は少し苦手。。。という方は、動画教材がおすすめです。
通勤中や就寝前などに必要なセクションのみ選択して学習できるため学習効率が非常に高いです。
会社の研修費用などを利用してプログラミングスクールで新たなスキルを取得を検討してみるのも良いと思います。
まずは、無料体験を実施し、色々なプログラミングスクールを試してみて、チャンスがあれば会社費用で自分のスキルアップや市場価値の向上を図りましょう!
参考資料
・スクラムガイド
・IPA-アジャイル開発の進め方
・スクラムを失敗させる51のアンチパターン
・Odd-e Japan
コメント