新型コロナ関連で、システム開発について問題が色々出ますね。
昨今のワクチン大規模接種システムの、適当な値が入ってしまうとか、チェックしていないだとか。
ちょっと前では、新型コロナウィルスの接触確認アプリCOCOAのバグがあり、それを平井卓也デジタル改革担当相が
「無くなることはない」と発言してひと悶着。
今はやめてしまった流浪人の私ですが、ちょっと前まではシステム開発の開発責任者、プロジェクトリーダー、
チームリーダーとしてそこそこのポジションでした。
その立場から書いてみます。
皆さん、ソフトウェアの開発、システムの開発は”プロフェッショナル”が作っていると思いますか?
現実は、作らせる方(発注元)、設計する人(発注先)、作る人(発注先社員、協力プログラマなど)、どこを取ってもプロは少ないです。
作らせる方(発注元)の決まり文句は、発注時に「良きに計らってください。業界詳しいんでしょ」と言います。
そのため、同じところに発注したり、お抱えにしたりします。
設計する人(発注先)は、発注元のシステム全てを把握しているわけでは無いので、完璧な設計はできません。
作る人(特に協力プログラマ)は、言われたことをやれば良いというスタンスでやっています。意味など考えません。
そのため、適当な予約システムができてしまいますし、バグはなくならないと開き直ります。
誰も、最終形態を考えていないわけです。
作らせる方(発注元)は「なぜ、我々のシステムを知っていないのですか?」と詰め寄る始末。
私が辞めた時のお客さん(某携帯キャリア)も、平気で言っていました。自分たちのOAシステムすら私に「なぜ知らないんですか?」と
言われました。私は別の会社の人間なんですけどね。。。
設計する人(発注先)は、そこそこやるんですが、作らせる方の認識がいまいちになので、”聞き出す”という作業をやります。
ところが、作らせる方は自分のシステムを良く知らないため、うまくいかないですよね。
で、見切り発車。
当然抜けが発生します。
作る人は、言われたことしかやらないというスタンス。そういう人に100求めると、できるものは60ぐらい。40ぐらい手を抜くんですね。
そりゃそうです。「こうしたい」「こうでなくちゃ」という思いが無いんですから。
私が昔、協力さんに言われた言葉で「私が使うわけでは無いので、何がいいかわかりません」との事です。
でも皆さん、色々なソフトウェアを触って「使いにくいなー」とか思うわけです。
つまり、使っている時と作っている時の感覚が一致しない人が作っているのです。
もう「使い手の気持ちになって作りなさい」という言葉自体が死語。
(つまり「相手の気持ちになって行動しなさい」という一般用語も死語)
ネットを見ていると「バグはなくならない」「終わらせることが優先」と記載しているところが多々あります。
確かにそうです、そうなりました。
ただ、正常ルートが動くことが前提です。
つまり「終わらせることが優先」は、高いレベルに到達したうえで言っていることだと思います。
正確には「異常ルート、レアルートは後回しで」という言葉が前につくだろうと考えています。
Facebookのマーク・ザッカーバーグさんの言葉「Done is better than perfect」は、このレベルの言葉だと思っています。
ちゃんと動かないものにGoは出せないでしょ。
ということで、このシステム問題。発生するべきして発生したと思っています。
いいですか、皆さんが思う「プロフェッショナル」は「プロフェッショナル」って程では無いです。
一人の有望な人間に、ブレインと責任を押し付けて出来上がったものです。
マーク・ザッカーバーグさんの話を書いたので、ついでに一言。
Facebookを含むSNSには、脳の仕組みである報酬系を刺激する仕組みが色々入っているようです(※1)
確かにワクワクを演出し、ドーパミンを出せることにより夢中にさせるという手法は見事です。
こういうことを考えているシステムが「正常ルートもちゃんと動かなくても、さっさと終わらせろ」とは言わないでしょうね。
「レアルートの問題は後回しでも良いけど」と言いたかったのでしょうね。真実は分からないけど。
個人的には、システムを企画し、1から作り、自分なりに使い勝手を考えしながら作っていくことが好きなんですけどね。
自分で「使いにくい」と思えば、他の人も「使いにくい」だろうから。
今はQCD確保やら、ウォータフォール、V字モデル、W字モデルという言葉がそぐわないのかもしれません。
ただ、「~~にしたい」と思う人が作った場合限定ですが。
私がいた組織では、ブレインストーミングをやるとみんな黙ります。
誰も発言しないわけですね(笑)
※1 スマホ脳(アンデッシュ・ハンセン著)より