なんでもかんでも、お疲れ様
なんでもかんでも、お疲れ様。メールの挨拶も、「お疲れさまです。hyoshiokです」朝でも昼でも夜でも「お疲れ様です。hyoshiokです」。飲み会で乾杯するときも「お疲れ様で〜す」、ジョッキをがちゃーん。会社でプレゼンする時も「お疲れさまです。開発部のhyoshiokです」。そして退社するときも「お疲れさまです〜〜」。飲み会での最後の挨拶も「お疲れ様でした〜」
みんな、お疲れなんだなあ。大変なんだなあ。そんなにお疲れしないように、肩のチカラ抜きましょう。もみもみ。凝ってますね〜皆様。
コードはHOW、テストはWHAT、ドキュメントはWHY
コードはHOW、テストはWHAT、ドキュメントはWHY。
先日のソースコードリーディングワークショップ2010でそんなようなことをお話した。
これは文字通りの意味だ。コードは実装の詳細HOWを表現している。どのように問題を解いたか。プログラマの数だけ表現がある。一方テストはWHATだ。何を実現するかを表している。そしてドキュメントはWHYを記す。このシステムが解決する問題とか、なぜこのシステムを開発しなければいけなかったかという魂のドキュメントだ。
WHYがあってWHATがあってそしてHOWがある。
何か解決したい問題、あるいは表現したものがあって、それをプログラムという形に落としこんで行くのがプログラマの仕事だ。
同じ機能を実装するにも、簡潔ですっきりしたコードから、冗長で散漫なコードまで千差万別である。コード量も少ない物から、無駄に長いもの、実行時間も速いのや遅いもの、保守性に富むもの、そうでないもの。様々な評価軸で様々な実装がプログラマによって生み出される。
HOWは、無数にある。
プログラマは、様々な制約条件のもと、ベストをつくし、いいものを作って行く。そのときの方法論が様々な形でベストプラクティスとして流通している。
仕事としてプログラムを作っているのなら、そのような制約条件の一つとして、納期、すなわち締切りがある。常に素早く開発することが求められる、しかも最小のコストで、最大の品質で。そのような相反する要求に対しバランスを持って応えていくのがプログラマの仕事となる。
言うのは簡単だが行うのは難しい。
テストを書かないプログラマーがまかり通っているということを見ても、プログラマの力量はピンからキリまでである。
合わせて読みたい(未来のいつか/hyoshiokの日記より)
- そろそろ大規模ソフトウェア開発に一言いっておくか。デイリービルドとリグレッションテスト http://d.hatena.ne.jp/hyoshiok/20100312#p1
- ロートルの嘆き、アジャイル開発って何 http://d.hatena.ne.jp/hyoshiok/20100211#p1
- ソースコードリーディングワークショップ2010に行ってきた。 http://d.hatena.ne.jp/hyoshiok/20100131#p1
- 無駄なドキュメントは書くな(再考)@大井町の飲み屋談義 http://d.hatena.ne.jp/hyoshiok/20091107#p1
- 無駄なドキュメントは書くな http://d.hatena.ne.jp/hyoshiok/20050510#p1