Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

#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円にて頒布中

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

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