ソフトウェア開発ブースト4手

32
Rails歴半年の人間が10日間 でサービスを開発しリリースす るためにやったこと @kobayan_tokyo

Upload: keiichi-kobayashi

Post on 28-May-2015

576 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: ソフトウェア開発ブースト4手

Rails歴半年の人間が10日間でサービスを開発しリリースす

るためにやったこと

@kobayan_tokyo

Page 2: ソフトウェア開発ブースト4手

改め

Page 3: ソフトウェア開発ブースト4手

ソフトウェア開発ブースト4手

@kobayan_tokyo

Page 4: ソフトウェア開発ブースト4手

サマリ

・年末のがんばりと成果

・そもそもの経験値

・ソフトウェア開発ブースト4手・突貫システムの現状

Page 5: ソフトウェア開発ブースト4手

年末のがんばりと成果

Page 6: ソフトウェア開発ブースト4手

年末にWebサービスを公開しました

「勉強会ですよ Beta」 http://itcal.jp/

開発着手:12月21日 夕方   公開:12月31日 21:30

Page 7: ソフトウェア開発ブースト4手

成果

ブログ書いたらすごく拡散された!

Page 8: ソフトウェア開発ブースト4手

成果

ちゃんと使われてる(?)らしく、嬉しい。

Page 9: ソフトウェア開発ブースト4手

そもそもの経験値

Page 10: ソフトウェア開発ブースト4手

着手時点の経験値

・ゲームプログラマ(C++)歴:10年・Webまとも歴:半年

Page 11: ソフトウェア開発ブースト4手

2013年は勉強の年でした

3月・ゲーム会社辞める・これからはWebの方向で。(と考えつつ寝る)

4月・とりあえず寝て過ごす(大事)

5月・Git学ぶ・即仕事で使う・GitHubのオープンソースプロジェクトへプルリクエスト初体験

7月・Ajax学ぶ・即仕事で使う・クラウドソーシング発注初体験

8月・何故かASP.NET の仕事を請ける・学ぶ・納める。・Bootstrap3が出る。学ぶ。

10月・講師を始める。C#とAndroidを教え始める。

12月・イベント主催初体験・Rails4学ぶ・CoffeeScript学ぶ・MongoDB学ぶ・Heroku学ぶ・自サービスを開発・公開

1月・IT勉強会なるものに通い始める

6月・Rails学ぶ・即仕事で使う・Stackoverflow初投稿・ちゃんとブログ書き始める・はてブ100初体験

11月・IntelliJ IDEA 使い始める。・JetBrains グループ作る。

Page 12: ソフトウェア開発ブースト4手

しかし冬期休暇中に

なんか作りきっちゃいたい

勉強したとはいえまだまだ経験が浅い…

Page 13: ソフトウェア開発ブースト4手

そこでブースト4手

Page 14: ソフトウェア開発ブースト4手

1.紙ノートの活用

やること

・設計

・タスク抽出、見積もり

メリット

・レイアウト自由、レイテンシゼロ

・ディスプレイ占有しない

・使用場所を問わない(電車内OK)

ブーストポイント

・移動時間さえも開発時間になる

Page 15: ソフトウェア開発ブースト4手

やること

・作業時間、休憩時間の記録

・見積もりと実績の比較

1週間程度のスプリントを

1日に圧縮したようなイメージ(個人だからこそ可能)

・超細分化したタスクをモリモリ消費&評価していく

・タスク調整は主に電車の中で行う(紙ノート活用)

ブーストポイント

・スクラムと同じような効用を短期間で得られる

2.時間計測

Page 16: ソフトウェア開発ブースト4手

3.画面を広げる

使用ツール

・外部モニタ(画面+1)

・タブレット(画面+1)

・紙ノート(画面+1)

・プリンタ(画面+1)

ブーストポイント

・情報切替コスト減

Page 17: ソフトウェア開発ブースト4手

4.美学を捨てる

やること

・郷に従う。培ってきたもの(C++思考)を捨てる。

・コピペ上等。重複コード上等。動くのが先決。

・過度な学習を控える。理屈はともかく動けば良い。

取り返しは付く

・初心に戻ろう。知識は後からいくらでも融合できる。

・まずは仕上げよう。後からいくらでもリファクタリングはできる。

・まずは仕上げよう。後からいくらでも勉強しなおせる。

Page 18: ソフトウェア開発ブースト4手

4.美学を捨てる

ブーストポイント:

・美学を捨てた分がすべて稼働になる

Page 19: ソフトウェア開発ブースト4手

美学を捨てたシステムの現状

Page 20: ソフトウェア開発ブースト4手

汚1:クローラはコピペ満載

・共通処理の部品化など考えず重複コード書きまくり。

↓・12月30日あたりにやっとリファクタリング着手。

・1月3日あたりにやっとファイル分割(それまでは1ファイル1000行くらいあった)

↓リファクタリングのタイミング:

・機能追加するときに「ついでに」やる程度。

Page 21: ソフトウェア開発ブースト4手

汚2:実はデータ自動収拾じゃなかった

・実は1月5日くらいまでは不定期に手動でコマンド叩いてた。

↓・取得済イベントの再取得(依頼があった場合)はいまだに手動でやってる。

↓現状それほど困ってないので自動再取得の予定は未定。

Page 22: ソフトウェア開発ブースト4手

汚3:慣れているという理由でMySQL・「えっPostgreSQLじゃないの?」って突っ込まれた

・マイグレーションは思いつきでモリモリ実行。

・使ってないカラムがいっぱい残ってる。

・文字列カラムに数値リストをコンマ区切りで突っ込んだり。

↓・現状困ってないので整理の予定は未定。

Page 23: ソフトウェア開発ブースト4手

汚4:scaffoldまんまのページが公開状態

「えっ」って感じの生データが表示されてるけど、デバッグに便利なので残してる。

Page 24: ソフトウェア開発ブースト4手

汚5:クローラ用内部データも見れる

・実はクローラ設定データも見れちゃう。

Page 25: ソフトウェア開発ブースト4手

Heroku実験用VPS

汚6:環境がカオス

develop appproduction app

develop_with_production_db app

MySQL 開発・本番混合MongoDB MySQL

本番用クローラ本番管理データ更新用Webフロント

開発確認用Webフロント

crontab

開発確認用クローラ 本番Webフロント

Page 26: ソフトウェア開発ブースト4手

ひとこと美学について

Page 27: ソフトウェア開発ブースト4手

美学が無い→未熟美学を持つ→普通

美学の捨て所を知る→NextStage

くれぐれも、「美学が無い」ことと「美学を捨てる」ことを混同しないように…

Page 28: ソフトウェア開発ブースト4手

今回最も重きを置いた点「早期リリース」

Page 29: ソフトウェア開発ブースト4手

最悪のシナリオ

「開発途中で自然消滅」これは避けたい

Page 30: ソフトウェア開発ブースト4手

シンプルにして最大の対策

自然消滅を防ぐ

Page 31: ソフトウェア開発ブースト4手

1週間程度で作り切っちゃう

そのためならば多少の美学は捨て置こうではないか

Page 32: ソフトウェア開発ブースト4手

ご清聴ありがとうございました