エンジニアには多角的視点が必要不可欠!

エンジニアには多角的視点が必要不可欠!
スポンサードリンク
Advertisement

 

どーも、現役エンジニアのえーちゃん(@e_jtest)です。

 

今回は、エンジニアには多角的視点が必要ということをお話ししようと思います。

 

最近はPayPayが話題になりましたが、クレジットカードの不正利用が発生しているようですね。

 

 

原因としては、クレジットカードのセキュリティコードに入力制限がなかったことが原因のようです。

 

ということで、一人のエンジニアとしての目線でお話しできたらなと思います。

 

スポンサードリンク
Advertisement

 

 

PayPayでの不正利用の真因

 

 

 

真因としては、「本人以外の人間が使う可能性を考慮できてなかった」ことかなと思っています。

 

私も決済系のアプリケーションの設計をしていく上では決済周りは気を使って設計していますが、その時重要になってくるのが可能性の考慮だと思います。

 

これはシステム的脆弱性を潰す設計にする必要がありますが、一人のユーザー目線を持つこと、クレジットカードの特性というのを理解していないと難しいことだと思います。

 

そして、それと相反して考慮しなければいけないのがユーザビリティ(利便性)です。

 

おそらくPayPayの設計段階では回数制限を設ける必要性を感じていなかったのでしょう。

 

エンジニアだったら誰でも気づくかと言われるとそうでもないというのが私の本音です。

 

 

決済系のアプリケーションは難しい

 

今回のニュースで決済系のアプリケーションの難しさを改めて感じました。

 

最近では決済部分をGMOなどのAPIを使ったり、PayPalに任せたりするアプリケーションの開発を行ったりと、自分で決済周りを開発しなくても簡単に実装できちゃうんですよね。

 

しかし、自社決済サービスを作成するにあたっては話が別です。

 

オンラインショッピングのサイトを作るのとは考慮するべき点が全く異なってくるなと感じました。

 

 

ユーザビリティ(利便性)の考慮

 

もう一つ大事な点がユーザビリティ(利便性)の考慮ですよね。

 

エンドユーザーにとって便利なアプリケーションにすればするほどセキュリティというのは弱くなります。

 

こちらの記事(便利で安全なアプリケーションは存在しないということ)でも言いましたが、利便性とセキュリティというのはトレードオフなんですよね。

 

エンジニアであれば必ず意識していなければいけない点です。

 

今回のPayPayでいうと、クレジットカードのセキュリティコード入力に回数制限を設けるというのを意図的に外したというのであれば、ユーザビリティを意識したということでしょう。(なんか広報担当者?テレビでそんなことを言ってました。)

 

そもそも入力制限を設けるという発想がなかったという可能性もあります(笑)

 

これは経験値でしかわからないと思います。独学で勉強しただけであまり開発してませんというエンジニアだとこういうことをしがちだと思います。偏見ですが(笑)

 

そもそも「入力回数を無制限にすることにユーザビリティを高める要素があるのか?」ということですが、ツイッターをみた感じだと「そんな部分にユーザビリティなんて無いだろ!」という意見が大半でしたね(笑)

 

「クレカの裏に書いてあるんだから本人だったら間違えない」と言うのはごもっともです。

 

誰でも納得すると思います。私もツイッターをみてて納得しました(笑)

 

私が思うに、PayPay開発に携わった人たちの中で、クレカのセキュリティコードに入力回数を設けるという発想がなかったのでは無いかなと思います。

 

普通のサービスでは入力制限を設けるのはログイン画面くらいでしょうか。ログイン画面でもそういう機能が実装されていない場合もあります。

 

今回のニュースを受けて入力制限を設けるサービスが増えだしたら、「そもそもクレカ情報に入力制限を設ける発想がない」というサービスが大半だったということだと思います。

 

スポンサードリンク
Advertisement

エンジニアには多面的視点を持つ必要がある

 

今回のニュースで私も改めて認識したのが、エンジニアというのはあらゆる可能性を考慮しなければいけない職業であるということです。

 

これは経験によって身につくもので、本で勉強すれば身につくというものでもないと思います。

 

PayPayを擁護するわけではないですが、作っているのは人間なので全てが考慮されているかというとそんなサービスは無いです。どこにも。

 

1番安全なのはネットワークを遮断することです(笑)

 

少し前にソフトバンクが通信障害になりましたが、あの状態がある意味で1番安全です(笑)

 

ですが、それだと生活に支障が出てくる世の中なので妥協点を見つける必要があると思います。

 

エンジニアは常に性悪説でいるべき

 

簡単に言えば性悪説で設計、開発を行うべきです。

 

性善説で作られたシステムというのは脆弱性を孕んでいます。

 

常にと言いましたが、「アプリケーションの開発をする際に」ということです(笑)

 

性悪説でいるというのは、運転と似ていると思います。

 

教習所で「かもしれない」運転を心がけるように習うように、アプリケーション開発時にも「こういうことをする人がいるかもしれない」という視点は忘れないようにしたいところです。

 

「そんなことをする人はいないだろう」と思って開発をしてはいけないということです。

 

 

ユーザビリティはどう考慮するか

 

ユーザビリティというのはモダンなサービスでは欠かせない要素の一つです。

 

これが欠けてるサービスというのは流行らないですし、ユーザーが離れていく傾向があると思います。

 

しかし、考慮しなければいけないのは、「これが本当にユーザーの利便性を高めるのか」ということだと思います。

 

PayPayの件で言えば、クレジットカードのセキュリティコードの入力制限をかけなかったことがユーザーの利便性を高めるのかといえば、答えは「No」だと思います。

 

クレジットカードの裏に書いてある情報なので間違える方は少ないと思います。

 

もしロックがかかったらどうやって解除するのが適切なのかというのも考慮しなければいけない部分ですね。

 

「そんなやついないだろ!」と思うかもしれないですが、いるんですよ。数は少ないですがそういう人もいます。

 

そういう人を考慮しなければいけないのが設計者の大変な部分ではあります。

 

とはいえ、やはり「本当にユーザーにとっての利便性向上につながるか」というのを頭に入れておく必要があるかなと思います。

 

スポンサードリンク
Advertisement

まとめ

 

ということで、エンジニアには多面的視点が必要だよねというお話でした。

 

私自身も改めて意識しなければいけないなと思ったので記事にしました。

 

これだけニュースになってしまうとPayPayの設計・開発者は始末書に追われているかもしれません・・・(笑)

 

個人的にはキャッシュレス賛成派なのでこういうニュースで「やっぱり現金だ」となってしまうのは残念ですね。

 

まあ不正に利用されたというのは事実ではありますが、不正利用の場合はカード会社が保証してくれるというのはクレジットカードのメリットだと私は思います。

 

現金であれば使われたら戻ってこないのでね。

 

最後にそもそもですが、クレジットカードの設計が悪いというのを今回思いました。

 

クレジットカードの情報が全てカードに記載されていたらそりゃそうなるわって感じじゃ無いですか?(笑)

 

まあそういう意味ではクレジットカードの設計を変えた方がいいんじゃないかと思いましたね(笑)

 

長くなりましたが、読んでいただきありがとうございます。

 

 

以上、エンジニアには多角的視点が必要不可欠!でした。