ベタープログラマ
書籍「ベタープログラマ」の14章を読んで、「ソフトウェア開発とは何なのか」という問いに直面しました。ベタープログラマがさまざまなメタファを用いて明らかにしようとするソフトウェア開発のあり方、一つ一つに私は共感しました。このうちどのくらい出来ているのか?を考えるのに良い機会となりました。
一方、ソフトウェア開発とは何かという問いの向こう側に、そもそも「ソフトウェアとは何か」という問いがあることに気づきました。ソフトウェアとは一体何でしょう?
煩わしさを減らす、嬉しさを増やす
先日、ベトナムのホーチミンに講演に行く機会がありました。そこで空港からの移動のためにUBerを使ったわけですが、やっぱりこれが便利なわけですね。少し詳しく考えてみると、もしUberが無かったら、私は右も左も分からない空港周辺で、タクシーを探すことになります。向こうのタクシーの売り込みは激しく、異国の地の不安からきっとその勧誘に乗ってしまうことでしょう。さて、ベトナムの方の英語を私は聞き取れるでしょうか。逆に私の不自由な英語は通じるでしょうか。行き先に無事辿り着けるでしょうか。メーターは読めるでしょうか。ベトナムの通貨ドンはインフレしています。20,000ドンが100円くらいです。慣れない通貨での支払いができるでしょうか。支払いのときに交渉が発生すると尚更面倒です。以上のように不安でいっぱいです。
一方、Uberなら行き先は事前に地図上で選び、支払い額も固定です。待ち合わせ場所に気をつければすぐにドライバーと出会うことができます。簡単に行き先をすり合わせれば、あとは乗っておくだけです。決済も自動です。明らかに、コミュニケーション上の「煩わしさ(pain)」は減り、異国の地でも安心して行き先に辿り着ける「嬉しさ(gain)」が得られました。Uberが無かった時の場合と、その差は雲泥です。
ソフトウェアとは何かの問いに、クラウド上の何らかのサービスであること、APIであること、業務支援を行なうツールであること、SNSな何か、あるいはフレームワークやライブラリ、さまざまな答え方がでてくると思います。そうした形態ではなく、効果に着目すると、先にあげた「煩わしさを減らす」「嬉しさを増やす」の2つに帰結することが分かります。
ということは、これから作ろうとしているソフトウェアを思い浮かべたときに「煩わしさを減らす」「嬉しさを増やす」、両方とも思いつかないようですと、そのソフトウェアは本当に必要なのかという疑問が湧いてきます。
また、「煩わしさを減らす」「嬉しさを増やす」の効果にも度合いがあります。そもそもそのソフトウェアが無かったときに必要となる代替活動の煩わしさの大きさ、それで得られる嬉しさの大きさ、が大したものでなければ新たなソフトウェアをつくっても、大きな効果は得られ無さそうです。
それは、ユーザーの価値への反応の強さに繋がります。これからつくるソフトウェアがユーザーにどの程度受け入れられるのか、その想像の助けになるでしょう。
正しいものを正しくつくりたいか?
ベタープログラマの14章にはもう一つ問いがあります。それは、正しいものをつくりたいか?という問いです。私がいまソフトウェア開発に関わっているのは、まさに正しいものを正しくつくるに向かい続けたいためです。
正しいものとは、そのソフトウェアを利用する人の目的に適していて、「煩わしさを減らす」「嬉しさを増やす」をもたらすものだと言えます。そうした正しさが最初から分かっていて、どうすればいいか分かっているということはなかなか無いことだと思います。ゆえに、ソフトウェア開発は、何があれば良いのかという探索的な活動となります。そして、ユーザーとの関わりの中で、目的に適したものは何なのか気づくことになります。
そのためにはソフトウェアの作り方として変更容易性を高めておくことが望ましく、正しくつくるとは、ソフトウェアを変え続けることができる作り方といえます。
こういう作り方をすれば必ず正しいものが正しくできるという方法はありません。ギルドワークスが、正しいものを正しくつくるを旗印として掲げているのは、そのようなソフトウェア開発であろうとする意思の表明であり、われわれとわれわれに関係する方にとっての行き先を明確にすることであり、そのための技を磨き続けるというコミットメントを意味しています。
そこに一緒に向かう人達には、作り手はもちろん、「煩わしさを減らす」「嬉しさを増やす」ソフトウェアを必要とする人たちも含まれます。ソフトウェア開発を探索から発見をする活動と捉えると、この両者が直接的、間接的に一体となってつくっていくことが求められます。共創が正しいものを正しくつくるへと歩みを進められるのだと私は感じています。
8
取り消す
この記事に共感したら、何度でも押してこの記事のポイントをみんなでアップしよう。