ソフトウェアの3本柱バージョン管理テスティング自動化バージョン管理ソフトウェアの寿命は意外と長い。人間の記憶力ではあっさりと物事を忘れる。現場ではメンテナンスと新機能の開発を同時にしなければいけないことが多い。通常それらはまったく違う。バージョン管理なしでソフトウェア開発をするのはセーブポイントなしでRPGをクリアしろと言われてるようなもの。人間がやることを機械にやらせる。人間はクリエイティブなことができるが、飽きっぽくて忘れっぽくて繰り返しが苦手。機械は自分で考えられないけど、淡々とやるのは得意。人間が機械に働きかけるのでなく、機械が勝手にいろいろやって人間の助けが必要なときに機械のほうから人間に働きかけるようにする。Jenkinsとかそうだよね。ソフトウェアの3本柱は三種の神器?ソフトウェアの3本柱はよく「三種の神器」に例えられるが、三種の神器だと一つくらいなくても強そうな感じがするのでメタファーとして不適切。いうわけで「三脚椅子」によく例えるほうがよい。これだと1本でも脚がないと倒れる。先日、仙台で論破された。動作する綺麗なコードのためには「ちゃんと設計(きれい)して、それを実装(動作する)しかない」と大学などでは教えられる。和田さんも大学でそう習った。中二病のときにいろいろ熱中した。wきれいで動作しない間(実装前)は泥沼。「完璧な設計」だと判断できる目安がない。現在のソフトウェアは登場人物が多すぎる。「動く」ことがフィードバックの源泉。「動く」状態(フィードバック可能)と「動かない」状態(開発中)を何度も往復する必要がある。(「きれい」なものを「動く」ようにするだけでなく)動かしてからきれいにするプロセスもあるんだよ!TDDのステップ次の目標を考えるその目標を示すテストを書くそのテストを実行して失敗させる(Red)目的のコードを書く1で書いたテストを成功させる(Green)テストが通るままでリファクタリングを行う(Refactor)1-5を繰り返す黄金の回転Refactorは意思が必要なラインである。意思がないとレッドとグリーンを行ったり来たりすることになる。世の中には「動いているものに触るな」というマントラがあるwしかし、それを繰り返していると技術的負債を積み重ね、コードは腐っていくので、強い意志を持ちましょう。一つずつ少しずつ段を小さく複数を相手にしない。宮本武蔵)1対多ではなく1対1の連続にする仕留めやすい順番で仕留める。すばやくまわす自分が最初のユーザである。コードの使いやすさは使ってみないとわからない。