「ソフトウェア開発ファシリテーション」アドベントカレンダー17日目の記事です。
私はRuby on Railsというフレームワークを利用した開発歴の長いプログラマなのですが、そのフレームワークを生み出したのがBasecamp(旧37signals)という会社で、かつその会社の持つ思想の大ファンなのです。そしてその会社がソフトウェア開発について書いたGetting Realという本が私のバイブル的な存在でして、その本に書いてある中でも最も印象的でいつも心に秘めているのが次の言葉です。
Beware of the “everything but the kitchen sink” approach to web app development. Throw in every decent idea that comes along and you’ll just wind up with a half-assed version of your product. What you really want to do is build half a product that kicks ass.
ウェブアプリの開発に対して「何でもかんでも」というやり方には気をつけましょう。ご立派なアイデアを全て投入すると、中途半端な製品になってしまいます。本当にしなければならないことは、しっかりした半分の製品をつくることです。(意訳)
Getting Real CHAPTER21: Build half a product, not a half-ass product
機能だけとにかく詰め込んであるけどUXが全然考えられていないような中途半端なものを作るぐらいなら、機能は絞られているけどUXがしっかり考えられているものを作るべきだ、という風に私は理解しています。
ソフトウェア開発の現場ではよく「このぐらいの機能量のものなら、どのぐらいで作れますか?」と聞かれますが、このコンテキストから考えると全くのナンセンスです。
単なる機能の塊が欲しいのか、製品を作り上げたいのか、どちらに立つのでしょうか?
こう聞くと多くの人は後者だと答えますが、後者を実現するのはできるだけ早いユーザーテストと、そのフィードバックによって熱い鉄を打つかのように機能を洗練させていく過程だと私は考えています。
ちなみに「これ以上削れる機能はあるか?」ではなく「ユーザーテストに必要最低限の機能は何か?」と考えると、上手く機能を絞れます。製品として必要だと思われる機能を絞るのは怖いですが、ユーザーテストなら・・・と、少し気持ちを柔らかくすることができるからです。
Getting Realが書かれたのは2006年と、今から14年も昔の本で、当時と今とでは具体的なところで食い違う点もありますが、哲学的な部分は今も変わらずに楽しめる内容です。Webで全文無料で公開されていますので、読んだことのない方はぜひ冬休みにどうぞ〜。