僕がiOSエンジニアという仕事を続ける理由

僕は結構仕事を変わってきましたし、大学卒業から数えて平均すると1年毎に仕事が変わっています。

それだけをみたら結構な変人の部類だと思っています。

でも、それでも仕事でやっていることは「iOSエンジニア」という軸をブレさせたことは一度もありません。

今日は、なんで僕がiOSエンジニアと言う仕事を続けているのか、それについて書きたくなったので勝手に書きます。

システムが好きです

僕は、システムというものが大好きです。

大きなものでいうとプラントを健全に運営し続けるプラントシステムや、Facebookなどの大規模Webサービス、情報から離れた視点でいうと国家ももちろんシステムでしょう。より小さい単位で言い換えるなら家族もシステムでしょうし、恋人同士もある程度システムという側面を持つことは確かなのではないでしょうか。

ここで言うシステムとは、「情報を保持し、情報に基づいた意思決定を行う、もしくは支援、もしくはそれに基づいた現実世界の適切な運営を支援するもの」の総称です。

プラントシステムはプラントの状態を適切に保持し、プラントの適切な運営を支援しています。

Facebookなどのサービスは、個人の感情という情報を保持し、人と人とのコミュニケーションを支援しています。

国家は国民という情報を保持し、国民全体が幸せになれるように頑張っているのかもしれません。
(ジェレミー・ベンサムの唱えた功利主義に親しいものかもしれません。この発言はきちんと考えていません。ちなみにベンサムの功利主義は「快楽をもたらすもの」も善とするので、一般的な理解からは程遠いものかもしれません。閑話休題終わり)

恋人というのはその構成員自体が「情報」であり、「目的」です。
自己完結型かもしれませんね(なぜそう思ったのかはよくわかりません)

僕はこのようなシステム、言い換えるなら「きちんと論理的に物事を思考、もしくは現実世界の事象を適切な意味構造を持つ情報に組み直し、人間を総合的に支援するシステム」が大好きです。愛していると言ってもいいと思います。

で、私はそのシステム全体の中でも最終的な入出力インターフェイスとなる「人間とのつながりを担当している部分」が最高に大事だと思っています。

システムの欠点

私はここでシステムを下記のように定義しました。

「情報を保持し、情報に基づいた意思決定を行う、もしくは支援、もしくはそれに基づいた現実世界の適切な運営を支援するもの」

これを通じて表現したいことの一つに、システムはあくまで支援用、つまり人間のサブ的な役割にとどまるということがあります。

別の言い方にするなら、システムはその運用過程においてあらゆる部分で人間との接触が必要になります。

データを入力する部分もある程度は自動化できるとはいえ、自動化するためには人間によってプログラムを書く必要があります。

システムが管理しているデータを閲覧する際にも、当然ですが人間がシステムに接触する必要があります。

システムを適切に、円滑に運用していくためには、人間と正しく接触し、適切に意思疎通を実施し、人間を正しく支援しなくてはなりません(ここでいう正しいがどのような意味を持つのかについてはまた別途記事を書きます)

つまり、システムが最終的に使われるか、意味のあるものになるかどうか、人間をきちんと支援できるかは、システムと人間との接触が正しく行えたかどうかが全てだと言っても過言ではないと思うのです。

現代のスマートフォンは、システムと人間との最終的な接触の多くを担当している

さて、皆さんの手元にある「スマートフォン」を考えてみましょう。

例えば僕は思いつくだけでも下記のアプリをスマートフォンに入れています。実際はこれ以上にあることでしょう。

  • 電話
  • メール
  • Evernote
  • 各種SNS(Facebook, Twitter・・・)
  • 財布機能(クレジットカード機能、Suica機能)

さて、これらはシステムを構成する要素の中で、システムとの接触を担当するものがほとんどです。

電話、、メールは人との会話を実現することによって人同士の意思決定を支援します。
Evernoteは適切な情報を保持し続けておくことで僕の意思決定を支援します。
SNSは僕の感情や考えという情報を保持して僕のコミュニケーション全般を支援します。
サイフ機能は、僕の金銭的な情報を保持して、僕のお買い物を支援します。

このように、現代のスマートフォンは先程定義した「システム」のユーザーとの接触部分の大部分を担当しています。

そして私は、システムのユーザー接触部分を最高に気持ちいいものにしたいです。

ユーザーが気持ちよくシステムを使うことができ、システムとユーザーの間相互で正しく情報が伝えられ、必要な情報が必要なときに用意されている、そんな「接触」を作っていきたい、正しくデザインしていきたいと思っています。

それを実現するためには

もちろん アプリが作れる だけでは足りません。

アプリはどう頑張ってもシステム全体の「思想」の影響を受けることが避けられないからです。

そのため、ユーザーとの接触を正しくデザインするためには、システム全体のへの理解も当然必要になります。

この仕組みはこのために必要なのだ。この場合ユーザーが欲しい情報はこれなので、これを返す仕組みが必要だ、といったように。

また必要な情報を必要なときに用意するためにはユーザーへの理解も当然必要です。

ユーザーがどのような目的でシステムを使うのが、システムを使う際の状況はどのような状況なのか、ここも正しく理解しないことには適切ではない情報をユーザーに返却してしまうかもしれません。

また、システムを存在し続けることに対しても敏感にならなくてはなりません。

ある一定の期間だけ利用できるシステムが乱立するとユーザーは混乱してしまうからです。

たとえば今年から3年はAを、3年後からはBを、5年後からはCを、といったように利用するシステムがことなるとユーザーは多大な負担を感じます。

それはユーザーが「心地よくシステムを利用できる」とはならないので、あるシステムが可能な限り長く存続できるようにシステムが存在し続けられることに対してもデザインを実施しなくてはいけません。

このように、僕が考える文脈において、「ユーザーとの接点を正しくデザインする」ということはすなわち「システムを正しく構築する」というのとほぼ同じ意味になるのです。

そして、私は、その作業をやってみたいと思うのです。

だから、私はiOSエンジニアと言う仕事を続けています。

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.