2012年02月08日
川俣晶の縁側ソフトウェア技術雑記 total 3919 count

完璧を目指すよりまず終わらせろ

Written By: 川俣 晶連絡先

「うん。これは良い言葉だ」

  • 完璧を目指すよりまず終わらせろ
  • Done is better than perfect.

「それバイロンかい?」

「いや、俺だよ。と言いたいが、マーク・ザッカーバーグの発言として流布されたFacebookのモットーらしいぞ」

「なぜ良いの?」

「実は、終わらせることができない事例が世の中には多いからだ。プロのXXさんより俺の方が優れていると思っている人は多いが、実は終わらせて結果を出せるのがプロ。いくら部分的にプロより優秀な人がいても、終わらせることができないならそれはアマチュア。自己満足で遊んでるだけ」

「ふーん。具体的な事例がありそうだね」

「あるある。山ほどある」

「じゃあ、具体例を聞いても意味が無いわけ?」

「分かりやすくするには、反意語を提示した方がいいかもな」

「それはなに?」

  • 永遠のベータ版 (の間違った解釈)

「永遠のベータ版って何?」

「永遠に完成しないってことだ」

「えー。意味が反対じゃん」

「しかし、それが間違った解釈だ」

「どういうこと?」

「永遠のベータ版とは、変化していく世の中に追従するために、開発とリリースのサイクルを永遠に繰り返すことを意味する」

「リリースはするんだ」

「そう。リリースはする。だから、完成を宣言する前にリリースする。何回もリリースする」

「それって、完璧を目指すよりまず終わらせろ、と意味的にそっくりじゃん」

「そうだ。完成を目指すよりまず未完成でもリリース」

「じゃあ間違った解釈って?」

「リリースしないでいい、という解釈」

「えー」

「より厳密に言えば、開発中のスナップショットは公開して使わせるが、リリースと呼べる段階には到達していないわけだ」

「それってどういうこと?」

「リリースする以上は、一定の品質を確保するテストをパスしている必要があるが、開発中のスナップショットを使わせる場合はバグがいくら残っていても構わない。開発者は、リリースまでに致命的なバグを取ろうとも思わない。リリースは永遠の未来だからね」

「それが間違った解釈ってことだね」

「そうだ。この場合重要なことはいつでもリリースできるイテレーションのサイクルを回し続けることだ。リリース時期を永遠の未来の先に押しやることじゃない」