7pay(セブンペイ)の騒動から考えるシステム開発で必要なあれこれ


7pay(セブンペイ)がすごい騒動になっていますね。簡単にアカウントを乗っ取ることができてしまい、お金を勝手にチャージされて不正利用されてしまうというものです。会見も開かれましたが、何か説明しているようで結局何も説明していないに等しく、詳細はまだほとんどわかっていません。

詳細がわからないので結局今回の7pay(セブンペイ)の騒動において本質的には何がダメだったのかを考えるためには続報が待たれるわけですが、問題の裏側を色々推測してみることはできます。 本日は「可能性」として考えられる システム開発の裏側にある問題点を一般論として考えてみました。

開発チームに技術力が不足している

今回の 7pay(セブンペイ) の騒動、時々ニュースになる情報漏えいやセキュリティの問題とは少々ことなります。今回はセキュリティが余りというレベルではなく、どうぞ乗っ取ってくださいと言わんばかりのおそまつな仕様でした。

具体的にはメールアドレス、電話番号、誕生日の3つの情報がわかれば、勝手に人のアカウントのパスワードを変更して乗っ取りができてしまうというものです。誕生日は必須入力ではなかったようなので、実質的にはメールアドレスと電話番号だけで乗っ取りができてしまう可能性があるという恐ろしい仕様です。

ITにあまり詳しくなく、何を言っているかよくわからないという人達のために、わかりやすく例え話にしてみました。

他にも画面に表示すべきではない項目をCSSで非表示にする残念な対応を行ってしまうなど、プロから見れば信じられないほど雑な対応が行われていたりします。プロから見ればと言いましたが、この程度のことならはっきり言ってちょっと頑張って技術を勉強している学生でも気づきそうなものです。

7pay(セブンペイ)ではこれから改善対策を実施していくのだと思いますが、残念ながらこのレベルの代物を作ってしまう開発チームに抜本的な対策を行う力はないでしょう。まともなマネージャーやエンジニアに総入れ替えしないと無理でしょう。開発チームのメンバーを増員して人海戦術をしても無理です。

猫ふんじゃったしか弾けない人を100人集めても、ショパンを弾けるようにはならないのです。

7pay(セブンペイ)が立て直すためには、ショパンを弾ける人を連れてくる必要があるわけですが、世の中には猫ふんじゃったしか弾けない人にシステム開発を発注してしまっている会社もたくさんあります。システム開発はまともな会社に依頼しないとダメなんです。

必要な予算をケチっている

システム開発では必要なところには十分なお金をかけなければなりません。そうしないと後になって痛い目にあうことになりかねません。当たり前のことですがこれを理解していない会社もたくさんあります。保守費用?そんな無駄な金なんか払わねーよとか言い放っておきながら、後で何か起きるとブチ切れるのはだいたいこのタイプです。

セキュリティもシステムでは必要なお金を投資しなければいけないところですね。サーバーのOSにしてもミドルウェアにしても、バグやセキュリティホールが見つかると修正されてパッチが配布されますが、こういうのは割と頻繁に発生しています。こういう対応をしていくことも保守作業の大切な仕事の一つなのですが、説明してもその重要性を理解しようとせずにお金をケチってセキュリティ面のアップデートを放置するような企業もあります。

また毎月の保守作業以外でも、セキュリティを担保するために開発が必要な機能というものもあります。今回の7pay(セブンペイ)であれば、二段階認証の仕組みは導入されているべきでしたが、残念ながら機能として提供はされていなかったようです。 7pay(セブンペイ) がそうだったというわけではありませんが、世の中にはお金をケチって必要な機能を実装しない会社もあります。

また最初にあげた「開発チームに技術力が不足している」とも関連するのですが、金額だけを見て安いところに発注してしまい失敗するケースもあります。安くてもしっかり仕事をしてくれればそれが一番良いことですが、安かろう悪かろうでは意味がありません。趣味でシステム開発するのではないのだから、品質も重要な指標のはずです。

安いからという理由でクラウドソーシングとかでどこの誰かもわからないフリーランス()の人を探している企業さんとか大丈夫ですか?システムの品質は目に見えないだけに開発を任せる相手が信用に足るかどうかというのはとても重要なことですよ。

十分な開発期間を設定していない

開発チームに十分な技術力や経験があっても、十分なスケジュールを確保せずに無茶な納期を要求してしまうと、まともな開発を行うことはできません。結果として十分な品質を確保することができなくなります。

事業サイドには事業サイドの事情があることもわかります。これを完全に無視したシステム開発などありえません。しかし同様に、開発サイドには開発サイドの事情もあります。どんなに無理したところで物理的に無理なものは無理なのです。

こうしたことをお互いに理解せずに、事業側(あるいは発注側)の都合を強引に開発チームに押し付けてうまくいっていない話はよく聞きます。そういうことをすると開発チームのエンジニアはどんどん辞めていきますし、そうなった時に新しくエンジニアを採用しようとしても、お金も時間もかかる、必要な人材を採用できるとは限らないなど、負のスパイラルに突入していきます。

ヒト・モノ・カネだけではなく時間も必要な資源です。十分な開発期間を確保しないことは逆効果になってしまうと心得ておきましょう。

経営者がITを軽視している

CTOでもないのに経営者がITの専門家である必要はありませんが、それでも今の時代ITの基礎知識は経営の基礎知識になってきていると言っても過言ではありません。経営者はITの専門家ではないとはいえ、ある程度のIT事情は知っておかないとまともな経営判断も難しくなってきているはずです。

セブンペイの社長が会見で「なぜ二段階認証を導入していなかったのですか?」と聞かれた時に、「二段階認証?何それ?」という表情で固まってしまいました。

全ての経営者が二段階認証を知っているべきか?と問えばそれは難しいかもしれませんが、 株式会社セブン&アイ・ホールディングスの社長ではなく、株式会社セブン・ペイの社長が二段階認証を全く聞いたことすらないというのはさすがにまずいでしょう。セブンペイの社長がスマホで決済とかしたことないのかというレベルです。

このレベルのIT知識しか持ち合わせていない方を、スマホ決済のサービスを提供する会社の社長に据えてしまうあたりも、残念ながらITを軽視していると感じざるを得ません。

多重下請構造の問題点

日本のシステム開発においてよくある問題の代表的なものに、客先常駐で多重下請構造の形を取っているプロジェクトが多いということがあります。これがまた顧客にとってもエンジニアにとっても色々な問題を発生させているわけです。

セブンペイの会見では、記者から開発体制について問われた時に「協力会社と開発してきた」と説明していました。それ以上のことはまだわからないので続報を待ちますが、上記の客先常駐、多重下請けの形態でプロジェクトを進める時に「協力会社」という表現はよく使われます。セブンペイのプロジェクトにおいても客先常駐の多重下請構造によって開発が行われていた可能性は高いと思われます。

客先常駐(SES)や多重下請構造の問題点については、私のブログの他の記事でも散々書いてますので詳細はそちらをご覧ください。

まとめ

システム開発を成功させることは決して簡単なことではありません。必要な予算もスケジュールも確保しないようでは失敗はほぼ確定となります。

  • 経営者がITを経営上重要な位置づけとしてしっかりと認識する
  • 必要な予算を確保すること(ここ重要!システム開発にはそれなりの投資が必要です)
  • 十分なスケジュールを確保すること(エンジニアを奴隷のように扱うな)
  • まともな開発会社に依頼すること

どれも当たり前すぎることではあるのですが、これができていなくて失敗している会社がたくさんありますので気をつけましょう。