底辺からの視線

中年親父目線で気づいたことを雑記的に書き殴るブログ

複雑で使いにくいクソみたいなシステムが納入される原因

DXとかIT化とか呼び方は色々ありますが、システム導入を検討、導入する企業が増えてきました。ここ数年のIT周り、特にハード面での進歩は著しく、数年前であれば予算的に実現不可能だと思われていたことが実現可能なり、追い風になっていると思います。

なので、多くの企業の経営層はシステムの導入を考える訳です。普段行っている作業をシステム化すれば、工数の削減に繋がり、コストが抑えられるとか、今までの経験をコンピュータに落とし込めれば、人に依存しないで仕事が進むとか、過去の実績、顧客などをビッグデータ化して活用しようなんて夢を持ち、システム化を進めるのですが、大概、上手く行きません

意気揚々とシステムを発注し、納入され、実際に使うとクソみたいに使いにくいし、操作方法も複雑で何をすれば良いか、そもそも何が出来るシステムなのかも分からない使えないシステムに翻弄されるのです。

そして、あのシステム屋はクソだとか、ムダに高い費用を請求され、ボッタクリだの騒ぐ訳です。クソみたいな使えないシステムなのに数千万円の請求なんてあり得ないだろうと感じるのです。ですが、どんなに優秀なプログラマー集団を抱えている大企業でも、素晴らしいシステムを作っている企業でも、おそらくクソみたいなシステムを納入します。

クソみたいなシステムを導入される企業は、たとえ数億円の開発費を払ってもクソみたいなシステムしか導入されません。残念ながら、どんなに優秀なシステム屋を集めても、ムダな投資になってしまいます。

クソみたいに使えないシステムを納品される企業には共通の欠点があって、世界一のプログラマーやシステム屋を集めてもカバーすることが出来ないのです。

システム化が上手くいない企業の共通点は、作業手順が明確化されていないのです。つまり、システムの発注の前に作業手順を明確化、文書化することが出来ていれば、システム化は上手く行きます。上手く行かないのはシステム屋のスキルの無さなので、システム屋をガンガン責めて問題はありません。ですが、作業手順が明確化されていないのであれば、発注側の企業に非があるのです。

実際に、クソみたいなシステムを納入されたと支払いを拒んだ企業が裁判で、全額支払いを言い渡された事例もあります。

クソみたいなシステムが生まれる理由

そもそも日本のITリテラシーの低さ、コンピュータの知識不足がシステム化を妨げている根本的な原因です。プログラミング信仰というか、コンピュータは何でも出来るなんて勘違いをしている人間が多く、何でもすぐに出来ると思っている世間知らずの年寄りが多いことにホトホト困ってしまいます。

プログラミング、システムは何でも出来る訳ではありません

ちょっと勉強すれば分かることなのに、プログラミングは難解で理解不能だからブラックボックスにし、知ろうとしない人が多く、知らないものを作るなんて無茶な話をシステムのプロだから任せれば大丈夫なんて考えているから、クソみたいなシステムが生まれるのです。

プログラミングはコンピュータが行う手順書であって、コンピュータにどうして欲しいかを決めるのはシステム屋ではなく、システムを使う人なんです。つまり、何をするかはシステム屋が考えるのではなく、システムを発注する側が決めないと良いシステムなんて出来ないのです

システムは使う人にしか分からない

どんなにスーパーなスペシャルでグレートなプログラマーを揃えても、何をどうするかは決められません。何をどうしたいかは分かりません。もちろん、経験豊富で色々なシステムを組んでいるので「こんなシステムが良いのでは?」なんてアドバイスをすることは出来ますが、プログラマーは、システムを使う側のやりたいことは分からないのです。

クソみたいに使いずらいシステムが納入される原因は、発注者側が何をしたいか漠然としか考えていないからなんです。どんな手順でどこをシステム化するかあやふやな場合が多く、システム屋に「後はよろしくっ!!」なんて丸投げしているからクソみたいに使いにくいシステムが納入されるのです。

例えば「こんなデータ分析がしたい」なんて要望があれば、システム屋は「こんなデータを入力しなければいけないな」と考えるし「こんなことをしたい」と言われれば「じゃあこんな手順で使ってもらおう」と考えるのです。クソみたいなシステムになる理由は、何も考えずに要望だけを出して、システム屋に丸投げするからなのです。

使いやすいシステムを納入してもらうための唯一の方法

思い通りに使えるシステムを手に入れるためには、システム屋に任せる前に自社の作業の手順書を作る必要があります。今、何をどうやっているという流れ、どんなタイミングで何をしているのかを書き出し、ボトルネックとなっていることは何かを吟味すること、改善をしたいことを洗い出すことが必要です。そして、こんな分析がしたいとか、こんなデータが見たいと要望を出せば、システムに足りないデータも分かるし、そのデータを入力する手間と有効性を分析して、システムに組み込むかを考えることができるのです。

プログラムは決められたことを飽きもせずに高速で繰り返すことが得意で、判断が伴うことは苦手です。だからプログラマーはコンピュータが判断しないで行えるようにプログラミングをするのです。クソみたいに使いにくいシステムが納入される理由は、苦手な判断をコンピュータにやらせようと考える発注者のITリテラシーの低さで、コンピュータが行った方が効率が良い作業、人間が行った方が良い作業が分からず、何でもコンピュータに任せようとしているからです。

何でもコンピュータにやらせようとすると複雑な手順でデータの登録、操作を行わなければならなくなり、人間がやれば数秒で行えることを、バカみたいに素直なコンピュータにやらせるために、クソみたいに複雑で難解なプログラムを作り、結局使われない不毛なことを続けるわけです。

そこには論理もクソもなく、ただただ面倒くさいことを他人になすりつけたいという欲望が、出来ないことをさせられるコンピュータ、そして、ゴミのようなプログラムを作ることになるシステム屋、そしてクソみたいに使いにくいシステムと誰得でもないことが起こるのです。

良いシステムが欲しいのであれば、しっかりと現在行っている作業の手順を書き出してみてください。手順を見直すことでシステム化をするより、手順を変える方が安く簡単に行えることが多々あります。何でもシステム化しようとすると大失敗をします。

システム化をすること、手順を変え対応することを判断するために、まずは現在の作業手順書を作る。そうすることで問題が洗い出されます。地味だけど、一番大切なことなので、焦らず、じっくり進めてください。おそらく簡単には出来ません。

手順の見直しは、クソみたいに複雑で使いにくいシステムにお金を払う前に自社の作業手順を見直し、ムダを省くことができ、さらにその手順書があれば、プログラマーは作業を理解しやすくなり、ちゃんとしたシステムが出来上がるのです。

使えないクソみたいなシステムに数百円〜数千万円払った会社の共通点は、手順書がなく、さらに手順書に起こすことができないヒト依存型の組織。そんな本人たちが言語化できない作業はシステムに置き換えられるハズがありません。

言語化できないものは実現できないのが世の常です。