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

July Tech Festa 2021 Witner G2 Team Development

July Tech Festa 2021 Witner G2 Team Development

2021年1月24日
July Tech Festa 2021 Winter G2
チーム開発の光と闇・成果と挫折と
11:15~12:15 @oyakata2438

oyakata2438

January 24, 2021
Tweet

More Decks by oyakata2438

Other Decks in Technology

Transcript

  1. #JFT2021w #JTF2021w‗g 2021.01.24
    チーム開発の光と闇
    成果と挫折と
    おやかた | @oyakata2438
    1

    View Slide

  2. #JFT2021w #JTF2021w‗g 2021.01.24 2
    About Me
    おやかた(@親方Project)
    @oyakata2438
    大規模プラント向け計測センサ開発(社内向け)
    技術同人誌・合同誌
    ● レーザープロジェクター自作(と周辺実装)
    ● 技術同人誌を書こう
    ● ワンストップ見積もり本
    ● ワンストップ勉強会 and more ...
    and more...

    View Slide

  3. #JFT2021w #JTF2021w‗g 2021.01.24 3
    Agenda:
    1.作ろうと思ったもの
    2.どうやって進めたか
    3.よかったこと・得たこと
    4.困ったこと
    5.反省点
    Twitter実況・感想Tweetぜひお願いします。
    質問もぜひ!#JTF2021w_G をつけると拾いやすくなります

    View Slide

  4. #JFT2021w #JTF2021w‗g 2021.01.24 4
    「このチーム」で作ってるもの② ギポタル|技術同人誌ポータル
    技術同人誌のポータルサイト
    ・イベント横断でサークル・本を知る
    ・当該ジャンルの本を一覧で見る
    ・本の概要/頒布サイトを知る
    ・サークルの参加するイベントを知る
    新規Webサービスとして実装・立ち上げ中
    作ろうと思ったもの

    View Slide

  5. #JFT2021w #JTF2021w‗g 2021.01.24 5
    なぜ作ろうと思ったか?
    技術同人誌を扱うイベントがたくさんある
    技術書典、技書博、コミケ、おもしろ同人バザール
    カンファレンス(のコーナー)、勉強会 etc…
    ①情報が散在している
    イベントごとに探す必要あり、網羅性が低い
    ②購入までの手順が多い
    例:イベントページ→サークル→ユーザーのTweet→Booth
    ③サークルごとのポータルサイトの作成・メンテが大変

    View Slide

  6. #JFT2021w #JTF2021w‗g 2021.01.24 6
    サイトのモックアップ:本のページ
    購入サイトの
    直リンク
    本の情報
    タグによる横断検索
    ジャンル内の一覧化
    書影・中身画像

    View Slide

  7. #JFT2021w #JTF2021w‗g 2021.01.24 7
    タグの活用
    タグのページ
    おススメタグ
    上位概念、下位概念、対立する技術など
    本の一覧。
    紹介・販売サイト、発行日・イベントなど

    View Slide

  8. #JFT2021w #JTF2021w‗g 2021.01.24 8
    技術スタック 開発者
    本番環境
    File Storage
    ユーザー
    ギポタル
    アプリ
    (JS)
    ブラウザ
    認証基盤
    画像

    View Slide

  9. #JFT2021w #JTF2021w‗g 2021.01.24 9
    誰が作っているのか?

    View Slide

  10. #JFT2021w #JTF2021w‗g 2021.01.24 10
    このチームの特徴:
    ・会社も年齢もバックグラウンドもバラバラ
    ・「技術書コミュニティ」にいる人が多い
    ・上司-部下など、利害関係のない関係
    ・義務、お金などの絡まない関係
    自らの意思で集まったチーム!

    View Slide

  11. #JFT2021w #JTF2021w‗g 2021.01.24 11
    作るにあたって定めた目標
    ①ギポタルを立ち上げる
    ②モブワークで進める
    ③実装過程を本にする

    View Slide

  12. #JFT2021w #JTF2021w‗g 2021.01.24 12
    ①ギポタルを立ち上げる
    モノができないと話にならない
    最初・最重要の目標・目的
    ユーザーフィードバック
    何より自分が欲しい

    View Slide

  13. #JFT2021w #JTF2021w‗g 2021.01.24 13
    ②モブワークで進める
    ・メンバーのレベル・多様性の観点
    フロントエンドつよつよマンはいたが、
    全部カバーできるわけではない
    例:フロントはできるがDBわからん
    DB昔使ったことある
    なんもわからん →一人じゃできない/大変
    ・仕事っぽくなってはつまらない
    ・「やってみたい」人が得るもの(知識・経験)

    View Slide

  14. #JFT2021w #JTF2021w‗g 2021.01.24 14
    モブワーク楽しい
    ・楽しい!!!
    ・時間が決まってる分、集中できる!
    ・他の人の知見をもらう。自分の知識をあげる
    ・三人寄れば文殊の知恵(誰かは知ってる)
    ・チームとしてのレベル底上げ

    View Slide

  15. #JFT2021w #JTF2021w‗g 2021.01.24 15
    モブワークで作るギポタル|技術同人誌ポータル
    モブワーク:複数人で一つの画面・コードを見ながら進めるワーク
    ZOOM
    MURAL
    (コード以外のワーク)
    VSCode+
    Live Share+
    YouTube Live
    技術同人誌で記録

    View Slide

  16. #JFT2021w #JTF2021w‗g 2021.01.24 16
    モブワークを支えるツール①
    ZOOM
    会話・画面共有
    VSCode+Live Share+YouTube Live
    モブ・コード共有 アーカイブ
    ・すぐ会話・相談できる
    ・だれでも簡単に参加できる
    ・画面共有簡単
    ・やっぱり“コード見ながら”は正義
    ・コードの同時編集簡単
    ・YouTubeで聞き専もOK
    ・やったことアーカイブとして残せる

    View Slide

  17. #JFT2021w #JTF2021w‗g 2021.01.24 17
    モブワークを支えるツール②
    MURAL
    (コード以外のワーク全般)
    技術同人誌で記録する(文字起こし)
    ・付箋貼ってく感じでUI素敵
    ・アイディア出しとか最高
    ・記録残る(議事録不要)
    ・やったことの理解が深まる
    ・売り上げでサーバー代など稼げる
    ・本にすることでみんなに知ってもらえる
    ・他の開発の参考にも!
    https://techbookfest.org/product/6206369472446464
    https://gipotal.booth.pm/ 152P1000円

    View Slide

  18. #JFT2021w #JTF2021w‗g 2021.01.24 18
    モブワークでやったこと
    インセプションデッキ作ったり、要件定義したり・・・

    View Slide

  19. #JFT2021w #JTF2021w‗g 2021.01.24 19
    もちろん実装も

    View Slide

  20. #JFT2021w #JTF2021w‗g 2021.01.24 20
    ③実装過程を本にする目的
    ・実装過程・知識の整理
    ・試行錯誤は技術的に価値がある
    ・本を売って、サーバー代とか稼ぐ

    View Slide

  21. #JFT2021w #JTF2021w‗g 2021.01.24 21
    ③本にする目的1:実装過程・知識の整理
    ・「最終成果」はコードとして残るが
    「開発途中」をドキュメント化するのは難しい
    ・書くモチベーション・工数
    ・試行錯誤は消える(コミットログ見る?見ない。)
    ・ダメな実装の例をアンチパターンとして共有化 など
    ・途中参加の人にも説明が簡単
    経緯を説明するのは結構大変。
    Slackのログは流れる/消える
    ・文字・図に起こすことで理解が深まる
    こんなの図に起こさないと
    理解できませんw

    View Slide

  22. #JFT2021w #JTF2021w‗g 2021.01.24 22
    ③本にする目的2:実装過程にも価値がある
    ・NDAの縛りなく公開できるプロジェクトは稀
    -業務は? 当然アウト
    -OSSは? もっと概念的or小改造。
    -個人開発? 公開するメリットがない
    Webサービスの表も裏側もきちんと見る機会はほとんどない
    ・実装者が何を考えたかを書く
    ・なにをやったらどうなったかをきちんと書く
    うまく動かなかった例、とりあえず動かすためにやったこと、など

    View Slide

  23. #JFT2021w #JTF2021w‗g 2021.01.24 23
    ③本にする目的3:本を売ってサーバー代を稼ぐ
    ・費用は発生する。月約3千円。
    例: ドメイン代 月 500円
    Heroku 月 700円
    Vercel 月2000円
    ・持ち出しは継続性の観点から避けたい
    https://techbookfest.org/product/6206369472446464
    https://booth.pm/ja/items/2368542
    152ページ(21年1月時点) 1000円にて頒布中

    View Slide

  24. #JFT2021w #JTF2021w‗g 2021.01.24 24
    進捗
    ・モブワーク20回×約2時間
    ・技術スタックはだいたいやってみた
    ・画面5枚中2-3枚ほど
    ・認証関係 まだ手付かず
    機能・実装 済?
    コンセプト 〇
    ドメイン取る 〇
    トップページデザイン 〇
    サークルページデザイン 〇
    DBからデータ取ってくる 〇
    DBに権限つける 〇
    自動デプロイ 〇
    画像表示する 〇
    DBのテーブル設計 〇
    テーブル実装 途中
    ユーザー認証 ×
    実データの設計・入力 ×
    ファイルストレージ確保 ×
    バグ取り・テスト ×
    結構進んだっぽくないですか?

    View Slide

  25. #JFT2021w #JTF2021w‗g 2021.01.24 25
    得たもの
    モダンなフロント
    エンドとは?
    フロントとバックの繋ぎ
    DBのいろいろ
    モブワークの経験
    ファシリテーション
    アジャイルのいろいろ MURALの使い方
    Zoom、LiveShare…
    開発の経緯を
    まとめた本150ページ
    売り上げもそこそこ
    チーム開発の経験
    目標設定

    View Slide

  26. #JFT2021w #JTF2021w‗g 2021.01.24 26
    でも停滞しました。

    View Slide

  27. #JFT2021w #JTF2021w‗g 2021.01.24 27
    開発の停滞
    6月 5回
    7月 7回
    8月 4回
    9月 1回
    10月 3回
    11月(仕切り直しを決断) 0回
    12月(進捗なし) ―
    モブワークの回数
    目に見えて減った・・・

    View Slide

  28. #JFT2021w #JTF2021w‗g 2021.01.24 28
    外部要因:言い訳
    6月 5回
    7月 7回
    8月 4回
    9月 1回
    10月 3回
    11月(仕切り直しを決断) 0回
    12月(進捗なし) ―
    モブワークの回数
    「執筆に忙しかった」という言い訳はある
    技術書典9
    技術書典10

    View Slide

  29. #JFT2021w #JTF2021w‗g 2021.01.24 29
    内部要因
    機能・実装 済?
    コンセプト 〇
    ドメイン取る 〇
    トップページデザイン 〇
    サークルページデザイン 〇
    DBからデータ取ってくる 〇
    DBに権限つける 〇
    自動デプロイ 〇
    画像表示する 〇
    DBのテーブル設計 〇
    テーブル実装 途中
    ユーザー認証 ×
    実データの設計・入力 ×
    ファイルストレージ確保 ×
    バグ取り・テスト ×
    みんなでわいわいモブでやる作業
    技術スタックはだいたい一通りやった。
    →モブでやるには地味な作業比率が増えた


    View Slide

  30. #JFT2021w #JTF2021w‗g 2021.01.24 30
    外的モチベーションの重要性
    ・みんなでやるから楽しい/やろう!は重要
    雑談だけでも。
    部室に遊びに行く感じ?
    ・定例開催重要
    ちょっと忙しいけど、やってるなら行くか・・・
    ただし、無理・義務感になると楽しくない
    楽しくないと続かない
    頻度が下がると足が遠のく

    View Slide

  31. #JFT2021w #JTF2021w‗g 2021.01.24 31
    時間は残酷だ①
    停滞するまでの2-3か月:めっちゃ楽しー で走れる
    でも、夢は醒める。
    2か月×5週×2時間 =20時間の作業
    仕事だったら?
    20h÷5時間/日とすると、4日分(≒1週間)
    だけどモチベーション減耗は実時間(2か月経過)で来る

    View Slide

  32. #JFT2021w #JTF2021w‗g 2021.01.24 32
    時間は残酷だ②
    時間が経つと色々なことを忘れる
    コンテキストを復活させるのにコストかかる
    前回(先週)なにやったっけ? どこまで進んだっけ?
    今日なにやるんだっけ?
    あれ?これ何のためにやってるんだっけ?(開発的コンテキスト)
    あれ?メンバー減ってきたけど、なんのためにやってるんだっけ?
    (モチベーション、やる理由)
    作業開始のオーバーヘッドが大きい
    仕事だったら?
    4日分(1週間)なら忘れないよね?
    2時間ワーク中30分をコンテキスト共有で使う、など

    View Slide

  33. #JFT2021w #JTF2021w‗g 2021.01.24 33
    反省点
    ・短期集中・短期決戦に持ち込めなかった
    ・モブワークが目的化した
    ・実時間によるモチベ損耗のケアができなかった

    View Slide

  34. #JFT2021w #JTF2021w‗g 2021.01.24 34
    どう仕切りなおすか?
    最適解はない。かも。

    View Slide

  35. #JFT2021w #JTF2021w‗g 2021.01.24 35
    処方箋:目標は欲張らない
    ①ギポタルを立ち上げる
    ②モブワークで進める
    ③実装過程を本にする
    最初はうまく回った。
    後半、モブワークが重くなった
    ・モブになじまない作業率増えた
    ・教える負荷は大きい。
    記録のためのYoutube配信準備がおっくうに。
    (執筆自体はもともとおやかた一人の作業)
    つらくなったら損切りする。優先順位の確認、目標を切る、など
    当初目標

    View Slide

  36. #JFT2021w #JTF2021w‗g 2021.01.24 36
    仕切り直しの例?
    自分でやる
    できるなら最初からやってる・・・

    View Slide

  37. #JFT2021w #JTF2021w‗g 2021.01.24 37
    仕切り直しの例:できる人にやってもらう
    チーム内でできる人にやってもらう?
    できる人/やる人のモチベ律速になる。
    (時間・体調・メンタルに大きく依存)
    工数タダ乗りになってしまう

    View Slide

  38. #JFT2021w #JTF2021w‗g 2021.01.24 38
    それでも、できる人にやってもらうも一案
    お金? -任意プロジェクトではお金ない。
    ん万/Day払う? さすがに無理―
    クラウドソーシング?
    ほんとに「仕事・業務」になって楽しくない。

    View Slide

  39. #JFT2021w #JTF2021w‗g 2021.01.24 39
    人 という単位の提案:SDD:Sushi Driven Development
    無回転寿司で頬をぺちぺちしてメンバーに作業してもらうという選択
    あるいはUDD:うまいものDriven
    使い方:
    この実装量は
    3人寿司だな。
    美味い寿司は
    生臭くない。

    View Slide

  40. #JFT2021w #JTF2021w‗g 2021.01.24 40
    もう一つの最適解は?
    誰か新規参入者を勧誘して、
    仕切り直しする。
    反省はどこへ行った?

    View Slide

  41. #JFT2021w #JTF2021w‗g 2021.01.24 41
    絶対に楽しいので、あなたもやりませんか?
    一緒にギポタルのチーム開発やりましょう。
    (全力の勧誘!)
    Let’s Join us!

    View Slide

  42. #JFT2021w #JTF2021w‗g 2021.01.24 42
    反省点と解決策
    ・短期集中・短期決戦に持ち込めなかった
    →目的とマイルストーン、MVPの設定
    ・モブワークが目的化した
    →モブでやるところと実装の切り分け
    ・実時間によるモチベ損耗のケアができなかった
    →SDDでモチベ補給。
    MVP(実用最小限の製品: minimum viable product)

    View Slide

  43. #JFT2021w #JTF2021w‗g 2021.01.24 43
    まとめ:ありきたりだけど・・・
    楽しいこと
    学びがあること
    成果があること
    両立がとっても重要
    どれが欠けてもつらい
    個人開発・チーム開発は

    View Slide

  44. #JFT2021w #JTF2021w‗g 2021.01.24 44
    今回身に染みたこと・・・
    「義務」ではない開発では
    どれかが欠けると如実に進捗に表れる
    モチベ駆動開発は、
    短期集中・短期決戦を旨とする

    View Slide

  45. #JFT2021w #JTF2021w‗g 2021.01.24 45
    告知① 今日の開発経緯が載った本はこちら
    https://techbookfest.org/product/6206369472446464
    https://gipotal.booth.pm/
    152P 1000円。
    ギポタル開発記
    -モブワークで学びながらわいわい作る
    技術同人誌ポータル‐
    技術書典、Boothで頒布中。
    参加者募集中
    Webサービス作ってみたい
    モブワーク・モブプログラミングやってみたい
    などなど。

    View Slide

  46. #JFT2021w #JTF2021w‗g 2021.01.24 46
    告知② 技術同人誌書きませんか?
    現在進行中の企画
    気になったら「書いてみたいかも」などつぶやいて!
    探して声かけます。
    カンファレンス参加を後押しする本
    - カンファレンスの探し方
    - セッションをより楽しむ方法
    聴講、メモ、インプットの仕方
    - オンライン/オフライン交流を楽しむ方法
    - ブログを書くまでがカンファレンス参加です
    などなど。
    1ページ、コラム1本からでも参加OK。
    https://note.com/oyakata2438/n/nb0747d0846f1

    View Slide

  47. #JFT2021w #JTF2021w‗g 2021.01.24 47
    今聞いてる方、この後Youtubeで追っかけで聴く方へ
    ぜひ参加を
    - カンファレンスに参加している時点で執筆可能
    - あなたの経験、やってることを共有して、
    楽しい思いをする人を増やしましょう
    - アウトプットの練習にも!
    1ページ、コラム1本からでも参加OK。

    View Slide

  48. #JFT2021w #JTF2021w‗g 2021.01.24 48
    告知③ 同人誌から商業化した本もあります。

    View Slide

  49. #JFT2021w #JTF2021w‗g 2021.01.24 49
    告知④
    次回の技書博は・・・
    •2021年6月19日(土)
    •大田区産業プラザPiO 大展示ホール
    •オフライン+オンラインのハイブリッド予定
    •楽しい企画を検討中
    •3月頭ごろにサークル募集開始(予定)
    •Twitter @gishohaku をチェックしてね!
    •協賛にご興味ある方はお声がけください
    イベントのコンセプト、設計などは、D1を聴いてください
    D1:技術イベント主催を通じて利用者体験を設計する

    View Slide

  50. #JFT2021w #JTF2021w‗g 2021.01.24 50
    質問・コメントあれば
    Zoom 質問ルームGにいます。
    トラックG #jtf2021w_g
    または、
    Twitter @oyakata2438まで
    お気軽にー

    View Slide