ソフトウェアが、やっとハードじゃなくなる

プログラマーとお仕事をすること」という本を読んでいて、ソフトウェア開発プロジェクトにおいて、#noestimatesという派閥が存在するを知りました。

twitter.com

どういう主張なのかというと、 「そもそもソフトウェアは開発の中で流動するものなので、コスト見積もりなど不可能かつ無意味、その時間をさっさと開発に充てようぜ!」 というなかなかの過激派です。

本の中では「まぁ実際ビジネス的には、スケジュールとか金額見積もり、プロダクトバックログみたいなものは必要だよね」という意見になっています。これは私も同意します。

#noestimatesでいわれているような開発は、趣味で開発するようなものに近い印象です、つまりそれは「真に柔軟である」ってことなんだなぁと思います。

3つの"ハード"

タイトルの話に戻ると、 うちはSIerなんですが、うちがつくるような業務システムでは、いままで3段階の"ハード"によってソフトウェアがもたらされていたな、と考えました。

お金における"ハード"

見積もりをすることは、ソフトウェアを一段階”ハード”にするものだと思います。

この”ハード”というのは「堅牢」「保証」のようなイメージです。

見積もりでソフトウェアをハードにして、何を守るのか。ビジネスを継続するための資本ですね。

ビジネスプロセスにおける"ハード"

業務システムを開発する場合には、「要求定義」「要件定義」と呼ばれることをします。これを実施することで、先の見積もりを実施することができるわけですね。

ただ、そのソフトウェアは何のためにあるのかというと、ビジネスを実施するためにあります。そのプロセスを定義ないしはフォローするためのものですね。なのでちゃんと自分たちのビジネスにあったプロセスを定義しないといけない。

ただ、このビジネスプロセスを考えることについて、「我々にお任せください」と言うSIerに任せっぱなしになってしまうと、本来ビジネスプロセスについて考えなければいけない当事者(お客さん側ですね)が現状・変化を認識できず、ソフトウェアの要件・機能は、また一段階"ハード"になってしまいます。

この"ハード"というのは「固定」「固執」のようなイメージです。

ソフトウェアプラットフォームにおける"ハード"

上記のような「ハード」「ソフト」という捉え方は、ソフトウェアを開発するプラットフォームとしてのフレームワークプログラミング言語に対しても言えることだと思う。

Javaのアップデートサイクルが早まったことはみなさんご存知だと思います。いままでのJavaのアップデートは数年に一度、7⇒8で3年、6⇒7で5年経過しています。 明らかに時間かかりすぎだろうという意見に反し、アップデートサイクルが早まったことに対して批判的な意見がある場合は、つまりは「サイクルが遅いほうがよかった」ということになります。

この「アップデートされない」(もちろんサポートされる前提で)というのも、ソースコードを堅牢にすることに貢献していた、ということになりますね。

プログラミング言語の面でも、一段階"ハード"になるわけです。

"ハード"のままじゃいけないこと

文面からも感じ取れるかもしれませんが、これらのハードの中で、「ビジネスプロセスにおける"ハード"」というのは、ビジネスの継続・発展には寄与しない可能性があります。

("ハード"がゲシュタルト崩壊してきた)

デブサミ関西2018で、てらだよしおさんの話にもありました。

irony9901.hatenablog.com

企業は、デジタルネイティブの世の中で生き残っていくために「ソフトカンパニー(※ソフトウェアという意味と、企業として柔軟、といういみもあるのかもしれない)」にならないと生き残れない。

企業のシステムをどう変化させるのか、というのに正解はない。企業にはそこに存在する人間がいて、その人間は他人である。だからよくある「他社で成功した事例」をそのまま持ってくることは、適合することはない。

本来は自分たちで考えていかなければならないわけです。自分たちのビジネスなわけですから。

ただ、それでも要件定義からSIerに外注して、一括でシステムを開発して、そのまま3~5年、もしくはそれ以上そのまま運用して仕事をしている、という会社は日本にはたくさんあります(国外にも結構あるのかな)。

いままでは、ホスト系ハードウェアとCOBOLに守られ、オープン化でも安定したJavaによって、多くの人が安寧の中にいました。

ですが、ここにきてのJavaのアップデートサイクル変化です。

これによって、

プラットフォームの"ソフト"化でビジネスプロセスの"ソフト"化が促される

ことに、すごく期待しています。

個人的に、業務システムについて考えるとき、常にユーザー企業側の主体化について考えています。

irony9901.hatenablog.com

irony9901.hatenablog.com

私自身面倒くさがりなので「自分たちのことはちゃんと自分たちで考えてほしい」「ちょっと男子」的なことを思うわけです。

プラットフォームのサイクルが早まることで、そのプラットフォーム上に成り立つビジネスプロセスを見直す機会が、数年サイクルから、おそらく長くとも1~2年程度のサイクルまで早まってくると思います。

見直しを実施するということは、それだけでもコストがかかるわけです。となるとソフトウェアへの投資について、考え直す機会にもなります。

ソフトウェアプラットフォームのソフト化によってビジネスプロセスがソフト化し、それによって、より多くの企業が啓蒙を得て主体的に、言葉を借りて「ソフトカンパニー」となっていくことに期待しています。

それによって、SI業界はやっと「枯れ」てくるのかもしれませんね。