Download - Masuidrive Working Style
![Page 1: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/1.jpg)
Yuichiro MASUI <[email protected]>
masuidrive working stylemasuidriveが考える高品質なアプリを速く作る方法
Created at 11 Jul 2007
![Page 2: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/2.jpg)
私たちの仕事とは
![Page 3: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/3.jpg)
品質が高いアプリケーションを
早く作る
![Page 4: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/4.jpg)
バグが少なく拡張性が高く
メンテナンスしやすい
![Page 5: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/5.jpg)
目指す開発環境
![Page 6: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/6.jpg)
良いアプリケーション作りに集中できる環境
![Page 7: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/7.jpg)
無駄なコミュニケーションをしない
![Page 8: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/8.jpg)
会議の資料は前日までにメンバーに公開
![Page 9: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/9.jpg)
会議は発表の場では無く議論の場です
![Page 10: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/10.jpg)
前日までに資料が出なかった場合には開催しない
![Page 11: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/11.jpg)
作業の進捗状況の確認なども無駄なコミュニケーション
![Page 12: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/12.jpg)
メールやIMはお気軽に
![Page 13: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/13.jpg)
IMは忙しいときは無視するのでそのときはメールで
![Page 14: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/14.jpg)
全員の作業状況が常に公開されている
![Page 15: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/15.jpg)
作業内容は全て公開問い合わせをしなくても作業状況が分かる
![Page 16: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/16.jpg)
誇りを持って自分がした仕事をみんなに公開する
![Page 17: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/17.jpg)
開発者の増減に対応
![Page 18: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/18.jpg)
仕事が増えたら他人に振れるように
![Page 19: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/19.jpg)
その為の記録と情報の整理
![Page 20: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/20.jpg)
企画書なども全てバージョン管理する
![Page 21: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/21.jpg)
その為の仕組み作り
![Page 22: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/22.jpg)
すべてはSubversionで管理
![Page 23: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/23.jpg)
変更履歴を全て残す
![Page 24: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/24.jpg)
フロントエンドはTrac
![Page 25: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/25.jpg)
口頭で仕事をしない
![Page 26: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/26.jpg)
口頭で依頼があってもチケットがないと受けない
![Page 27: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/27.jpg)
議事録や仕様はすべてWikiに書く
![Page 28: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/28.jpg)
Wikiに書いてないことは無かったことにする
![Page 29: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/29.jpg)
作業の明文化
![Page 30: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/30.jpg)
明文化することで各人の作業負担なども
見えてくる
![Page 31: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/31.jpg)
現状の作業量を把握せずに新たなタスクが振られるのを防ぐ
![Page 32: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/32.jpg)
機能より期日優先
![Page 33: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/33.jpg)
予定に間に合わない場合は公開を遅らせるのではなく
機能を減らす
![Page 34: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/34.jpg)
公開に間に合わせる為にやっつけで書いたコードは
バグの温床
![Page 35: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/35.jpg)
どの機能を減らすのか増井と相談
![Page 36: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/36.jpg)
手作業はしない
![Page 37: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/37.jpg)
ファイルのアップロードやゴミファイルの削除など同じ作業を繰り返さない
![Page 38: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/38.jpg)
Don’t Repeat Yourself
![Page 39: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/39.jpg)
その為にコマンド化
![Page 40: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/40.jpg)
シェルスクリプトやCapistranoを使う
![Page 41: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/41.jpg)
コマンド化することで同じ作業を誰でもできる
![Page 42: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/42.jpg)
コマンドは実行できるドキュメント
![Page 43: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/43.jpg)
この4つの連携により多人数が遠隔地でも混乱せずに作業を行える
![Page 44: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/44.jpg)
コーディングフェーズの具体的な作業指針
![Page 45: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/45.jpg)
Trac重要
![Page 46: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/46.jpg)
指示は全てTrac経由
![Page 47: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/47.jpg)
タイムラインはマメに確認
![Page 48: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/48.jpg)
チケットもRSSリーダで読もう
![Page 49: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/49.jpg)
コマンドも含め全てのファイルはSubversionで管理
![Page 50: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/50.jpg)
個人リポジトリに保存
![Page 51: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/51.jpg)
その日の作業内容と次の日の予定を日報に登録
![Page 52: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/52.jpg)
なるべく次の日に増井が返事を返します
![Page 53: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/53.jpg)
作業をするときはTracへチケットを切る
![Page 54: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/54.jpg)
自分で気が付いて変更する場合でもチケットを切る
![Page 55: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/55.jpg)
作業が終わったら自分で閉じずに増井に回すこと
![Page 56: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/56.jpg)
30分調べても分からなかったら増井に聞く
![Page 57: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/57.jpg)
Railsの事なら聞いた方が早い覚えてもらいたい時は
検索のヒントだけ教えます
![Page 58: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/58.jpg)
モデルのUnitTestは書くintegrationはあきらめる
![Page 59: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/59.jpg)
UnitTestを書くのが大変なコードは
設計が良くないコード
![Page 60: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/60.jpg)
っていう様な事をDave Thomasが言っていた
![Page 61: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/61.jpg)
テストコードが複雑になったらモデルのコードを見直そう
![Page 62: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/62.jpg)
ZenTestのautotestを常に走らせる
![Page 63: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/63.jpg)
コントローラのテストはSeleniumでやろうかな?
![Page 64: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/64.jpg)
「なに」ではなく「なぜ」をコメントに書く
![Page 65: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/65.jpg)
「なにをしているのか」はコードを読めば分かるので
「なぜこういう風に書いたのか」をコメントに残す
![Page 66: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/66.jpg)
コレは増井の所信表明のようなものです
![Page 67: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/67.jpg)
「楽しくプログラムを組める環境」を目指していきます
![Page 68: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/68.jpg)
私もここに書いていることが実行できないことがあります
![Page 69: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/69.jpg)
そのときは怒ってください
![Page 70: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/70.jpg)
もっと良いと思うことがあれば取り入れてどんどん
変えていきます
![Page 71: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/71.jpg)
その為に努力をして行くしみなさんにも協力してもらいます
![Page 72: Masuidrive Working Style](https://reader034.vdocuments.net/reader034/viewer/2022042714/5565f859d8b42a2a4d8b482a/html5/thumbnails/72.jpg)
至らない点も沢山ありますがよろしくお願いします