感想
まだ感想はありません。最初の1件を書きましょう!
サマリー
ninjinkunは、製品の要件を抽象化して汎用的に実装する方法について、数学的な思考を持つエンジニアとのディスカッションを体験しました。普段具体的なUI開発に携わるninjinkunにとって、抽象レベルで議論を進めるこのアプローチは新鮮で刺激的でした。ソフトウェアエンジニアが専門分野によってソフトウェアを異なる視点(画面、データ、抽象モデルなど)で捉えることの面白さや、多様な思考を持つ人材がチームにもたらす価値について考察しています。
ディスカッションの背景と製品の特性
こんにちは、ninjinkunです。 昨日、仕事の中で、結構ね、1時間ぐらいディスカッションをする時間があったんですけど、
ここの内容がね、結構面白かったんで、面白いと思った部分だけをかいつまんで、ご紹介しようと思います。
このミーティングでは、こういうことをやりたいっていう要求があったんですけど、それをじゃあどういう仕様で実演しようかということを話し合うエンジニア同士のミーティングだったんですが、
ここで、普段ね、チームで仕事してるとは違う、もうちょっと製品のコア寄りをやってる人の意見を聞こうというディスカッションがありまして、
問題ない範囲でいうと、我々の製品は主に大企業向けのAIを活用するプラットフォームみたいなことを作ってますと。
なので、そのお客さんが実行するユースケースというのは様々で、主には銀行とかね、商社とかそういう会社さんが使っている、あとは不動産とかかな。
けど、その会社の中での業務ってめちゃくちゃ多岐にわたるので、その経理っぽいものからホームっぽいものから、その中でもちろんね、いっぱいいろんな業務がありますよね。
そういうのをできるだけ柔軟に実行するために、製品にはかなりの汎用性が求められます。これをプラットフォームと呼んでいるんですけど、要するにいろんなユースケースを吸収してくれる群ということですね。
抽象化思考との出会い
普段、私がソフトウェアを作るときはどちらかというと具体的なことを実現するという、そういう方向で仕事をしていることが多い。
なんでかというと、私は画面を作るのが仕事なのでユーザーインターフェースですね。
人がどう使うかというのはかなり具体の話であるし、実際に仕様を検討するときも画面をこういうふうにしましょうという話で進むと、これは徹底的に具体の話なんですが、今回はやりたいことをまずはどう汎用化して表現するかということ。
まずやりたいことは具体であるんですけど、それを具体のまま実装するんじゃなくて、ある程度抽象化して汎用化を持たせた上で実装しましょうと。その上で具体のユースケースに合うようにその後からもうちょっと肉付きしましょうという発想で進められまして。
私は普段こういう仕事はしないので結構新鮮で、特にディスカッションした相手が数学的と言っていいかな、モデル的というのが近いかもしれないですけど、できるだけ具体のことをあえて指さずに抽象のレベルで話をするという議論の仕方をしていて、
これは彼も自身で言っていたんですけど、だから時々自分が具体的に言うとこれとこれとこれが当てはまってきますかというと、おそらくそうなるでしょうと言うんだけど、あえてそこには踏み込まないレベルでまず話して、そういうふうにして抽象の方をまず確定させていこうという議論の仕方をしていて、これはめっちゃ面白いなと思いまして。
プログラマー、ソフトウェアエンジニアもいろんな人がいて、本来もともとソフトウェアエンジニアをしている、特にOSとかプラットフォーム、いろんなユースケースを叶える汎用的なものを作っている人たちはおそらくこういう思考法をする人が多いかなと思うんですが、
基本的に大体のソフトウェア開発会社というのはアプリケーション、それぞれのユースケースを叶えるための製品を作っているので、あんまりこういう抽象を突き詰めるみたいな、そういう発想は普段はあまりしないんですけど、この製品ではそういうのは必要なので、
結構ね、そういう抽象を抽象のまま話すということをやって、なかなか面白かったですね。私は最初に、私はこういう話はめっちゃ苦手ですっていうのを宣言してあるんで、もう気楽なもので質問をしまくってですね。
たぶんその場の感じからすると、そこそこ質問をした方が、他のその場にいる人は全員その抽象で考えるのは得意なわけじゃないと思うから、それである程度肉付きをした方が良かったんじゃないかなと勝手に思ってるんですけど、そういう感じで抽象で話をするっていうのをやりまして、非常に刺激的で楽しかったですね。
エンジニアの多様な視点
考えると、こういう考え方ができる人は普段からソフトウェアがそういう抽象の塊みたいに見えてるのかなとか、モデルで考えてるんだろうなとか、もしくはそのグラフ的なモードで見えてたりとかするんだろうなというふうに思いまして、自分なんか画面で見えちゃうんですよね。
なんかこういうソフトウェアがあって話してると、頭の中に画面が浮かんで、なんなら色やアニメーションまでついてるみたいな、そういうものが仕事から頭に浮かぶんですけど、たぶんこういう抽象で見る人は全く違うものが頭の中に浮かんでるんだろうなと思うと、だいぶ面白いですね。
一口にソフトウェアエンジニアと言っても、たぶんソフトウェアを考えるときに何から考えるかはだいぶ違うだろうなと思っていて、よくあるサーバーサイドのエンジニアの人はおそらくデータで見えてるだろうなと思います。
データベースとかもっと言うと多分データベース、こういうリッスンとかのデータを保存する、データを保存したり引き出したりするものをデータベースとか、もうちょっと専門的に言うとリレーショナルデータベースなんですけど、そのデータをどう保存するかっていうところがコアになるので、おそらくそこから考える人もいるだろうなと思うので、
たぶん自分が得意な領域によってどういうふうにソフトウェアを考え出すかっていうのは意外とソフトウェアエンジニアの中でもマチマチなんじゃないかなと思っております。
会社としてもそういう得意領域が違う人たちが集まるといいソフトウェアができるというのはなんとなくみんな経験的に知ってますんで、そういう人たちを上手いこと集めて一緒に仕事をしているんですけど、どこの会社にもこういう抽象で考えるのが得意な人ってだいたい1人ぐらいはいるかなと思ってまして、意外なことにソフトウェアエンジニア全員ではないという、私のようにそういうのがだいぶ苦手な人もいますし、
サーバーサイドの人でも抽象的な思考が得意な人ばっかりじゃないんじゃないかな。
あと抽象が得意な人も別に愚症が苦手なわけじゃなくて、抽象と愚症の間を生きてきるというのがこういう人たちの持っている能力かなと思うので、自分には残念ながらそういうのあまり備わってないですけど、そういう考えに触れるとめっちゃ面白いという話でした。
刺激的な体験のまとめ
今回は何も具体的なことを話さずに面白かったところだけ話してみたんで、何のこっちゃかもしれないですけど、こういうディスカッションを自分は面白いと思うんだなというのを何度か頑張って話してみました。
それではありがとうございました。
08:28
コメント
スクロール