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

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

soudai sone
April 09, 2022

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

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

soudai sone

April 09, 2022
Tweet

More Decks by soudai sone

Other Decks in Business

Transcript

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

    View Slide

  2. 自分たちはなぜ


    ソフトウエアを開発するのか

    What is it?

    View Slide

  3. 目指す私達のゴールはどこか



    What is it?

    View Slide

  4. そのために何から始めるか



    What is it?

    View Slide

  5. そういう話をします



    What is it?

    View Slide

  6. 1. 自己紹介

    2. ソフトウェア開発の目的

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

    4. 前に進むために必要なこと

    5. 今日から始める最初の一歩

    6. まとめ

    あじぇんだ

    View Slide

  7. 1. 自己紹介

    2. ソフトウェア開発の目的

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

    4. 前に進むために必要なこと

    5. 今日から始める最初の一歩

    6. まとめ

    あじぇんだ

    View Slide

  8. 自己紹介

    曽根 壮大(37歳)

    Have Fun Tech LLC 代表社員


    そ  ね  た け と も

    ● 日本PostgreSQLユーザ会 勉強会分科会 担当

    ● 3人の子供がいます(長女、次女、長男)

    ● 技術的にはWeb/LL言語/RDBMSが好きです

    ● コミュニティが好き

    View Slide

  9. View Slide

  10. 本書きました


    View Slide

  11. 1. 自己紹介

    2. ソフトウェア開発の目的

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

    4. 前に進むために必要なこと

    5. 今日から始める最初の一歩

    6. まとめ

    あじぇんだ

    View Slide

  12. なぜ我々は


    ソフトウェアを開発するのか

    ソフトウェア開発の目的

    View Slide

  13. 誰かの課題を解決する手段として


    ソフトウェアを利用しているため

    ソフトウェア開発の目的

    View Slide

  14. 私達が解決したい課題とは?



    ソフトウェア開発の目的

    View Slide

  15. 健やかな心身を通して、


    社会の幸せを増やす

    ソフトウェア開発の目的

    View Slide

  16. 健やかな心身を通して、


    社会の幸せを増やす

    ソフトウェア開発の目的
    つまりリンケージという会社の目的を達成するために集まっている 


    View Slide

  17. 1. Vision、Mission、Values

    これらを実現する為にリンケージが存在している

    実現する手段としてソフトウェアを利用している

    2. ユーザが使ってくれてはじめて価値がある

    ソフトウェアの価値は開発者でなく、ユーザが決める

    つまりユーザに沢山の価値を提供する事に意味がある

    3. 価値は使ってみないとわからない

    ユーザは本当の価値を知らず、使って初めて気づく

    だからこそ、素早く価値を提供して評価を聞く必要がある

    忘れてはいけないこと

    View Slide

  18. 私達は技術(ソフトウェア)で


    誰かの課題を解決することが仕事

    ソフトウェア開発の目的

    View Slide

  19. 1. 自己紹介

    2. ソフトウェア開発の目的

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

    4. 前に進むために必要なこと

    5. 今日から始める最初の一歩

    6. まとめ

    あじぇんだ

    View Slide

  20. 良い開発、良いチームとは


    どんなチームを想像しますか?

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

    View Slide

  21. 目的を達成できるのが良い開発


    目的を達成できるチームが良いチーム

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

    View Slide

  22. 我々の目的は


    ユーザに価値を届けること

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

    View Slide

  23. 目指すべきチーム

    ↓

    良い価値を提供できるチーム

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

    View Slide

  24. 良い価値とはなにか?



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

    View Slide

  25. 良い価値とはなにか?

    ↓

    提供してみないとわからない

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

    View Slide

  26. だから最初に


    サービスのリリースが必要

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

    View Slide

  27. 1. ユーザが使ってくれてはじめて価値がある(再掲)

    答えは常に市場が知っている

    ユーザのフィードバックを正しく観測して次の課題を見つける

    机上の空論は価値を届けていない

    2. 完璧は幻想であり、完成はない

    我々も形にならないと想像できない、作ってみないと想像できない

    考えることよりも、実際に作ってみて、小さく失敗する

    失敗を素早く次に活かして、次は上手くやる

    3. 失敗と改善のサイクルを高速に回す

    進化の反対は退化(機能削減)ではなく、停滞。

    なぜリリースが必要か

    View Slide

  28. より良い価値を継続的に届けるために


    失敗を沢山できる仕組みにする

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

    View Slide

  29. 1. 大きく失敗しない

    失敗は小さく、変化も小さくすることで失敗の範囲を最小にする

    アプリケーションの影響範囲もできるだけ小さくリリースする

    2. 素早く元に戻せる

    素早くリリースできれば、素早くロールバックできる

    やり直せるならチャレンジのハードルが下がる

    チャレンジの数だけ、学びが生まれる

    3. 問題に素早く気付く

    問題に素早く気付くことができれば、素早く改善することができる

    改善することでよりよい価値を提供できる

    失敗するために必要な仕組み

    View Slide

  30. 失敗できる仕組みとプロセス

    ↓

    良い開発につながる

    良い開発、良いチームとはなにか
    CI/CDもTDDもDevOpsもマイクロサービスもDDDも 

    結局はここを実現するためのhow(手段) 


    View Slide

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

    View Slide

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



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

    View Slide

  33. 素早く価値を提供できていて


    失敗と改善が可能なチーム

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

    View Slide

  34. 1. 自己紹介

    2. ソフトウェア開発の目的

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

    4. 前に進むために必要なこと

    5. 今日から始める最初の一歩

    6. まとめ

    あじぇんだ

    View Slide

  35. 素早く価値を提供できていて


    失敗と改善が可能なチーム

    前に進むために必要なこと

    View Slide

  36. 素早く価値を提供するためには


    素早いリリースが必要

    前に進むために必要なこと
    ここがつまりは技術力の見せ所 


    View Slide

  37. 素早くリリースできる環境があっても


    コードが無ければ意味がない

    前に進むために必要なこと

    View Slide



  38. “手を動かした者だけが、世界を変える”




    株式会社はてな id:onishi

    前に進むために必要なこと

    View Slide

  39. 素早く価値を提供するためには


    素早くコードを提供できるチームが必要

    前に進むために必要なこと

    View Slide

  40. Agile (アジャイル)

    前に進むために必要なこと

    View Slide

  41. チームの俊敏性を上げるための


    プラクティス

    前に進むために必要なこと

    View Slide

  42. Scrum(スクラム)



    前に進むために必要なこと

    View Slide

  43. アジャイル開発をはじめるための


    フレームワーク

    前に進むために必要なこと

    View Slide

  44. Scrumの例



    前に進むために必要なこと

    View Slide

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

    View Slide

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


    View Slide

  47. 前に進むために必要なこと
    プロダクトバッ
    クログ
    スプリントバッ
    クログ
    アプリ
    フィード
    バック
    プロダクトオーナー
    ユーザ
    提供したい価値(機能)リスト(プロダクトバックログ) 

    これをプロダクトオーナーが考えて作る 

    開発者も一緒に考えても良い 

    考える場がバックロググルーミングとかバックログリファインメントと言われる 

    1スプリント1回行うのが通例 


    View Slide

  48. 前に進むために必要なこと
    プロダクトバッ
    クログ
    スプリントバッ
    クログ
    アプリ
    フィード
    バック
    プロダクトオーナー
    ユーザ
    提供したい価値(プロダクトバックログ)から 

    実際の作業(スプリントバックログ)に分解する 

    通例ではチーム全体で行い、完成の定義、スコープなどを調整する 

    今回のスプリントのゴールを決める 

    スプリントプランニングと言われる 


    View Slide

  49. 前に進むために必要なこと
    プロダクトバッ
    クログ
    スプリントバッ
    クログ
    アプリ
    フィード
    バック
    プロダクトオーナー
    ユーザ
    リリース作業の前に一般的には以下のイベントがある 

    - レビュー(ソースコードとして正しい品質かの確認) 

    - スプリントレビュー(完成の定義を満たしているか) 

    スプリントレビューを1回とする場合もあるし、都度の場合もある 

    レビューを通過したらリリースされる 


    View Slide

  50. 前に進むために必要なこと
    プロダクトバッ
    クログ
    スプリントバッ
    クログ
    アプリ
    フィード
    バック
    プロダクトオーナー
    ユーザ
    リリースした結果、判明した改善内容を、 

    プロダクトバックログにも反映させる 

    プロダクトバックログの優先度にあわせて、 

    次のスプリントバックログも調整していく 


    改善内容を考える場、振り返りの場をスプリント
    レトロスペクティブと呼ぶ 


    View Slide

  51. では、我々はどうするか?



    前に進むために必要なこと

    View Slide

  52. 1. 自己紹介

    2. ソフトウェア開発の目的

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

    4. 前に進むために必要なこと

    5. 今日から始める最初の一歩

    6. まとめ

    あじぇんだ

    View Slide

  53. Scrumを始めたからと言って


    いきなりできるわけではない

    今日からはじめる最初の一歩

    View Slide

  54. Scrumを始めたからと言って


    いきなりできるわけではない

    今日からはじめる最初の一歩
    イチローのバットを持ったからと言って、 

    イチローになれるわけではない 


    View Slide

  55. まずはScrumを学ぶ



    今日からはじめる最初の一歩

    View Slide

  56. まずはScrumを学ぶ

    ↓

    先人の知恵から学ぶ

    今日からはじめる最初の一歩

    View Slide

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

    If you want to go far, go together.”


    “はやく行きたければ、一人で進め。

    遠くまで行きたければ、みんなで進め。”


    今日からはじめる最初の一歩

    View Slide

  58. まずはみんなで


    輪読会をしましょう

    今日からはじめる最初の一歩

    View Slide

  59. Scrumを体験する

    ↓

    1週間スプリントをやりましょう

    今日からはじめる最初の一歩

    View Slide

  60. まずは1ヶ月、やってみる



    今日からはじめる最初の一歩

    View Slide

  61. 1. デイリースクラム

    朝会でも昼会いいのでまずは時間を決めましょう

    毎日15分から30分程度

    2. バックロググルーミング

    1スプリント分をまずはユーザストーリー含めてやりましょう

    複数プロダクトがあるのでチームに別れてやっても良い

    3. スプリントプランニング

    1週間スプリントでリリースできる範囲に落とし込みましょう

    4. スプリントレビュー

    完成の定義を満たせるかどうか

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

    当たり前に失敗するはず、だから振り返って活かしていく

    今回の目玉の一番はここになる

    スクラムイベント

    View Slide

  62. 1. 自己紹介

    2. ソフトウェア開発の目的

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

    4. 前に進むために必要なこと

    5. 今日から始める最初の一歩

    6. まとめ

    あじぇんだ

    View Slide

  63. アジャイル開発を目指すということは


    自分たちで決めるということ

    今日からはじめる最初の一歩

    View Slide

  64. 自分たちで決めるということは


    責任を持つということ

    今日からはじめる最初の一歩

    View Slide

  65. アジャイル開発は


    チーム開発

    今日からはじめる最初の一歩

    View Slide

  66. チームファーストと


    HRT(謙虚、尊敬、信頼)を持つ

    今日からはじめる最初の一歩

    View Slide

  67. チームで決めて


    チームで問題を解きましょう

    今日からはじめる最初の一歩

    View Slide

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



    まとめ

    View Slide