天の月

ソフトウェア開発をしていく上での悩み, 考えたこと, 学びを書いてきます(たまに関係ない雑記も)

自分がアジャイルを好きな理由

最近、自分がアジャイルのことが好きだなあ、と自分自身で感じる場面に何回か遭遇しています。
今日は雑記ということで、何でアジャイル開発が好きなのかを考えてみようと思います。

結論

結論から言うと、アジャイル開発のボトムアップ思考が自分にとってフィットしているのかな、と思っています。
以下、どうしてそういう結論に至ったのかをつらつらと書いていきます。

アジャイル開発はボトムアップ思考を大切にしている

あくまでもアジャイルを本格的に学び初めて半年くらいの自分の理解ですが、アジャイルトップダウン思考よりもボトムアップ思考を大切にしていると思っています。*1

ボトムアップ思考を大切にしていると感じるプラクティスやマインドは多数あるのですが、ここでは従来のトップダウンで立てる計画とのGapを一番強く感じた、スクラムにおけるプランニングの話をここでは書いてみます。

スクラムでプランニングをする時は、スプリントバックログをなるべく小さな単位のタスクに切り出すように言われることが多いと思っています。
これは、タスクを小さくすることで未来を予測しやすくし、ボトムアップ思考で考えやすくするための仕組みだと勝手に解釈しています。
タスクを小さくして未来を予測しやすくすることで、「現状から普通に進めるとどれくらいの成果が出せるのか?」「その成果をもっと短期間で出したり、もっと大きな成果を出すためにはどうすれば良いのか?」というのが考えやすくなっていると思っています。*2

他にも、イテレーティブに開発を進めることで、顧客にMVPを少しずつ提供していくことを推奨しているのとかは、分かりやすいボトムアップ思考を優先している例なのかなあ、と思っています。

ボトムアップ思考をしていなかった時の自分の失敗経験

上記で説明したように、アジャイルボトムアップ思考を大切にしている考え方だと感じているのですが、この考えに共感できたのはボトムアップ思考をしていなかった時の、自分の苦い失敗経験がベースにあります。

目標通りにできないことによる自己肯定感の低下

目標を立てることはそこまで苦労なくできるのですが、この目標を達成できたことは仕事をしていて一度もありませんでした。
目標をブレイクダウンした計画から、徐々に遅延していき、バッファはいつも食い潰されてしまいました。
余裕を持って立てたはずの計画に従えない自分の能力の無さを恨み、次第に自己肯定感は低下していきました。
そのため、次に目標設定したり計画を立てる時は、更に設定を緩くするのですが、それでも達成できず、自己肯定感が更に下がる、という悪循環を引き起こしていました。

その場で起きていた問題がないがしろになってしまった

目標に執着した結果、その場で起きていた問題がないがしろになってしまいました。
目標達成がかなり厳しくなった状況だった時、自分のチームには、明らかに体調が悪そうなメンバーがいました。
自分は、悩み相談に乗ったり、一緒にご飯を食べに行ったりすることはしましたが、休まれてしまった結果目標が達成できなくなることが怖くて、休むことを強くアドバイスすることができませんでした。
結果、メンバーは体調を崩してしまってそのまま退職してしまい、自分は一人で開発をすることになりました。
この事件は、自分が勉強を始めたり仕事に対して真摯に向き合うきっかけになった一方で、自分の中には一生の後悔として残り続けると思います。

アジャイルと出会い変化したこと

目標を立ててトップダウンで計画を作ると、目標を達成できたか/目標を達成できなかったか、の二元論に自分は縛られてしまっていました。

一方で、アジャイルは単語自体が形容詞であり、二元論として捉えられることはできません。
そのため、自然と「今よりアジャイルになるには?」とボトムアップ思考で考える場面が増えてきました。

「今よりアジャイルになるには?」とボトムアップ思考で考えると、トップダウンで考えていた時には考えにも出てこなかった要素が出てきて、多数のことを勉強するようになりました。
生物学や哲学、経済学、心理学、民族誌学...今よりアジャイルになるために役立ちそうな学問や考え方は無限にあり、視界が一気に広がった感覚を自分は持ちました。(目標から考えると、ソフトウェア開発で立てる目標と関係が薄そうな哲学や経済学を学ぼうとはまずならない)
※ソフトウェア開発と一見するとかけ離れていて、迷走していないか自分自身で不安になることは良くあります笑

また、ボトムアップ思考では「今よりアジャイルになれるか?」という観点で努力を積み重ねていくので、自己肯定感が自分の場合は積み上がりやすいと感じています。(少なくとも昨日の自分よりは前に進んでいるor学びを得ているという実感を得られるので)
そのため、学習することや変化することが楽しくて、自律的にどんどん学ぶことができます。
自分は、学校の勉強をテストで一定水準を取るためにしていたので、全く興味が湧かず、哲学や経済学は大学で履修して単位を落としていました。
もう二度と勉強することはないだろうと思いましたが、まさか再び学ぶことになって、しかも楽しく学ぶことになって、自分自身でも驚いています。
仕事についても、チームメンバーがなるべくボトムアップ思考で、「よりアジャイルにするためにはどうすればいいか?」を考えられるように*3した結果、評価前に行った360度フィードバックで、「aki.mのお陰でやりたいように仕事できた(進みたかった方向にアクセルを踏み続けられた)」というフィードバックを貰え、社会人で一番嬉しかったです。
メンバーが仕事に対して意欲的に向かっている様子は自分自身も良く感じていたのですが、直接もらえたフィードバックは最高でした。

おわりに

自分がアジャイルを好きな理由をつらつらと書いていきました。今後もよりアジャイルになるために、もっともっと勉強を楽しんでいきたいです。
欲を言えば、「よりアジャイルにするためにはどうすればいいか?」を考えていく過程で、アジャイル開発を超える何かに出会えたら、更に最高だなと思っています。

*1:アジャイルソフトウェア開発宣言と同じく、トップダウン思考も大切だけど、ボトムアップ思考をより大切にしているように自分は感じる、という話です

*2:勿論、現実には全てがボトムアップで考えられる訳ではなくて、スプリントバックログを基にトップダウンで考える場面も良くあるのですが...

*3:実際に考えていたかは不明ですが、少なくともより良いプロダクトを作るには、ということは皆が考えてくれていました