Day7アジャイルな問題解決プロセス・BizDevOps

メモはとっていたが、文字起こしをすることで理解が進むという各所の教えに則って、振り返りをしてみようと思う
note自体も作成したことがないため、Soul-in@雇われ院長 Lv.5 の書き方を真似させていただきました、ありがとうございました
非常に中途半端な時期からの開始だが時間があればDay6より前も検討しよう

「アジャイル」という言葉が「ウォーターフォール」の対義語にあることは知識として知っていたが、具体的な運用方法やコンセプトに関しては全く理解していなかった


1.アジャイル式開発方法のコンセプト

前述であるように、そのやり方よりもそもそもそのやり方の根底にあるものだが

「答え」「最初に立てた計画」というもの自体の正しさがわからないことを前提とした開発手法であるということ
あくまでユーザーにとって利用者にとっての価値に対してアプローチすることから始めるが、「そこに対する答えは定まっていない」 ということではなくあくまで「価値」に対して順序をつけてすこしづつ答えに向けてアプローチをしていこうとする考え方 と捉えている
つまり、最終的に価値として大きく完成するのではなく「完成物」を拡大していくという考え方である
変動性の大きいVUCAの時代には、最初から答えや目的のある事自体がmatchしない のである
実例はやはりMVP開発だろう

MVP開発

この場合の価値・要件は「人を乗せるもの」という意味であることは最初から一貫している

正しいもの → ユーザーに対して一定の役割を果たす「価値」
正しくつくる → 答えが定まっていないことを受け入れ適宜変更しながら出荷する「成果物」

2. 価値探索とアジャイル開発

まずは価値を探索し、それをアジャイル開発で回すという方式

先の文を踏襲すると

正しいもの →探索で発見された価値
正しくつくる →アジャイル開発で作成された「成果物」

ということになる
想像された価値というのが「デザイン」ということになろう
価値創造自体も仮説の作成とそれを検証 の繰り返し、だめであれば仮説の作成に戻り、うまく行けば初めて開発の軌道にのる 
開発も小さく出して検証してうまくいかなければやり直し という同じような「繰り返し」作業を価値創造と成果物開発の中で行うこと なのである
ここで再確認だが、求める価値というのはあくまで「相手」によって定義されるものなのである

3.アジャイル開発の方法論

アジャイルの根幹をなすのは以下の2つである

①変動性は受け入れ、活用すべきもの
思っていたものと違った場合にすぐにそれを取り入れて修正する

②価値に主眼を置いたデリバリーに集中する
関わる人にとって、よりよいものを「出荷可能な状態で」を都度届ける

これらは一見すると達成し辛そうではあると思うが、下記にある方法を用いることで変動性をうまく取り入れよりよい成果物を納期内に出荷できるように調整できる(となっている、実際にはまだ取り組んでいないので実感はないが)

すべて書くと冗長になりそうなので、いくつかにしぼってみる

A.スプリント

  • 1サイクルのこと

  • サイクルの最後には成果物を出荷できる状態で出すことが前提

  • 不十分であれば削るかあるいはそれを補足するものもつける

B.プロダクトバックログ

  • 必要な機能を優先順位をつけておく

  • それぞれの項目は「ユーザー側」が主語であるべき

  • 関わる人(開発、ユーザーすべての人)にとって最も優先順位が高いことを優先させていく

  • 各項目はそれ以上細分化できないくらいに分ける (サイロ化を防ぐ)

プロダクトバックログの一例

C.見積もりとベロシティ

プランニングポーカーを用いて作業を見える化することで作業効率を定量的に測る 

プランニングポーカー=チームがタスクの「見積もり」を行うための手法。ポイントを数値化することで、定量的に進捗を把握する。

ストーリーポイント=タスクの「作業量」や「複雑さ」を評価するための単位であり、相対評価。

ベロシティ=スプリントで可能なストーリーポイントを数値化する。そのため、何回かにわたってスプリントを行う必要がある。

D.スプリントレトロスペクティブ

  • スプリント後に次に必要なことを見積もるために行う

  • スプリント後に付箋をつけて洗い出す

  • KPT方式

KPT方式でタスクを洗い出す

大まかにいうとこれらを繰り返しながらタスクを解決して、アジャイル方式を回していく

4. BizDevOps開発

BizDevOpsは、ビジネス(Biz)、開発(Dev)、運用(Ops)の3つの部分を組み合わせた言葉です。簡単に言えば、これら3つのグループが一緒に協力して、商品やサービスをより速く、効率的に作り、改善していく方法のことを指します。 ChatGPTより

開発:新しい価値を実装する
運用:実装された価値を使い続ける

これらから、しばしば開発と運用が利益相反となる場面に遭遇する
では、実務上問題なくDevOpsを進めるためにはどうするか
これらは情報がサイロ化する= 共有されるべき情報が分野ごとに分断されることで起こる ことが原因とされる
これらの解決に対してアジャイル開発は親和性が高い

DevOpsの真髄

Batchsizeを小さくすることで、ユーザーフレンドリーになる(オペレーションの工数をすくなるすることで開発と運用の見える景色を1本化できる)
小さく作ってすぐにフィードバックを得る工程を繰り返すことこそがDevOpsにとって有用なのである

開発を行いながら、細かく運用してフィードバックを得てすぐにまた開発や新たな価値創造を繰り返し雪だるま式に価値を増産していくというやり方こそアジャイルの根幹でありDevOpsなのである

5.まとめ

自身はOperationに関わることの方が圧倒的に多く、Developに関わることは多くはない
しかし、実務上困ったり面倒であったりすることはまだ課題として転がっており、この方式を用いて解決するプロセスを今回の講座を通して経験してみたい


この記事が気に入ったらサポートをしてみませんか?