novtanの日常

ネタです。ネタなんです。マジレスする人は撲滅すべき敵です。だからネタだってば!

安く早く堅牢なシステムを作れるという幻想について

おおよそ、SIの世界は古くからの大規模開発に相場が依存していて、コストオーバーヘッドを規模の論理でやっつけてきた結果、平均単価という観点でいうと相対的に安かったわけです。よく、大ベンダーはホストのプリンタの紙を売って儲ける(これ自体は別に悪いことではなくて、一般の人の想像を絶するスピードで帳票とかが出ているのを見ると一定の高品質が必須なのはわかりますが)、とか、ソフトウェアはハードウェアのおまけだ、とかそういう時代の名残が「ユーザーサイドにも」残っている(のである程度はベンダーの自業自得感ありますが)結果です。

ベンダーにぶら下がっている、2次受けの中堅SIerがベンダーに付き合っているのも「大量の人員を長期間稼働させてくれる仕事」を手当してくれるからであり、プライム案件に汲々として、案件取れなければ劇的に稼働率が落ちるリスクを考えるとこういったベンダーの案件は単価が多少低くてもトータルでは大分オトクなわけですね。この構造自体が良いのかどうかはさておき、そういったニーズに合わせてビジネスが行われてきたわけです。

ところが最近は「規模小、期間短、ハイスキル、単価は今までどおりでよろしく」なんて案件が増えてくるわけです。世の中の人材の構成なんていつまで立ってもピラミッド型なので、今までのハイスキル1、ミドルスキル2、ロースキル5の要員構成、みたいなスタートで一生懸命人を育てながら活動してきていたものが、ハイスキル1,ミドルスキル1,ロースキルは要りません、となると、抱えられる案件には限界がある。ベンダーがそうは言っても単体の案件ではなく、発注全体ではバランス取れますよ、の範囲で仕事をくれていればまだしも、それすらなくなったらベンダーに付き合う価値はないわけです。

つまり、今までハイスキルと言われている人がその単価でやってこれたのは、案件の規模がデカかったからだよ、というだけの話です。そして、規模が落ちると専門スキル(特に、品質マネジメント)を持った人の割合が相対的に下がって高リスクなPJTになります。小規模案件には小規模案件のリスク、大規模案件には大規模案件のリスクがそれぞれありますね。これは、構造的にはベンダー側も一緒ですね。すげー単純に考えて、ハイスキルなエンジニアを中心とした「その所属の会社のビジネスとして成立させる」案件組成とはどういうことか。

※此処から先の金額については、リアルではなく、イメージだと思ってください。
まず、従来型の仕事で平均単価100万の10人体制、要員の調達コスト80万=粗利20%(これはもうすでに会計的に厳しいレベル)で月あたりの粗利が200万、同じだけの粗利を半分の体制で稼ごうとしたら平均単価140万の要員コスト100万。でも、同じ粗利で平均単価は従来どおりと言われると60万の要員しか雇えませんよね。契約金額(=発注元のコストの大本)は1000万と700万ですから、生産性が要員単価の上昇率よりよく上昇してくれるのであればこれはコストダウンに成功ですが、実際にはそんなことはない。80万→100万になったくらいで生産性がそれほど上がるわけがない。規模を減らす、ということはそういうことです。ま、世の中そんなに単純な話で動いているわけではないですが。

もっともですよ、80万くらいまでの人と、100万超えてくる人のスキルの差異は同じエンジニアとして考えてよいのかわからないほど差があるのも現実です。ぶっちゃけ、業務スキルの一切ない80万くらいの人ってそろそろ雇うのがしんどい程度に相場が上がってますね。え、その経験でその金額?みたいな人、雇えないです…見てピンとくる人はみんな90万超え、客からの提示の単価は95万…これでは赤字です。

とまあ、そんな仕事が蔓延しているIT業界ですが、とにかくベンダーに仕事を頼む人たちがこれから意識すべきなのは、「システム構築の人員を用意してもらう」ではなく、「スキルを金で買う」ということですね。自分たちが買おうとしているのは一山いくらの要員ではなく、スキルだ、ということを肝に銘じてください。テックベンチャー企業はスキルは高いように見えますが、実はスキルを売ってくれませんからね。彼らは、自分たちのスキルで作り上げたサービスを売るのが仕事であり、上澄みを買っているわけです。スキルはそこではなく、奥底に沈んでいるので外から手は届きません。彼らのサービスが自分たちの大事にしているものを毀損しないのか、を見極めるのも買う側の仕事です。それがわからない、という問題を抱えているのであれば、分かる人を「高額で」雇ってください。作業ではなく、スキルを買うのですから、高く付きますよ。

ましてや、自分たちでサービスを作ろうとしているのに、ベンダーに「この期間と金額でお願いね!」なんて頼んでしまうのは愚の骨頂ですね。

そんなこと言ったって中国では安く早く出来てるじゃないか?いやいや中国は投資してますし、そもそも雑なサービスからスタートして金を稼ぎながら大きくなってくるのがベンチャー企業の常なわけじゃないですか。雑なサービスから脱却するまでの投資分すべてを「早く安く堅牢に作って」なんてのはありえない話ですよね?

失敗しても失うものがなにもない、という覚悟と、作るものの軽さが伴わない限り、安く早く、ですら満たすのは難しいのです。ましてや堅牢なんてね。

7Pay問題から考えるビジネスとITの課題について

今回の問題はもう馬鹿かというほど素人のご意見がばら撒かれているくらいは世の中が騒然としていますがね、とりあえず最初に言っておきたいのが、この問題がいかにダメかと言っている技術者に対して「経営課題ガー」とか言っているのはもうアホ極まりない話で、そもそもITをどう使うかということそのものが経営課題である昨今においてこのレベルの問題を起こした企業の「経営課題」なるものを多少なりとも免罪的に持ち出すのはホント糞だと思う。

で、楠さんまで「ベンダー任せが一因」みたいなことを言っていて、まあ確かにそういう面もあるんだろうけど、正直なところ、今回の件はダメをダメと言えないガバナンスの問題なんだと思う。とはいえ、ここの真実は当事者にしかわからんのでこれ以上突っ込むのはやめておこう。

で、問題はomni7の方、と言い出す人も出てきているのでなんともかんともなんだけどさ、先ずもって今回の最大の問題は「ID/Passが当たれば無条件に利用可能」というアプリのクソ仕様と「7iD」という既存のIDを流用しちゃったことの合わせ技一本で起きている事象であり、雨後の筍のように乱立しているなんとかPayご担当の各位においては決済サービスで最低限守るべきお作法というのを叩き込んで今後に臨んでいただきたいと思います。

楠さんいわく

ひとつは先行するGAFAやFinTechベンチャーが、いずれもエンジニアを自前で雇ってシステムを内製しているのに対して、7Payはベンダー任せになっていたからではないだろうか。FinTechベンチャーにとってサービスのリリースははじまりに過ぎず、使われ方をログで追っかけて日々改善し続ける。その中で不正への対策も継続的に実装していく。例えばLINEは、LINE Payを出す前からIDの乗っ取りに苦しみ、地道に実装の改善を続けてきた。サービスに対して自分事として継続的に取り組むからこそ不正と対峙できる。

https://comemo.nikkei.com/n/n3b3fb417e637

ということなんだが、これについても僕自身は異論がある。FinTechベンチャーだから技術がよくわかっている、なんてことはなんにも保証されていない。今まで付き合った相手の多くは「異常系?エラーが出たらリトライするしデータがおかしくなったらユーザー自身で訂正できるんで!」みたいなことを言っていた(母体が金融系の人たちはそうでもない)。これ、別にそこで閉じている世界であれば間違いじゃないんですが、このノリで決済までやってきたら門前払いするしかない。カード払いならまだしも、口座と直結するのがこのノリであれば審査なんか通ささねーぞクソが。

顧客の利便性、というのがよく問われるのだけど、これについても根本的な勘違いがまかり通っている。UI/UXをデザインし、利便性を追求していくと大体において「で、セキュリティーどう担保するの」という問題にぶち当たる。で、これをコストや期間とのトレードオフで考えようぜ、というところに行き着く。ちょっと待て、そのトレードオフの組み合わせ違わないか?考えるべきは「利便性とセキュリティー」の組み合わせではない。「利便性とコスト(期間)」が正しい。その利便性を実現する課題は技術が解決することだし、それはセキュリティーを疎かにしないのであれば実現するために「労力をかける」ことにほかならない。だから、時間と金を用意すれば、その要求は実現できる可能性がある(そして、できない可能性もある)。利便性とコストを天秤にかけ、どちらも実現する必要があり、セキュリティーを犠牲にする、なんて選択は最も愚かしい。

ましてや、今回はほぼ使い古されているといってよい、先人の知恵である必要最低限の仕組みとしてのSMS認証を実装しない、という決済サービスとしては楽観がすぎる仕組みでサービスをスタートさせてしまった。もっとも、7iDそのものが乗っ取られるというomni7側の問題の前ではSMS認証などなんの役にも立たない、というのは事実ではある(電話番号変えられるからな)。そうだとしても、omni7側に問題がなければ7Payアプリがダメダメであるという大問題が残る、ということはなんにも変わらないわけで。

  • アプリもomniもどっちもダメという基本的な問題
  • (すでに指摘されていたであろう)omniの問題に向き合っていないガバナンスの問題
  • 客と刺し違えてでもクソ仕様でリリースしないということのできないSIerの問題

が主な問題要素であり、これだけ世の中にお手本がある中でIT側の当事者が誰も問題に気づいていないとしたらもう決済系の仕事やめたら?って思う。そんなわけがないだろうから、僕は今回の問題は完全にガバナンスの問題であり、この問題が起きたことそのものが経営課題である、と断言したいところなんだけど、当事者しかわからないことが(以下無限ループ

とにかくにも、今回のキーワードは「利便性」である。マジか。今更QR決済に利便性があると考えている経営者がいるとは驚きでさえある。この問題が経営課題であることの証明ではある(しつこい)。QR決済そのものの不便さに比べたらアプリの利便性の問題などクソみたいなレベルであり、とにかくセキュリティー側に倒しておくべきだったのは今どき小学生でもわかるのではないか。Felicaでいいんだよ利便性なら。世の中になんとかPayが乱立しているのはどこのクソコンサルのおかげさまなのか、その点をITにおける力の具現者たるわれわれはもっと追求すべきではないのか。

さて、Display:noneの問題である。ここにも世間のリテラシーの発露が見られた。
曰く、「noneにしただけじゃねーかwww」。待て、草を生やすのは早すぎる。通常であれば受け側のサーバーロジックもセットで直すはずだ。そこを確認してから笑うべきである(この時点で確認せず笑っている人多数)。

曰く、「改ざんしてPOSTしたら変更できたwwww」。大草原であるwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww。

曰く、「技術者というのは制約や経営課題に目が向かない。初手としては悪くない」。ここで僕の怒りのバロメーターは完全に振り切れた。バカか。

あのね、まあ、20年も前からあんまり変わってないんだけどね(特にパスワード変更の慣習なんてのはそれの最たるものだけど)、攻撃をする人というのは往々にして、企業のシステムを作っている開発者よりはるかに技術スキルが高いわけで、だからこそセキュリティーホールをついて攻撃してくるわけですよ。世の中でかつてセキュリティー対策と言われていたものの結構な割合が一般ユーザーの利便性を落とすことと引き換えに攻撃者に攻撃の余地を与える…は言い過ぎとしてもなんの防衛策も取らない、というそれこそ利便性を犠牲にして何も成果が出てないというクソだった、という事実についてIT技術者は深く反省しなければならない。無理解な客を説得できなかったという点において。
今回の件だって同じだよ。一介の技術者がぱっと見で「この対策には意味がない」と言っているのは制約とか経営課題というものを凌駕している問題だという指摘に他ならないのだ。これを正面から受け入れられないことそのものが経営課題(つまり、サービスをクローズするという判断ができない程度の低さ)であるわけだ。こんなものが悪くない手であるわけがないだろう。技術者をバカにするにも程がある。

といったような各種のポジショントークにより日本の各界のITリテラシーというものが内臓をぶちまけるかのように明らかになった。汚い。

政治的な問題で言えば、システムを発注する客と請け負うベンダー、という構図が言いたいけど言えない風土を作り上げた可能性はもちろん高いけれども、トップの意識が変わらない限り内製化したところで同様のことが起きるだろうことは火を見るより明らかであると言える。

ここから読み取るべき教訓は、ビジネス側のITリテラシーの低さであることはもちろんなんだが、丸投げならちゃんと丸投げしろ、という問題でもある。ここからが本題(短いが)。
つまりだよ、今回の件が該当するかはさておき、FinTechやら新決済サービスというものにおいて、わりかしこれまで金融の分野でしっかりとした実績を築いてきたベンダーやSIerが意図的に排除されている、という傾向を感じている。これは、かつて某銀行がFinTech絡みで募集をかけた際に「xxなベンチャーであること」なんて文言を出してきたことからも推測できる。
ところが、奴らは守るべき大事なことをノウハウとして持っていないのである。そういえば最近某社が取引の一貫性を保つマイクロサービスでのシステム構成の話を嬉々として公開していてそれ自体はまあそうですねよくできてますねという話なんだけどその記事に対する賞賛の声を見てこいつらまさかFinTechベンチャー的なことやろうとしているやつ混じってないよねと戦々恐々としたんだがそれはさておき。
別に、彼らが自分たちの土俵で他(特にユーザーの資産)に影響を及ぼさないサービスをやっている分にはなんの文句もない。それこそ、早さと安さと利便性は技術力のある人達が誇るべきスキルだ。が、正常系しか考えてない安価なPoCや自社プロダクトで釣ってプロダクションコードは大陸に丸投げ(しないとお約束した金額を実現できない)、みたいなお仕事をする雑な奴らのケツを拭くのは我々なのである。これはビジネス側にも言いたい。お前らはシステム部門じゃないからシステム部門が出す見積もりが高い高いと文句を言うが、お前が見ているその提案書はハリボテを作る提案なのくらい見抜けよと。

こんなビジネスをしている奴らばかりではないのはもちろんわかっている。だが、餅は餅屋の原則を無視して安さと早さに気を取られるのは愚かものの所業であるし、それを食い止められないのは企業のガバナンスの問題である。なお、規模の小さいベンチャー企業は決定的に困ったら潰れるのだ。それはつまり、仕事を投げ出す手段がある、ということに他ならない。

ベンダーが割高なのには相応の理由がある。ベンダーですら安く買い叩こうという風潮のある昨今だが、安く買い叩いたらベンダーの要員のレベルも下がるのである。「ベンダーだから」ちゃんとやってくれると思ったら大間違いで、「適切に金を出したら」ちゃんとやってもらえるのだ。だから、ベンダーにおいても都銀の部門と地銀の部門では…それ以上言うのは止めるか。ベンダーの良いところは、適切に金を出したら金に見合った要員が出てくることである。いや、必ずしもそうではないこともあり、それがベンダーの悪評に繋がっているところを目撃したことも多々ある。あ、なんかちょっと昔の嫌なことを思い出してきたぞ…止めよう…これ以上は止めよう…

ベタなことを言うと、ビジネスとは最後には人と人とが行うものであり、相手を見抜く力がないものが行うビジネスというのは失敗するのだ。

インターネットを使ったことがないITなんとかみたいな話もある昨今だけれども、実のところそこまでIT音痴ばかりが雁首を揃えているわけではない。ITネイティブ世代が仕事の中心になっていく世の中まで後一歩でもある。7Payが今回日本にかけた呪いは抜け出すために相応の学習と成長が必要であり、呪いが解けたその時こそ、日本が真のIT立国のスタートを切れる重大なポイントになるのではなかろうか(良いことを行った風に終わる)。