Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
July Tech Festa 2021 Witner G2 Team Development
Search
oyakata2438
January 24, 2021
Technology
1
1.1k
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
Share
More Decks by oyakata2438
See All by oyakata2438
Burikaigi_oyakata
oyakata2438
0
640
Toyama-IT-oyakataPresentaion
oyakata2438
0
100
20240117-Forkwell-目標設定の技術
oyakata2438
0
42
20230121_BuriKaigi
oyakata2438
0
1k
JTF2021-A3-1stTechbook
oyakata2438
0
900
技書博後夜祭1
oyakata2438
0
57
July tech festa 2020 B5
oyakata2438
3
1.3k
20190607_Output_Oyakata
oyakata2438
1
360
ワンストップ勉強会試し読み
oyakata2438
0
780
Other Decks in Technology
See All in Technology
すぐに始めるAWSコスト削減。短期でできる改善策と長期的な運用負荷軽減への取り組み方を解説
ncdc
1
510
突撃! 隣のAmazon Bedrockユーザー 〜YouはどうしてAWSで?〜
minorun365
PRO
2
200
App Router を実プロダクトで採用して見えてきた勘所をちょっとだけ紹介
marokanatani
0
640
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
0
3.2k
AWSを始めた頃に陥りがちなポイントをまとめてみた
oshanqq
1
3k
株式会社M2X エンジニアチーム紹介資料
m2xsoftware
0
410
Practical GenAI with Go - Elastic and Golang Sydney
adriancole
0
140
#Zenoh 完全に理解した 〜組込み純情篇〜
takasehideki
1
460
技術ブログや登壇資料を秒で作るコツ伝授します
minorun365
PRO
21
5k
[RSJ24] Object Segmentation from Open-Vocabulary Manipulation Instructions Based on Optimal Transport Polygon Matching with Foundation Models
keio_smilab
PRO
0
130
実践的なバグバウンティ入門
scgajge12
4
2.2k
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
2
170
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
65
4.3k
Building Adaptive Systems
keathley
36
2.1k
Automating Front-end Workflow
addyosmani
1365
200k
Build your cross-platform service in a week with App Engine
jlugia
228
18k
RailsConf 2023
tenderlove
27
800
StorybookのUI Testing Handbookを読んだ
zakiyama
25
5k
Pencils Down: Stop Designing & Start Developing
hursman
118
11k
How to train your dragon (web standard)
notwaldorf
85
5.6k
Optimising Largest Contentful Paint
csswizardry
29
2.8k
The Cost Of JavaScript in 2023
addyosmani
40
5.2k
Art, The Web, and Tiny UX
lynnandtonic
294
20k
Building Flexible Design Systems
yeseniaperezcruz
324
37k
Transcript
#JFT2021w #JTF2021w‗g 2021.01.24 チーム開発の光と闇 成果と挫折と おやかた | @oyakata2438 1
#JFT2021w #JTF2021w‗g 2021.01.24 2 About Me おやかた(@親方Project) @oyakata2438 大規模プラント向け計測センサ開発(社内向け) 技術同人誌・合同誌
• レーザープロジェクター自作(と周辺実装) • 技術同人誌を書こう • ワンストップ見積もり本 • ワンストップ勉強会 and more ... and more...
#JFT2021w #JTF2021w‗g 2021.01.24 3 Agenda: 1.作ろうと思ったもの 2.どうやって進めたか 3.よかったこと・得たこと 4.困ったこと 5.反省点
Twitter実況・感想Tweetぜひお願いします。 質問もぜひ!#JTF2021w_G をつけると拾いやすくなります
#JFT2021w #JTF2021w‗g 2021.01.24 4 「このチーム」で作ってるもの② ギポタル|技術同人誌ポータル 技術同人誌のポータルサイト ・イベント横断でサークル・本を知る ・当該ジャンルの本を一覧で見る ・本の概要/頒布サイトを知る
・サークルの参加するイベントを知る 新規Webサービスとして実装・立ち上げ中 作ろうと思ったもの
#JFT2021w #JTF2021w‗g 2021.01.24 5 なぜ作ろうと思ったか? 技術同人誌を扱うイベントがたくさんある 技術書典、技書博、コミケ、おもしろ同人バザール カンファレンス(のコーナー)、勉強会 etc… ①情報が散在している
イベントごとに探す必要あり、網羅性が低い ②購入までの手順が多い 例:イベントページ→サークル→ユーザーのTweet→Booth ③サークルごとのポータルサイトの作成・メンテが大変
#JFT2021w #JTF2021w‗g 2021.01.24 6 サイトのモックアップ:本のページ 購入サイトの 直リンク 本の情報 タグによる横断検索 ジャンル内の一覧化
書影・中身画像
#JFT2021w #JTF2021w‗g 2021.01.24 7 タグの活用 タグのページ おススメタグ 上位概念、下位概念、対立する技術など 本の一覧。 紹介・販売サイト、発行日・イベントなど
#JFT2021w #JTF2021w‗g 2021.01.24 8 技術スタック 開発者 本番環境 File Storage ユーザー
ギポタル アプリ (JS) ブラウザ 認証基盤 画像
#JFT2021w #JTF2021w‗g 2021.01.24 9 誰が作っているのか?
#JFT2021w #JTF2021w‗g 2021.01.24 10 このチームの特徴: ・会社も年齢もバックグラウンドもバラバラ ・「技術書コミュニティ」にいる人が多い ・上司-部下など、利害関係のない関係 ・義務、お金などの絡まない関係 自らの意思で集まったチーム!
#JFT2021w #JTF2021w‗g 2021.01.24 11 作るにあたって定めた目標 ①ギポタルを立ち上げる ②モブワークで進める ③実装過程を本にする
#JFT2021w #JTF2021w‗g 2021.01.24 12 ①ギポタルを立ち上げる モノができないと話にならない 最初・最重要の目標・目的 ユーザーフィードバック 何より自分が欲しい
#JFT2021w #JTF2021w‗g 2021.01.24 13 ②モブワークで進める ・メンバーのレベル・多様性の観点 フロントエンドつよつよマンはいたが、 全部カバーできるわけではない 例:フロントはできるがDBわからん DB昔使ったことある
なんもわからん →一人じゃできない/大変 ・仕事っぽくなってはつまらない ・「やってみたい」人が得るもの(知識・経験)
#JFT2021w #JTF2021w‗g 2021.01.24 14 モブワーク楽しい ・楽しい!!! ・時間が決まってる分、集中できる! ・他の人の知見をもらう。自分の知識をあげる ・三人寄れば文殊の知恵(誰かは知ってる) ・チームとしてのレベル底上げ
#JFT2021w #JTF2021w‗g 2021.01.24 15 モブワークで作るギポタル|技術同人誌ポータル モブワーク:複数人で一つの画面・コードを見ながら進めるワーク ZOOM MURAL (コード以外のワーク) VSCode+
Live Share+ YouTube Live 技術同人誌で記録
#JFT2021w #JTF2021w‗g 2021.01.24 16 モブワークを支えるツール① ZOOM 会話・画面共有 VSCode+Live Share+YouTube Live
モブ・コード共有 アーカイブ ・すぐ会話・相談できる ・だれでも簡単に参加できる ・画面共有簡単 ・やっぱり“コード見ながら”は正義 ・コードの同時編集簡単 ・YouTubeで聞き専もOK ・やったことアーカイブとして残せる
#JFT2021w #JTF2021w‗g 2021.01.24 17 モブワークを支えるツール② MURAL (コード以外のワーク全般) 技術同人誌で記録する(文字起こし) ・付箋貼ってく感じでUI素敵 ・アイディア出しとか最高
・記録残る(議事録不要) ・やったことの理解が深まる ・売り上げでサーバー代など稼げる ・本にすることでみんなに知ってもらえる ・他の開発の参考にも! https://techbookfest.org/product/6206369472446464 https://gipotal.booth.pm/ 152P1000円
#JFT2021w #JTF2021w‗g 2021.01.24 18 モブワークでやったこと インセプションデッキ作ったり、要件定義したり・・・
#JFT2021w #JTF2021w‗g 2021.01.24 19 もちろん実装も
#JFT2021w #JTF2021w‗g 2021.01.24 20 ③実装過程を本にする目的 ・実装過程・知識の整理 ・試行錯誤は技術的に価値がある ・本を売って、サーバー代とか稼ぐ
#JFT2021w #JTF2021w‗g 2021.01.24 21 ③本にする目的1:実装過程・知識の整理 ・「最終成果」はコードとして残るが 「開発途中」をドキュメント化するのは難しい ・書くモチベーション・工数 ・試行錯誤は消える(コミットログ見る?見ない。) ・ダメな実装の例をアンチパターンとして共有化
など ・途中参加の人にも説明が簡単 経緯を説明するのは結構大変。 Slackのログは流れる/消える ・文字・図に起こすことで理解が深まる こんなの図に起こさないと 理解できませんw
#JFT2021w #JTF2021w‗g 2021.01.24 22 ③本にする目的2:実装過程にも価値がある ・NDAの縛りなく公開できるプロジェクトは稀 -業務は? 当然アウト -OSSは? もっと概念的or小改造。
-個人開発? 公開するメリットがない Webサービスの表も裏側もきちんと見る機会はほとんどない ・実装者が何を考えたかを書く ・なにをやったらどうなったかをきちんと書く うまく動かなかった例、とりあえず動かすためにやったこと、など
#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円にて頒布中
#JFT2021w #JTF2021w‗g 2021.01.24 24 進捗 ・モブワーク20回×約2時間 ・技術スタックはだいたいやってみた ・画面5枚中2-3枚ほど ・認証関係 まだ手付かず
機能・実装 済? コンセプト 〇 ドメイン取る 〇 トップページデザイン 〇 サークルページデザイン 〇 DBからデータ取ってくる 〇 DBに権限つける 〇 自動デプロイ 〇 画像表示する 〇 DBのテーブル設計 〇 テーブル実装 途中 ユーザー認証 × 実データの設計・入力 × ファイルストレージ確保 × バグ取り・テスト × 結構進んだっぽくないですか?
#JFT2021w #JTF2021w‗g 2021.01.24 25 得たもの モダンなフロント エンドとは? フロントとバックの繋ぎ DBのいろいろ モブワークの経験
ファシリテーション アジャイルのいろいろ MURALの使い方 Zoom、LiveShare… 開発の経緯を まとめた本150ページ 売り上げもそこそこ チーム開発の経験 目標設定
#JFT2021w #JTF2021w‗g 2021.01.24 26 でも停滞しました。
#JFT2021w #JTF2021w‗g 2021.01.24 27 開発の停滞 6月 5回 7月 7回 8月
4回 9月 1回 10月 3回 11月(仕切り直しを決断) 0回 12月(進捗なし) ― モブワークの回数 目に見えて減った・・・
#JFT2021w #JTF2021w‗g 2021.01.24 28 外部要因:言い訳 6月 5回 7月 7回 8月
4回 9月 1回 10月 3回 11月(仕切り直しを決断) 0回 12月(進捗なし) ― モブワークの回数 「執筆に忙しかった」という言い訳はある 技術書典9 技術書典10
#JFT2021w #JTF2021w‗g 2021.01.24 29 内部要因 機能・実装 済? コンセプト 〇 ドメイン取る
〇 トップページデザイン 〇 サークルページデザイン 〇 DBからデータ取ってくる 〇 DBに権限つける 〇 自動デプロイ 〇 画像表示する 〇 DBのテーブル設計 〇 テーブル実装 途中 ユーザー認証 × 実データの設計・入力 × ファイルストレージ確保 × バグ取り・テスト × みんなでわいわいモブでやる作業 技術スタックはだいたい一通りやった。 →モブでやるには地味な作業比率が増えた 未 未
#JFT2021w #JTF2021w‗g 2021.01.24 30 外的モチベーションの重要性 ・みんなでやるから楽しい/やろう!は重要 雑談だけでも。 部室に遊びに行く感じ? ・定例開催重要 ちょっと忙しいけど、やってるなら行くか・・・
ただし、無理・義務感になると楽しくない 楽しくないと続かない 頻度が下がると足が遠のく
#JFT2021w #JTF2021w‗g 2021.01.24 31 時間は残酷だ① 停滞するまでの2-3か月:めっちゃ楽しー で走れる でも、夢は醒める。 2か月×5週×2時間 =20時間の作業
仕事だったら? 20h÷5時間/日とすると、4日分(≒1週間) だけどモチベーション減耗は実時間(2か月経過)で来る
#JFT2021w #JTF2021w‗g 2021.01.24 32 時間は残酷だ② 時間が経つと色々なことを忘れる コンテキストを復活させるのにコストかかる 前回(先週)なにやったっけ? どこまで進んだっけ? 今日なにやるんだっけ?
あれ?これ何のためにやってるんだっけ?(開発的コンテキスト) あれ?メンバー減ってきたけど、なんのためにやってるんだっけ? (モチベーション、やる理由) 作業開始のオーバーヘッドが大きい 仕事だったら? 4日分(1週間)なら忘れないよね? 2時間ワーク中30分をコンテキスト共有で使う、など
#JFT2021w #JTF2021w‗g 2021.01.24 33 反省点 ・短期集中・短期決戦に持ち込めなかった ・モブワークが目的化した ・実時間によるモチベ損耗のケアができなかった
#JFT2021w #JTF2021w‗g 2021.01.24 34 どう仕切りなおすか? 最適解はない。かも。
#JFT2021w #JTF2021w‗g 2021.01.24 35 処方箋:目標は欲張らない ①ギポタルを立ち上げる ②モブワークで進める ③実装過程を本にする 最初はうまく回った。 後半、モブワークが重くなった
・モブになじまない作業率増えた ・教える負荷は大きい。 記録のためのYoutube配信準備がおっくうに。 (執筆自体はもともとおやかた一人の作業) つらくなったら損切りする。優先順位の確認、目標を切る、など 当初目標
#JFT2021w #JTF2021w‗g 2021.01.24 36 仕切り直しの例? 自分でやる できるなら最初からやってる・・・
#JFT2021w #JTF2021w‗g 2021.01.24 37 仕切り直しの例:できる人にやってもらう チーム内でできる人にやってもらう? できる人/やる人のモチベ律速になる。 (時間・体調・メンタルに大きく依存) 工数タダ乗りになってしまう
#JFT2021w #JTF2021w‗g 2021.01.24 38 それでも、できる人にやってもらうも一案 お金? -任意プロジェクトではお金ない。 ん万/Day払う? さすがに無理― クラウドソーシング?
ほんとに「仕事・業務」になって楽しくない。
#JFT2021w #JTF2021w‗g 2021.01.24 39 人 という単位の提案:SDD:Sushi Driven Development 無回転寿司で頬をぺちぺちしてメンバーに作業してもらうという選択 あるいはUDD:うまいものDriven
使い方: この実装量は 3人寿司だな。 美味い寿司は 生臭くない。
#JFT2021w #JTF2021w‗g 2021.01.24 40 もう一つの最適解は? 誰か新規参入者を勧誘して、 仕切り直しする。 反省はどこへ行った?
#JFT2021w #JTF2021w‗g 2021.01.24 41 絶対に楽しいので、あなたもやりませんか? 一緒にギポタルのチーム開発やりましょう。 (全力の勧誘!) Let’s Join us!
#JFT2021w #JTF2021w‗g 2021.01.24 42 反省点と解決策 ・短期集中・短期決戦に持ち込めなかった →目的とマイルストーン、MVPの設定 ・モブワークが目的化した →モブでやるところと実装の切り分け ・実時間によるモチベ損耗のケアができなかった
→SDDでモチベ補給。 MVP(実用最小限の製品: minimum viable product)
#JFT2021w #JTF2021w‗g 2021.01.24 43 まとめ:ありきたりだけど・・・ 楽しいこと 学びがあること 成果があること 両立がとっても重要 どれが欠けてもつらい
個人開発・チーム開発は
#JFT2021w #JTF2021w‗g 2021.01.24 44 今回身に染みたこと・・・ 「義務」ではない開発では どれかが欠けると如実に進捗に表れる モチベ駆動開発は、 短期集中・短期決戦を旨とする
#JFT2021w #JTF2021w‗g 2021.01.24 45 告知① 今日の開発経緯が載った本はこちら https://techbookfest.org/product/6206369472446464 https://gipotal.booth.pm/ 152P 1000円。
ギポタル開発記 -モブワークで学びながらわいわい作る 技術同人誌ポータル‐ 技術書典、Boothで頒布中。 参加者募集中 Webサービス作ってみたい モブワーク・モブプログラミングやってみたい などなど。
#JFT2021w #JTF2021w‗g 2021.01.24 46 告知② 技術同人誌書きませんか? 現在進行中の企画 気になったら「書いてみたいかも」などつぶやいて! 探して声かけます。 カンファレンス参加を後押しする本
- カンファレンスの探し方 - セッションをより楽しむ方法 聴講、メモ、インプットの仕方 - オンライン/オフライン交流を楽しむ方法 - ブログを書くまでがカンファレンス参加です などなど。 1ページ、コラム1本からでも参加OK。 https://note.com/oyakata2438/n/nb0747d0846f1
#JFT2021w #JTF2021w‗g 2021.01.24 47 今聞いてる方、この後Youtubeで追っかけで聴く方へ ぜひ参加を - カンファレンスに参加している時点で執筆可能 - あなたの経験、やってることを共有して、
楽しい思いをする人を増やしましょう - アウトプットの練習にも! 1ページ、コラム1本からでも参加OK。
#JFT2021w #JTF2021w‗g 2021.01.24 48 告知③ 同人誌から商業化した本もあります。
#JFT2021w #JTF2021w‗g 2021.01.24 49 告知④ 次回の技書博は・・・ •2021年6月19日(土) •大田区産業プラザPiO 大展示ホール •オフライン+オンラインのハイブリッド予定
•楽しい企画を検討中 •3月頭ごろにサークル募集開始(予定) •Twitter @gishohaku をチェックしてね! •協賛にご興味ある方はお声がけください イベントのコンセプト、設計などは、D1を聴いてください D1:技術イベント主催を通じて利用者体験を設計する
#JFT2021w #JTF2021w‗g 2021.01.24 50 質問・コメントあれば Zoom 質問ルームGにいます。 トラックG #jtf2021w_g または、
Twitter @oyakata2438まで お気軽にー