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