8月頃からチーム内の非エンジニア(プロデューサー/ディレクター/デザイナーなど)に対して「開発勉強会」と題した会を実施していて,僕が教える側を担当していた.頻度としては週1回で,所要時間は1時間以内.これまでに計5回実施して,一通りのことを話せたので,区切りとしてまとめておこうと思う.
テーマ
「開発勉強会」は以下のテーマで実施した.テーマ以外にも日々の MTG で出てくるキーワード(例えば EC2 や PHP など)に関しても教えて欲しいという要望があって,アドリブで説明したりもした.
- 第1回「カンバンとは?」
- 第2回「GitHub とは?」
- 第3回「チーム開発とは?」
- 第4回「他社のディレクターはどんな仕事をしている?」
- 第5回「SQL を書けるようになろう」
第1回「カンバンとは?」
去年に実施した社内勉強会の資料を再利用して「カンバンの本質とは何か?」を話した.「制約条件の理論 (TOC)」や「WIP 制限」のことは知らなかったらしく「へー!」と言っていた.またカンバンの実例を紹介した "One day in Kanban land" に関しては「次のタスクに着手できる余力があるのに WIP 制限に引っ掛かってしまうのかぁ」と言っていた.
さらに座学だけだと微妙だなと思って「直近見えているボトルネックは何がある?」などディスカッションの場も作って,価値のある「開発勉強会」になるように工夫をした.
第2回「GitHub とは?」
開発チームでよく聞くであろう言葉を中心に話した.個人的な感覚としては,とにかく「バージョン管理とは?」を理解してもらうことが重要だと思っていて,そこに時間を使った.「LGTM って何の意味があるんですか?」って質問は吹いたwww
- バージョン管理とは?
- プルリクエストとは?
- master とは?
- ブランチとは?
- マージとは?
- コードレビューとは?
- LGTM とは?
具体的に以下のような会話の意味がわかるようになることを目標にしましょうと話した.
- 「まだ master にマージされてないんですよ!」
- 「あー!○○ブランチを取り込まないとダメだ!」
- 「まだレビュー中で LGTM 出てないんですよ!」
参考として以下のページを使った.
第3回「チーム開発とは?」
主に以下の書籍を参考にして「チーム開発全般」の話をした.実際にコードを書くエンジニアじゃないと理解しにくい部分だとは思うけど,価値観だったり,思想だったり,一般的なテクニックとして,理解してもらえるように工夫した.
- チケット駆動開発とは?
- CI とは?
- リグレッションテストとは?
- 継続的デリバリーとは?
- リードタイムとは?
- テストとは?(Unit テスト / E2E テスト)
チーム開発実践入門 ~共同作業を円滑に行うツール・メソッド (WEB+DB PRESS plus)
- 作者: 池田尚史,藤倉和明,井上史彰
- 出版社/メーカー: 技術評論社
- 発売日: 2014/04/16
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (11件) を見る
第4回「他社のディレクターはどんな仕事をしている?」
視野を広く他社の事例を知ってもらう目的で Cookpad や Pepabo の事例を紹介した.「職種間のコミュニケーションをもっと円滑にするには?」という質問も出ていて,その回答にもなると考えていた.
第5回「SQL を書けるようになろう」
最後は SQL のハンズオンを実施することになり,完全オリジナルな「MySQL ハンズオン資料」を作って GitHub に公開した.是非ご活用頂ければと!!!(JOIN / LIKE / LENGTH などは入ってなく,必要な SQL があったらプルリクください!)
ハンズオンをするときに困るのはデータセットだと思うけど,今回は MySQL から公式に提供されている world
データセットを使った.国テーブル/都市テーブルなど十分なデータが入っていて,例えば「○○な国を探そう!」などハンズオンにピッタリな SQL が書けるデータセットでとにかく最高だった.オススメ!
ハンズオン資料はターミナルで進めていく前提にしたけど,ターミナルに慣れていないメンバーには "Sequel Pro" をインストールしてもらった.非エンジニアだと "Sequel Pro" などの GUI の方が良いかもなぁー!
参考資料
同時期に id:ariarijp さんも SQL ハンズオンを社内で実施されてて驚いた!!!
SQL とセットで Re:dash も使えるようになるのは凄く良さそう!非エンジニアだと Vagrant にもハマりそうだなと思って,今回は Vagrant を使わずに Mac に直接 brew で MySQL をインストールする方針にした.けど Vagrant が使えるならより捨てられる環境になって便利だー.