脱SES業界!Web系開発に行く前に勉強するべきこと!【スクラム開発編】

この度、SES業界から自社系Web開発企業へ転職が決まりました。 新しい会社でお荷物にならないよう勉強しておこうと思ったのですが、何勉強しておこうかなっと。。。

技術的なことももちろん必要ですが、SES業界とWeb開発業界で最も違うのは、開発手法なのかなと思った次第です。

SES業界では納品期日が重要視されるため、要件を満たすための機能を洗い出し、期日内に完成させるために必要な人員を決定する『ウォータフォール』での開発が一般的である。

しかし、このウォータフォールの開発は、大体の現場では機能しない。ウォーターフォールは、正確な見積もりができて、初めて機能するからである。

エンジニアはエスパーではない。今までの経験から、1つの作業にかかるであろう工数を予測しているだけである。例えば、1ページに費やす工数を機能の数や複雑さなどからざっくりn人日っと言った感じである。

そのため、最初の見積もり段階ではリスクを入れてコストを出すのが一般的だが、他社に取られる可能性があるため、費用を抑えて提案しないとそもそも発注をもらえないこともある。

その結果、見積もりどおりにプロジェクトが動かず、炎上案件となってしまう。他にも失敗する要因はあるが、ここでは割愛する。

本記事では、スクラム開発はどうなの?っと言う視点で記載していく。

スクラム開発とは

f:id:shinji-tec:20210221173921j:plain

『スクラム』の語源を気にしたことはあるでしょうか。ラグビーで使われている用語で、小競り合い『小競り合い』『柵を巡らす』とっ言った意味があります。

しかし、大事なのは肩を組んで相手に負けないよう『一致団結する』様から『チームで目標を達成する』という意味で使われています。

スクラム開発では、この『チーム』が肝となります。今のチームがどれくらいの力を持っているのか、良い点はなにか。悪い点はなにか。それを解決するためにはどうすればよいか。このような質問を、短いスパンで定期的に行い、チームをブラッシュアップさせることで、認識の齟齬を減らし、効率の良い開発ができるようチームが『成長する』ようにします。

スクラム開発の進め方

f:id:shinji-tec:20210221174551j:plain

スクラム開発では、1週間や2週間といった、短いスパンを1サイクルとして開発を行います。このサイクルを、スプリントといいます。プロジェクトによりますが、その中で設計から開発、試験、評価などが行われます。

ウォーターフォールのように、すべての要件に対してすべてを見積もることはありません。そのため、納期を持つプロジェクトでは、スクラム開発は機能しません

このときに大事なのは、評価、振り返りを行うことです。そして、振り返りには必ずKPTなどの基準を設けるようにすることです。

KPTは、Keep(継続)/Problem(問題)/Try(試み)の頭文字を取ったものです。今回のスプリントで継続すべきこと、問題に対する解決策、次のスプリントで試すことを振り返ります。

記憶が新しい短いスパンで振り返りを行うことで、チームの成長を促します。

スクラム開発におけるエンジニアの役目

f:id:shinji-tec:20210221200604j:plain

スクラム開発では、以下の役割を持ったメンバーでチームが構成されます。

  • スクラムマスター
  • プロダクトオーナー
  • 開発者

ここでは、スクラムマスター、プロダクトオーナーの役割は省きます。

開発者の役目は、スプリントでやると決めた作業(スプリントバックログ)をこなすことです。 そして、振り返りができるようKPTなどの指標をメモしておくと良いかもしれません。

まとめ

  • スクラムは『チーム』が『目標』に向かって『成長』するためのもの
  • 成長するために、短い間隔で振り返りを行う
  • 『納期』が明確に決まっているプロジェクトでは、スクラムは機能しない