見出し画像

「感情ってなんだっけ?」

みなさん、こんにちは。どうも、てるです!

突然ですが皆さま、エンジニアってどんなお仕事をしてるかご存知ですか?
多くの方はプログラミングをしている人たちというイメージがあると思いますが、プログラミングはエンジニアのごく一側面に過ぎません
そこで今回は、僕の経験したエンジニアのお仕事から、

「エンジニアってこんなことするんだよ〜」

ってお伝えできたらなと思います。(今日は僕の「なんかうまくいかない」部分じゃないかっこいい部分をチラ見せします!笑)
未経験の方やこれからエンジニアになる方は、ぜひ参考にしてみてください!

ところで、君は誰?

さて、エンジニアについてのお話をすると言いましたが、

お前は誰なんだ

という声が聞こえてきたので軽く自己紹介します。

私の名前は長谷川てるです。エンジニア歴4年目の「駆け出しエンジニア」です。

得意分野はAWSを用いたインフラ構築です。(AWSのプロフェッショナル資格を持っています。)また、サーバーサイド(主にPython)やフロントエンド(主にNuxt.js)もそこそこできます。(少なくとも業務で経験しました。)さらに、最近までiOSアプリの開発をしておりました!

雑食系です。。

私は「エンジニアにとって一番大事なのは技術じゃなくて人間そのものだ!」と考えています。そのためには、開発に関わるチームメンバー、そして自分自身と向き合う必要があると考えております。最近noteをはじめまして、普段は僕の特徴であるADHDや双極性障害についての記事を投稿しておりますのでそちらもぜひご覧ください!

「感情」モデルが必要だった

さて、少し前に参画したプロジェクトのことです。僕はiOSアプリを構築しておりました。
アプリの機能としては「メモアプリ」や「日記アプリ」のようなシンプルなものでしたが、その時の「感情」も登録して見直すことができるものでした。

ブラウザで使うようなWebアプリでも、iOSアプリでも、アプリケーションには「モデル」というものが必要です。

「モデル」というのは、スタイルやルックスの良い女性や男性のことではなくて(笑)、アプリケーションで必要となる抽象的な概念のことです。

このnoteを例に、どのようなモデルがあるか考えてみましょう。

まず「記事」がありますね。「記事」はこのnoteにとって中心的なモデルでしょう。そして「記事」を書く「ユーザー」もいます。記事をまとめるための「マガジン」や「ユーザー」をまとめるための「サークル」というモデルもありますね。

僕はnoteを始めたばかりで、まだ詳しくないのですが、少し考えてただけでこんなにモデルがありました。

・記事
・ユーザー
・マガジン
・サークル

実際にはそれぞれをもっと深掘りしたり、それぞれの関係性を決めたりしていくのですが、今回の主題ではないので飛ばします。機会があれば「noteのモデルを考えてみる」みたいな記事を書こうと思います!

モデルというのはなんとなくイメージできたでしょうか?
そして、僕らが作っていたアプリでは「感情」というモデルが必要だったのです。

「感情」とは?

皆さんは、

「感情」とはなんだと思いますか?

少し、質問が曖昧ですね。それでは、

「感情」を構築する要素と、その要素と「感情」との関係性はどうなっていると思いますか?

もし良かったら少し考えてみてください(^^)

(シンキングターイム!)

では、僕が考える感情モデルを紹介します。

まず、「感情を構成する要素」としては、

・感情の種類
・感情の大きさ

があると思います。そして、感情とそれらの関係は、

「感情」の中に「感情の種類」や「感情の大きさ」がある

となっています。つまり、「感情の種類」と「感情の大きさ」を合わせて「感情」というモデルを構築しているということです。
例えば、喜怒哀楽と感情の種類と1〜10段階の感情の大きさを合わせて1つの感情を表すとします。
そうすると、全てで4種類×10段階で40個の感情があるという感じです。

バラバラな「感情」

上は僕の考える「感情」のモデルです。皆さんが考える「感情」とはどのようなものですか?
もちろんどれが正解とか不正解ということはありません。人それぞれ色々な感情モデルを考えるものだと思います。

実際、僕ら開発チームの中でも一人ひとり考えていることが違くて、「感情」と言った時に何を指しているのか分かりませんでした。

そこで、それぞれどのような感情モデルをイメージしているのか改めて話し合うと、僕のモデルで言う、「感情の大きさ」の部分が「感情」だと考える人もいましたし、Pepper君の感情モデルのようにより複雑な感情モデルを考える人もいました。

そんなバラバラな状態では良いアプリは作れません

「感情」を定義する

感情モデルに正解はないと言いましたが、人それぞれだよね〜と言っていたらいつになってもアプリは完成しません。

そこでエンジニアの出番です!

僕らエンジニアはアプリケーションに必要なモデルを定義していきます。そして、モデルが出来上がったら、開発チームの全員が同じ言葉を使います

開発チームというのは、エンジニアだけでなく、デザイナーさんやオーナーさんまでそのアプリに関係する全員です。

例えば、先ほど僕が説明した感情モデルが採用されたとします。そしたら、「感情モデル」を表す言葉は、「感情」「感情の種類」「感情の大きさ」という言葉しか使いません。もしそれ以外の言葉が必要になったらモデルを見直す必要があるのです。

おわりに

アプリケーションを作る上では良いモデル作りがとても重要になります。そしてそのモデルをチームメンバー全員で共有して認識齟齬をなくすことも重要です。

プログラミングはそれからです。あくまで手段です。

よく

「未経験からプログラミング」

とか

「プログラミング教育」

とか耳にしますが、すごく違和感があります
エンジニアにとって、プログラミングの時間は非常に楽しいですが、その時間は全体の時間からしたらわずかです。(たまに1日中プログラミングに没頭できるとなるとめちゃくちゃ嬉しいです!!)

それよりも、エンジニアにとっては上で説明したモデル作りや、(今日は説明していませんが)アプリケーションが安定的に正しく動くようにするための仕組み作りなどの方が何倍も重要です!

これからも少しずつ本業のエンジニア関連の話をちょくちょくしていこうと思います。
少しでも良いなと思ったら、「スキ」やフォローをお願いします🤲

それでは、また!

この記事が気に入ったら、サポートをしてみませんか? 気軽にクリエイターの支援と、記事のオススメができます!