ござんす。
間違えました。こんにちは、いっとくです。
来月でエンジニアになって2年になるのですが、なんというか学ぶべきことが多すぎませんかね、エンジニアって職業は。
プログラミングだけ勉強していればいいかと思いきや、サーバーだのシェルだのネットワークだのAWSだの色々出てきたかと思えば、開発手法に設計、はてはチームビルディングやて…??
ラーメン屋でアルバイトしていた時なんて、一気に大量のチャーハン作れるだけで英雄になれたのに。(ラーメン屋さんごめんなさい)
そんな色々勉強することがあるエンジニアという職業ですが、今はとりわけスクラムというものを必死こいて飲み込んでおりまして、今回はめっちゃ参考になった本があるのでそちらの紹介です!
スクラムに興味を持ち始めたきっかけは気づいたら流されたというだけなのですが、やっぱり時代はアジャイル開発でしょ!!っていうね。
自分が今までウォーターフォールでやってきたのかアジャイルでやってきたのかも定かじゃないくらい適当な経歴を積み重ねてはいるのですが、一念発起してスクラムを勉強することにしたわけでございます。
そして早速そんな旅のお供にしている本がこちら。
スクラム経験者複数名に同じタイミングで激推しされたので、「これは天啓だわ…!」と思い、いきなり購入。ブートキャンプなんてビリーズブートキャンプ以外で聞いたことないよ。
とりあえず一気読みしたのですが、天啓だっただけあってめちゃくちゃ良かった!
「スクラムブートキャンプだけ読んで、2ヶ月位スプリント回したらもうOKです」って言われたのですが、たしかにそれくらいのわかりやすさと実践しやすさでした。
表紙の下の方に、“はじめて「スクラム」をやることになったら読む本!”って書いているのですが、本当にその通りで、ここまで表紙の売り文句に納得したのはもしかしたら初めてかもしれない。
そんなわけで、僕も「この本読んどけば間違いないよ?」ってドヤりたいので、スクラムや本の内容について触れていこうと思います!!
スクラムとは??
まず本書のテーマになっているスクラムとはなんぞやという話ですが、これはアジャイル開発手法の一つです。
ウォーターフォール開発と比較されることの多いアジャイルですが、ざっくりと違いを説明するとこんな感じ。
ウォーターフォール … 最初に成果物の要件を定義し、設計し、実装し、テストしリリースするという手順を経て完成させる手法。基本的に前の工程に戻ることなく、一つ一つの工程を進めていく。
アジャイル … 最初に全ての機能を見積もるのではなく、小さなリリースを繰り返して、成果物を完成させる開発手法。なんとなくイケてる気がする。
家を作るときは建築士が書いた設計を元に、大工さんなどの現場の人が作業して成果物(家)を完成させますよね。こういう手法がウォーターフォールです。というか家に限らず世の中の製造業はほとんどウォーターフォールで完成させると思います。
しかし、この手法をソフトウェア開発に当てはめた時、人類は大きな問題に直面しました。
それは、作業にどれくらいの時間がかかるのかの見積もりが全くできなかったということ。
世の中の製造物は、作るものが決まって何で作るかが決まれば、あとは組み立てるだけなので、ある程度正確な見積もりが可能です。調達にかかる時間と組み立てにかかる時間はそこまで不確定要素がないですからね。予測が難しいところは最初の要件定義と設計の部分だけでしょう。
しかし、ソフトウェアという見えない製造物は、どうやって実装するのかも実際にやってみるまではわからず、やってみたら意外と時間がかかるということも大いにあります。
そのためどれだけ頑張ってもサイコロを投げて決めたくらいの精度でしか見積もりができなかったのです。期日になったけど半分も終わってないとか、そんな事件が頻繁に起きます。
また、見積もりがうまくいってなんとか完成したとしても、苦労して作った機能が全然使われないということもあれば、ステークホルダーからするとソフトウェアは変更しやすく見えるので、急な変更を強いられたり…とにかくいろいろな問題が発生します。
そんな中、生み出されたアジャイルという考え方。
アジャイルでは小さな期間でリリースを繰り返し、その度フィードバックを得ます。
その結果、1年で何ができるか全然見積もれなくでも、1週間くらいならある程度正確に見積もることができるので、見積もりの精度があがり、さらにはリリースごとにフィードバックがあるので、無駄な機能に多大な時間を使うというようなこともなくなるようになりました。
そんなエンジニアに取って救世主とも言えるアジャイル開発手法にもいろんな流派があります。
その一つがスクラムです!
スクラムは非常にシンプルで決まり事が少ないため、どんなチームでも取り入れやすいというメリットがあります。
しかし、自由であるがゆえにどうしていいかわからないということに陥ることもあるのです。
そして、もう少し何をするのが良いのか知りたい方におすすめなのが、今回紹介したスクラムブートキャンプです!
スクラムブートキャンプは基礎から実践まで手ほどきしてくれる指南書
スクラムブートキャンプは大きく2つのパートに別れています。
前半は、スクラムの定義についての解説になっている基礎編。
ここで、スクラム中に行うべきデイリースクラムなどの各種スクラムイベントのやり方と目的を把握することができます。
そして、後半は実際の運用イメージや多くのチームが直面しがちな問題をストーリー形式で解説する実践編。
この後半がかなり良い!!
前半後半とか言いましたが、ページ数的にはこの実践編が全体の8割を占めています。
スクラムの進め方、各スクラムイベントで陥りがちな問題、意識するべきポイントなどが初めてスクラムに取り組むチームのストーリーと一緒に展開されており、具体的なイメージが湧きやすいことこの上ありません!
めちゃくちゃ読みやすいし、わかりやすいし、あとから困った時のリファレンスとしても使えます。
非常に内容が良かったので、実際にこの本を読んでスクラムに取り組んでみました。
ちょっとスプリント数がそこまで回せていないので、掴みきれていないこともたくさんありますが、現時点で感じたメリットもあるので、そのあたりも書き出してみようと思います!
実際にスクラムを試してみて感じたメリットと難しさ
まずスクラムをやってみて一番のメリットだと思ったのは、短いスパンで頻繁に完成物のレビューを行えることだと思います。
早い段階でフィードバックをもらえるので、今後の方向性がすぐに固まり、実装したものの結局無駄になってしまうという事になる可能性がかなり下げられるなと思いました。
ただ今の段階だと、難しさも感じています。
一つは見積もりが結局難しいということ。
今回は一番簡単と言われている1週間のスプリントで試していますが、それでも正確に見積もるためには何回もスプリントを回してベロシティ(1スプリントで達成できるチームの成果量)を安定させないといけないと感じます。
ベロシティが安定すれば、たしかに予算管理とか先の見積もりの精度が上がりそうな気配はビンビン感じます。
もう一つの難しさは、各スクラムイベントの背景にある目的を意識する難しさ。
やはりこれも慣れだとは思いますが、目的を意識して実践してもまだそれが効率的にメリットに結びついている実感がないと言うか、から回っている感じが脱ぎきれません。
この辺はチームに目的が浸透してやっとうまく回る部分だとは思うので、たしかにいきなりうまく回そうとすると、難しいな〜っていう感じがします。
あと1週間だと完結が難しい作業をどう分割するかとか細かい難しさはいくつかあります。
しかしこの辺の課題をチームが克服できるようになれば相当いい感じで回ると思うんですよね〜。あくまで直感ですが。
もう少し実践してみたいところです。
とりあえず、スクラムの大枠としては
- 作るものを決める
- スプリントの期間を決める
- スプリントでやることを決める
- スプリントでやったことを見つめ直して改善する
- ひたすら3と4を繰り返す
という流れになっていて、それをうまく回すためにいろんなプラクティスがあるから、チームに合うものを取り入れていこうねっていう解釈に落ち着きました。
そんなわけで、まだうまく行ったわけではないのですが、スクラムいい感じそうだし、これから始めるなら最初の1冊としてこの本はすごくよいと思います!
会社によってはチーム全員に配ってるんだって。すご!
以上、いっとくでしたー。さいなら
コメント