Upgrade to Pro — share decks privately, control downloads, hide ads and more …

目指すべきソフトウェア開発と 今日から始める最初の一歩 / First step for good development

目指すべきソフトウェア開発と 今日から始める最初の一歩 / First step for good development

株式会社リンケージ様の開発キックオフで話をした内容です

88f4e84b94fe07cddbd9e6479d689192?s=128

soudai sone

April 09, 2022
Tweet

More Decks by soudai sone

Other Decks in Business

Transcript

  1. 目指すべきソフトウェア開発と 今日から始める最初の一歩 ~ 良いチーム、良い開発を考える ~ 株式会社リンケージ 開発部 キックオフ

  2. 自分たちはなぜ
 
 ソフトウエアを開発するのか
 What is it?

  3. 目指す私達のゴールはどこか
 
 
 What is it?

  4. そのために何から始めるか
 
 
 What is it?

  5. そういう話をします
 
 
 What is it?

  6. 1. 自己紹介
 2. ソフトウェア開発の目的
 3. 良い開発、良いチームとはなにか
 4. 前に進むために必要なこと
 5. 今日から始める最初の一歩


    6. まとめ
 あじぇんだ
  7. 1. 自己紹介
 2. ソフトウェア開発の目的
 3. 良い開発、良いチームとはなにか
 4. 前に進むために必要なこと
 5. 今日から始める最初の一歩


    6. まとめ
 あじぇんだ
  8. 自己紹介
 曽根 壮大(37歳)
 Have Fun Tech LLC 代表社員
 
 そ 

    ね  た け と も
 • 日本PostgreSQLユーザ会 勉強会分科会 担当
 • 3人の子供がいます(長女、次女、長男)
 • 技術的にはWeb/LL言語/RDBMSが好きです
 • コミュニティが好き
  9. None
  10. 本書きました


  11. 1. 自己紹介
 2. ソフトウェア開発の目的
 3. 良い開発、良いチームとはなにか
 4. 前に進むために必要なこと
 5. 今日から始める最初の一歩


    6. まとめ
 あじぇんだ
  12. なぜ我々は
 
 ソフトウェアを開発するのか
 ソフトウェア開発の目的

  13. 誰かの課題を解決する手段として
 
 ソフトウェアを利用しているため
 ソフトウェア開発の目的

  14. 私達が解決したい課題とは?
 
 
 ソフトウェア開発の目的

  15. 健やかな心身を通して、
 
 社会の幸せを増やす
 ソフトウェア開発の目的

  16. 健やかな心身を通して、
 
 社会の幸せを増やす
 ソフトウェア開発の目的 つまりリンケージという会社の目的を達成するために集まっている 


  17. 1. Vision、Mission、Values
 これらを実現する為にリンケージが存在している
 実現する手段としてソフトウェアを利用している
 2. ユーザが使ってくれてはじめて価値がある
 ソフトウェアの価値は開発者でなく、ユーザが決める
 つまりユーザに沢山の価値を提供する事に意味がある
 3. 価値は使ってみないとわからない


    ユーザは本当の価値を知らず、使って初めて気づく
 だからこそ、素早く価値を提供して評価を聞く必要がある
 忘れてはいけないこと
  18. 私達は技術(ソフトウェア)で
 
 誰かの課題を解決することが仕事
 ソフトウェア開発の目的

  19. 1. 自己紹介
 2. ソフトウェア開発の目的
 3. 良い開発、良いチームとはなにか
 4. 前に進むために必要なこと
 5. 今日から始める最初の一歩


    6. まとめ
 あじぇんだ
  20. 良い開発、良いチームとは
 
 どんなチームを想像しますか?
 良い開発、良いチームとはなにか

  21. 目的を達成できるのが良い開発
 
 目的を達成できるチームが良いチーム
 良い開発、良いチームとはなにか

  22. 我々の目的は
 
 ユーザに価値を届けること
 良い開発、良いチームとはなにか

  23. 目指すべきチーム
 ↓
 良い価値を提供できるチーム
 良い開発、良いチームとはなにか

  24. 良い価値とはなにか?
 
 
 良い開発、良いチームとはなにか

  25. 良い価値とはなにか?
 ↓
 提供してみないとわからない
 良い開発、良いチームとはなにか

  26. だから最初に
 
 サービスのリリースが必要
 良い開発、良いチームとはなにか

  27. 1. ユーザが使ってくれてはじめて価値がある(再掲)
 答えは常に市場が知っている
 ユーザのフィードバックを正しく観測して次の課題を見つける
 机上の空論は価値を届けていない
 2. 完璧は幻想であり、完成はない
 我々も形にならないと想像できない、作ってみないと想像できない
 考えることよりも、実際に作ってみて、小さく失敗する
 失敗を素早く次に活かして、次は上手くやる


    3. 失敗と改善のサイクルを高速に回す
 進化の反対は退化(機能削減)ではなく、停滞。
 なぜリリースが必要か
  28. より良い価値を継続的に届けるために
 
 失敗を沢山できる仕組みにする
 良い開発、良いチームとはなにか

  29. 1. 大きく失敗しない
 失敗は小さく、変化も小さくすることで失敗の範囲を最小にする
 アプリケーションの影響範囲もできるだけ小さくリリースする
 2. 素早く元に戻せる
 素早くリリースできれば、素早くロールバックできる
 やり直せるならチャレンジのハードルが下がる
 チャレンジの数だけ、学びが生まれる
 3.

    問題に素早く気付く
 問題に素早く気付くことができれば、素早く改善することができる
 改善することでよりよい価値を提供できる
 失敗するために必要な仕組み
  30. 失敗できる仕組みとプロセス
 ↓
 良い開発につながる
 良い開発、良いチームとはなにか CI/CDもTDDもDevOpsもマイクロサービスもDDDも 
 結局はここを実現するためのhow(手段) 


  31. 失敗できる仕組みの例

  32. 良い開発、良いチームとはなにか
 
 
 良い開発、良いチームとはなにか

  33. 素早く価値を提供できていて
 
 失敗と改善が可能なチーム
 良い開発、良いチームとはなにか

  34. 1. 自己紹介
 2. ソフトウェア開発の目的
 3. 良い開発、良いチームとはなにか
 4. 前に進むために必要なこと
 5. 今日から始める最初の一歩


    6. まとめ
 あじぇんだ
  35. 素早く価値を提供できていて
 
 失敗と改善が可能なチーム
 前に進むために必要なこと

  36. 素早く価値を提供するためには
 
 素早いリリースが必要
 前に進むために必要なこと ここがつまりは技術力の見せ所 


  37. 素早くリリースできる環境があっても
 
 コードが無ければ意味がない
 前に進むために必要なこと

  38. 
 
 “手を動かした者だけが、世界を変える”
 
 
 
 株式会社はてな id:onishi
 前に進むために必要なこと

  39. 素早く価値を提供するためには
 
 素早くコードを提供できるチームが必要
 前に進むために必要なこと

  40. Agile (アジャイル)
 前に進むために必要なこと

  41. チームの俊敏性を上げるための
 
 プラクティス
 前に進むために必要なこと

  42. Scrum(スクラム)
 
 
 前に進むために必要なこと

  43. アジャイル開発をはじめるための
 
 フレームワーク
 前に進むために必要なこと

  44. Scrumの例
 
 
 前に進むために必要なこと

  45. 前に進むために必要なこと プロダクトバッ クログ スプリントバッ クログ アプリ フィード バック プロダクトオーナー ユーザ

  46. 前に進むために必要なこと プロダクトバッ クログ スプリントバッ クログ アプリ フィード バック プロダクトオーナー ユーザ

    このサイクルがスプリント 

  47. 前に進むために必要なこと プロダクトバッ クログ スプリントバッ クログ アプリ フィード バック プロダクトオーナー ユーザ

    提供したい価値(機能)リスト(プロダクトバックログ) 
 これをプロダクトオーナーが考えて作る 
 開発者も一緒に考えても良い 
 考える場がバックロググルーミングとかバックログリファインメントと言われる 
 1スプリント1回行うのが通例 

  48. 前に進むために必要なこと プロダクトバッ クログ スプリントバッ クログ アプリ フィード バック プロダクトオーナー ユーザ

    提供したい価値(プロダクトバックログ)から 
 実際の作業(スプリントバックログ)に分解する 
 通例ではチーム全体で行い、完成の定義、スコープなどを調整する 
 今回のスプリントのゴールを決める 
 スプリントプランニングと言われる 

  49. 前に進むために必要なこと プロダクトバッ クログ スプリントバッ クログ アプリ フィード バック プロダクトオーナー ユーザ

    リリース作業の前に一般的には以下のイベントがある 
 - レビュー(ソースコードとして正しい品質かの確認) 
 - スプリントレビュー(完成の定義を満たしているか) 
 スプリントレビューを1回とする場合もあるし、都度の場合もある 
 レビューを通過したらリリースされる 

  50. 前に進むために必要なこと プロダクトバッ クログ スプリントバッ クログ アプリ フィード バック プロダクトオーナー ユーザ

    リリースした結果、判明した改善内容を、 
 プロダクトバックログにも反映させる 
 プロダクトバックログの優先度にあわせて、 
 次のスプリントバックログも調整していく 
 
 改善内容を考える場、振り返りの場をスプリント レトロスペクティブと呼ぶ 

  51. では、我々はどうするか?
 
 
 前に進むために必要なこと

  52. 1. 自己紹介
 2. ソフトウェア開発の目的
 3. 良い開発、良いチームとはなにか
 4. 前に進むために必要なこと
 5. 今日から始める最初の一歩


    6. まとめ
 あじぇんだ
  53. Scrumを始めたからと言って
 
 いきなりできるわけではない
 今日からはじめる最初の一歩

  54. Scrumを始めたからと言って
 
 いきなりできるわけではない
 今日からはじめる最初の一歩 イチローのバットを持ったからと言って、 
 イチローになれるわけではない 


  55. まずはScrumを学ぶ
 
 
 今日からはじめる最初の一歩

  56. まずはScrumを学ぶ
 ↓
 先人の知恵から学ぶ
 今日からはじめる最初の一歩

  57. “If you want to go fast, go alone.
 If you

    want to go far, go together.”
 
 “はやく行きたければ、一人で進め。
 遠くまで行きたければ、みんなで進め。”
 
 今日からはじめる最初の一歩
  58. まずはみんなで
 
 輪読会をしましょう
 今日からはじめる最初の一歩

  59. Scrumを体験する
 ↓
 1週間スプリントをやりましょう
 今日からはじめる最初の一歩

  60. まずは1ヶ月、やってみる
 
 
 今日からはじめる最初の一歩

  61. 1. デイリースクラム
 朝会でも昼会いいのでまずは時間を決めましょう 
 毎日15分から30分程度
 2. バックロググルーミング
 1スプリント分をまずはユーザストーリー含めてやりましょう 
 複数プロダクトがあるのでチームに別れてやっても良い

    
 3. スプリントプランニング
 1週間スプリントでリリースできる範囲に落とし込みましょう 
 4. スプリントレビュー
 完成の定義を満たせるかどうか 
 5. スプリントレトロスペクティブ
 当たり前に失敗するはず、だから振り返って活かしていく 
 今回の目玉の一番はここになる 
 スクラムイベント
  62. 1. 自己紹介
 2. ソフトウェア開発の目的
 3. 良い開発、良いチームとはなにか
 4. 前に進むために必要なこと
 5. 今日から始める最初の一歩


    6. まとめ
 あじぇんだ
  63. アジャイル開発を目指すということは
 
 自分たちで決めるということ
 今日からはじめる最初の一歩

  64. 自分たちで決めるということは
 
 責任を持つということ
 今日からはじめる最初の一歩

  65. アジャイル開発は
 
 チーム開発
 今日からはじめる最初の一歩

  66. チームファーストと
 
 HRT(謙虚、尊敬、信頼)を持つ
 今日からはじめる最初の一歩

  67. チームで決めて
 
 チームで問題を解きましょう
 今日からはじめる最初の一歩

  68. ご清聴ありがとうございました
 
 
 まとめ