新鮮

頑張らないために頑張る

品質がいいだけのシステムはゴミ?

 

先日に引き続き、約10年携わっていた「社内システムエンジニア」についてツラツラと書いてみようと思う。

このエントリでは主に SIer さんや PG さんに参考になる話ができればと思う。みなさんの仕事の上流で何が行われて、その上流の人々の関心事が何かを共有することで、お互いにハッピーになれる部分があるのではないかと考えている。またそれ以外の方にも世の中にはそんな仕事があるのだと知ってもらえれば嬉しい。

 

今回は「良いシステムとはどんなシステムか?」である。

 

良いシステムとは?

「良いシステムとは?」とお題が出たとき、あなたはどう答えるだろうか。

もし SIer さんや PG さんだったら、こう答えるかもしれない。

  • バグがなくて安定して稼働しているシステム
  • たくさんの機能を実装したシステム
  • 最新の技術を採用したシステム
  • ユーザの使い勝手がいいシステム
  • 拡張性に優れたシステム

うん。

たしかにこれらは良いシステムだと思う。

 

ところが、システム利用企業の社内システムエンジニアの立場で言うと、良いシステムとはシンプルに 使われるシステム = 良いシステム なのである。

 

どういうこと?

あまり大きな声で言う話ではないのだが、実のところ、調達したシステムを当初の目論見通りに使うことは稀である。僕の肌感覚では、全く使われないシステムが2割程度。使われているシステムでも実装機能の2割も使われていれば御の字というところだと思う。パレートの法則然りである。

「え、あれだけ仕様変更を繰り返したのに使ってないの?」と思うかもしれない。

まあ実際はそんなものである。

これはなぜかといえば、死んでも業務を変えたくないという現場の抵抗があるからなのだが、それには色々と言いたいことがあるので別のエントリで考えてみたい。

 

少し話を戻そう。

なぜシンプルに「使われる」ことだけが重要なのだろうか。説明のために、使われる vs 品質のマトリクスで分類してみよう。

- 品質低い 品質高い
使われる 問題児 スター
使われない 無害 ゴミ

 

ここで「問題児」「スター」は議論の余地はないだろう。「無害」については、仮にシステム障害が発生してもスローダウンが発生しても、使われていなければ影響がないので正直どうでもいいのである。

 

注目頂きたいのは、どれだけ品質が高くても使われなければ「ゴミ」という点だ。ウォーレンバフェット氏曰く「やる意味のない仕事は上手にやったところで意味はない」の通り、システムは使われなければ効果がないし、効果がなければ作る意味がない。

いつものあの絵を引用しよう。

 

 

どんなにバグがなくても必要なものではない。どんなに安定稼働してても必要なものではない。どんな技術でもどんな使い勝手でもどんな拡張性でも必要なものではない。ただ一点、必要であり使われていること。それだけが良いシステムのモノサシである。

 

少々キツイ言い方で申し訳ないが、「ゴミ」は「無害」よりも困ったシステムである。高品質な方式設計により、冗長構成だったり HA 構成だったり災対構成だったりバースト対策だったりを実現していることから維持費(OPEX)が跳ね上がるからだ。

あなたは思うだろう。「捨てればいいだけなのでは?」と。

僕もそう思う。

だが「使われていない = 失敗した」となり開発部長の責任問題に発展するので、埋殺しして償却完了まで放置するしかないのが現実的なところだ。

 

煽りタイトルにしたので、念のために補足しておく。

誤解してほしくないのは品質を追求することをゴミだと言っているわけではない。これはむしろまったくの正反対で、高品質のシステムをゴミではなくスターにしたいのである。せっかく仲間になり作り上げた芸術品、何も残らないことにはしたくない。

 

また「使う使わないは利用企業の問題であって SIer 責任範囲ではない」と思う方もいるかもしれない。

まあ Yes である。

もちろん使われないと意味が無いから仕様変更を飲めとかゴージャスな教育用資料を作れとかいうつもりは一切ない。しかしながら、プロジェクトを進めるうえでゴールを共有すると、お互いハッピーじゃないかな と思うのだ。

 

少し長くなってきたので一旦切ろう。

釈然としないまでも「使われる」システムが良いのはわかったが、ではどうやったら「使われる」のだろうか。これについては、また別のエントリで考えてみようと思う。

 

おわり