てんやわんや

読んだ本や考えたことを自由気ままに書いてみる

APIを非システム部門にもわかるように説明したい

システムの話をユーザにうまく理解してもらうのって難しいですよね。

なんでこんなに高いの?それやってなんの意味あるの?そこ削っていいよ!!とか平気で言いますよね。ただ、そこで「無理!」と突っぱねてしまっては話は前に進まないですし、逆に「わかりました。なんとかします」と言ってしまえば地獄に日々が待ってるわけです。
運良く納品まで辿りつけたとしても、次回の見積もりでまた同じように値切られるのが見えているわけで。しかも一回受けてしまっているので「前はできたのになんで今回はできないんだ!」と、さらに首が締まること間違いなしです。
 
そうなると残された道は、<しっかり説明して理解してもらう>ということになるわけですが、まぁこれが難しいんですよね。そして、ちょうど私は今, API (web API)ってどう説明したらわかってもらえるかなぁ?と頭を悩ませているところでございます。古いwebシステムを改修する案件なんですが、なんでわざわざお金かけてやんなきゃいけないの?という問いへの回答として。
ということで、いくつか考えて見ました。
 

とりあえずメリットを説明してみる

これをやるとユーザ(システムの発注者のことね)にとってもこんないいことがありますよー、と説明して、じゃぁやろう!と言ってもらう作戦です。

使い方をしっかり決めるので、改修する時とかに仕様がわかりやすくて、テストもしやすいので、コストが安くなりますよ。とか。

 

んー。

これでは、『だったら最初からわかりやすく作ればいいじゃん?なんでわざわざお金掛けて作り直さないといけないの?』とか言われそうですね。今の何がダメで、それがどうなるからメリットがあるのか、説明できていないのでそうなりますよね。

もっと具体的にイメージをつかんでもらって、よさを実感してもらう必要がありそうです。

自動販売機にたとえてみる

いくつか、自動販売機にたとえている記事を見ました。こんな感じ?

  1. お金を入れる。
  2. ボタンを押す
  3. 商品が出てくる

簡単に使えますね。でも実際に自動販売機の中では、

  • お金が本物かチェック
  • いくら投入されたかチェック
  • 押されたボタンの商品の在庫をチェック
  • お金が足りるかチェック
  • 商品を押さえていたピンが外れて、一つだけ商品を取り出す。
  • 商品の金額を投入金額から引いてお釣りを計算する
  • お釣りの枚数だけ硬貨を取り出す

みたいに、たくさんの処理をしかるべき順序で行っているわけですね。これを、ユーザが意識しないで、誰でも簡単に買えるようにしているインターフェースがAPIなんですよ。と。

なかなかわかりやすいです。ただ、どこか違和感を感じたんですよね。なんというか、、、これってただの自動化してるだけで、インターフェースっていう部分をうまく表現しきれていないような、、、と。曖昧な表現で申し訳ないですが。

結構人によって読み取り方が違うので、例えて説明するのも難しいですね。

シンプルに考えてみる

なんか、誰にでもわかりやすいように、と思って具体的に具体的にと考えてましたが、これは間違いだったかもしれません。結局のところ、「APIとは〇〇である」と言えれば言いわけですよね。
てことで wikipedia より良さげな表現を拝借して選んでみました。
 
API とは Application Programming Interface である。
 
言い換えたただけです。ボツですね。
 
API とは Interfaceである。
 
少しそれっぽいですが、Interfaceってまた意味が広くて難しい言葉ですね。
 
API とは インターフェースの仕様である。
 
これまた仕様とは、難しい言葉ですね。却下。
 
API とは 標準化されたインターフェースである。
 
お、だいぶいい感じですか?
まさに、コンセントの形、電圧などが統一されていて、どんな電化製品でも同じように使える、という感じですね。逆に統一されてなかったら、毎回プラグの形を変形して、電圧もちょうど良くなるようにレジスター(あってる?)をいれて調整して、、、ってやらなきゃいけないですから大変ですね。時間もかかるしパーツも必要だし。システムでいえば、開発期間が長く必要でコストもかかるってことになりますね。
 
インターフェースって言葉が入っちゃってますが、これ以上思いつきませんでしたのでご勘弁。。。。
 

まとめ

API とは 標準化されたインターフェースである。
 
こう見ると至極当たり前のことをそのまま言っているだけにすぎないですね。なんて遠回りしたんだろうか。というか、最初からコンセントの例で説明すれば済んだ話でしたね。