tekiehei2317's blog

仕事で学んだことと、これからやりたいこと(2023年版)

投稿日: 2023-05-21

今まで関わったプロジェクトや現在の状況を振り返りながら、これからやりたいことを考えました。迷った時の行動指針になるように、今の考えを整理してみようと思います。

仕事を通して自分について学んだこと

仕事の方法というよりは自身についての理解で、自分がどういうことをしたいのか、どういうことにモチベーションがわくのかということです。

  • 価値を作ることに直接的に関わりたい
  • 自分がやることは自分で見つけたい

価値を作ることに直接的に関わりたい

価値を作るということは、誰かの役に立つことをするということだと思います。つまり、価値を作ることに直接的に関わるというのは、自分のやったことが誰かの役に立っていることが分かるということです。

ソフトウェアエンジニアは、ソフトウェアを通して課題を解決する仕事です。課題を解決するためにソフトウェアが不要なのであれば作らなくていいし、機能を作らなくて済むのであればそうするのがいいと思います。

作り初めのソフトウェアは不確実性が高いです。というのは、何を作れば課題を解決できるのが分からないからです。このような状況で、「何を作るのか」というビジネス寄りの決定と、「どのように作るのか」というエンジニア寄りの決定・実行が、別々の人によって行われて分担作業になるのはあまり良くないと感じています。

もちろん、成熟したソフトウェアの場合は別だと思います。ソフトウェアが大きくなってくると技術的な課題の難易度も高くなり、高い技術力が要求されるようになります。そのような場合は、技術的な複雑さをエンジニアが引き受けるというのは自然なことだと思います。

自分がどちらをやりたいのかを考えたときに、モチベーションが湧くのは「何を作るのか」「どのように作るのか」の全体に関わることなのかなと思いました。これには技術力だけではなく、ある種の泥臭さが必要なのだろうと考えています。

自分がやることは自分で見つけたい

これは「何を作るのか」にも関わりたいということにも関連しています。「何を作るのか」ということが決まっていて、それを作ることだけを依頼されるのはあまり好きではないと感じました。

なぜかというと、作るものの妥当性を考えてしまうからだと思います。その機能を作ることによって課題を解決できないのであれば、作ったソフトウェアが誰にも使われないのであれば、たくさんの時間とエネルギーを使って何の意味もないことをしていたことになってしまいます。

「勝手に学ぶ人」と「期待されて学ぶ人」の差が埋められないという記事を読みました。自分ができることを勝手に探してやっていくタイプの人と、依頼されたことをきちんとこなすタイプの人がいて、前者のタイプの人はどんどん伸びていくという話です。

記事の中ではどちらのタイプの人が優れているというわけではないと書かれています。私はどちらかというと前者のタイプなのかなと思っていますが、気になるのは「勝手に学ぶ人」を動かすモチベーションは一体何なのかということです。

私の場合のモチベーションは「興味」なのではないかと考えています。その興味は「課題を解決すること」「技術」のどちらかに向けられていたように思います。問題は、興味の対象が無くなってしまった場合です。

何を作るのかが決まっている状況では技術の方に向けられました。機能を作る過程で、こういう場合はどうするのが一般的なのか、どういう仕組みなのかということが気になるので、それを調べたり実践したりしてみます。しかし、プロジェクトが続けば不明点が明らかになっていき、技術的な興味は減っていきます。その時、私は自分から何もできなくなり、無気力状態に近い状態になってしまいました。

これから何をやりたいのか

取り組むことを考える上では、いろいろな軸があると思います。例えば次のようなものです。

  • 誰の課題を誰と解決するのか
  • 自分がどういうことをできるのか

誰の課題を誰と解決するのか

自分の課題を解決するものを作ってそれが他の人にも役に立つようにしたり、すでに課題を解決しようと取り組んでいる人を助けるというのもあります。

前者は、自分が中心になって取り組むのと不確実性が高いのが特徴です。後者は他の人と協力して仕事をするということになると思います。

自分がどういうことをできるのか

何かの課題を解決しようとするとき、自分ができることから考えをスタートさせるのは有効な方法だと思います。私ができることを考えた結果、次の2つが思い浮かびました。

  • アプリ開発や自動化で、困っている人を助ける
  • ソフトウェア開発者なので、同業の人が困っていることを理解したり助けられる

プログラミングができることのメリットは、人間がやっていることをコンピュータに効率よく任せられることや、今までになかったものを作り出せることだと思います。

ソフトウェア開発者の助けになれるというのは、例えば自分が学んだことを発信したり、どういうことで困っているか聞くことがあります。その分野で一番にならなくても、新しいことを学んだのであればば、少なくともそれを知らなかった自分の役に立つことができます。

技術的なことで1つ感じたのは、まだ誰かの役に立つようなソフトウェアを作れていないことや、自分が設計したライブラリを世の中に出せていないことに若干のコンプレックス(というまでではないかもしれない)があるということです。そしてこの部分は、今の自分の技術的な伸びしろだと感じています。

まとめ

具体的に何をやるのかはまだあまり決まっていないですが、どういう方向に進みたいのかははっきりしてきた気がします。7月に入ったら少し休みを取ろうと思っているので、そのときに色々試してみたり、少し大きな決断をするかもしれません。

誰であれ自分の能力や特性を活かせる場所で活動すれば、人の役に立って輝くことができると思います。自分の場合は、ソフトウェア開発に関することと課題を解決することに対する興味が活かせる場所が、その1つの場所なのだと思います。

他の人が自分ができないことができることに対して劣等感を抱く必要はありません。技術力というのは一つの軸で測れるようなものでもないし、それが何かを進める上で必要な100%のことではないからです。

目の前にいる人にしかできないことがあるので、そこにいるだけでも価値があるものです。そこにいるということは、他の人にはない強みです。目の前にいる人のために、泥臭く課題解決に取り組みたいと思いました。