ソフトウェア開発ブースト4手
TRANSCRIPT
Rails歴半年の人間が10日間でサービスを開発しリリースす
るためにやったこと
@kobayan_tokyo
改め
ソフトウェア開発ブースト4手
@kobayan_tokyo
サマリ
・年末のがんばりと成果
・そもそもの経験値
・ソフトウェア開発ブースト4手・突貫システムの現状
年末のがんばりと成果
年末にWebサービスを公開しました
「勉強会ですよ Beta」 http://itcal.jp/
開発着手:12月21日 夕方 公開:12月31日 21:30
成果
ブログ書いたらすごく拡散された!
成果
ちゃんと使われてる(?)らしく、嬉しい。
そもそもの経験値
着手時点の経験値
・ゲームプログラマ(C++)歴:10年・Webまとも歴:半年
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 グループ作る。
しかし冬期休暇中に
なんか作りきっちゃいたい
勉強したとはいえまだまだ経験が浅い…
そこでブースト4手
1.紙ノートの活用
やること
・設計
・タスク抽出、見積もり
メリット
・レイアウト自由、レイテンシゼロ
・ディスプレイ占有しない
・使用場所を問わない(電車内OK)
ブーストポイント
・移動時間さえも開発時間になる
やること
・作業時間、休憩時間の記録
・見積もりと実績の比較
1週間程度のスプリントを
1日に圧縮したようなイメージ(個人だからこそ可能)
・超細分化したタスクをモリモリ消費&評価していく
・タスク調整は主に電車の中で行う(紙ノート活用)
ブーストポイント
・スクラムと同じような効用を短期間で得られる
2.時間計測
3.画面を広げる
使用ツール
・外部モニタ(画面+1)
・タブレット(画面+1)
・紙ノート(画面+1)
・プリンタ(画面+1)
ブーストポイント
・情報切替コスト減
4.美学を捨てる
やること
・郷に従う。培ってきたもの(C++思考)を捨てる。
・コピペ上等。重複コード上等。動くのが先決。
・過度な学習を控える。理屈はともかく動けば良い。
取り返しは付く
・初心に戻ろう。知識は後からいくらでも融合できる。
・まずは仕上げよう。後からいくらでもリファクタリングはできる。
・まずは仕上げよう。後からいくらでも勉強しなおせる。
4.美学を捨てる
ブーストポイント:
・美学を捨てた分がすべて稼働になる
美学を捨てたシステムの現状
汚1:クローラはコピペ満載
・共通処理の部品化など考えず重複コード書きまくり。
↓・12月30日あたりにやっとリファクタリング着手。
・1月3日あたりにやっとファイル分割(それまでは1ファイル1000行くらいあった)
↓リファクタリングのタイミング:
・機能追加するときに「ついでに」やる程度。
汚2:実はデータ自動収拾じゃなかった
・実は1月5日くらいまでは不定期に手動でコマンド叩いてた。
↓・取得済イベントの再取得(依頼があった場合)はいまだに手動でやってる。
↓現状それほど困ってないので自動再取得の予定は未定。
汚3:慣れているという理由でMySQL・「えっPostgreSQLじゃないの?」って突っ込まれた
・マイグレーションは思いつきでモリモリ実行。
・使ってないカラムがいっぱい残ってる。
・文字列カラムに数値リストをコンマ区切りで突っ込んだり。
↓・現状困ってないので整理の予定は未定。
汚4:scaffoldまんまのページが公開状態
「えっ」って感じの生データが表示されてるけど、デバッグに便利なので残してる。
汚5:クローラ用内部データも見れる
・実はクローラ設定データも見れちゃう。
Heroku実験用VPS
汚6:環境がカオス
develop appproduction app
develop_with_production_db app
MySQL 開発・本番混合MongoDB MySQL
本番用クローラ本番管理データ更新用Webフロント
開発確認用Webフロント
crontab
開発確認用クローラ 本番Webフロント
ひとこと美学について
美学が無い→未熟美学を持つ→普通
美学の捨て所を知る→NextStage
くれぐれも、「美学が無い」ことと「美学を捨てる」ことを混同しないように…
今回最も重きを置いた点「早期リリース」
最悪のシナリオ
「開発途中で自然消滅」これは避けたい
シンプルにして最大の対策
自然消滅を防ぐ
1週間程度で作り切っちゃう
そのためならば多少の美学は捨て置こうではないか
ご清聴ありがとうございました