LoginSignup
15
5

More than 1 year has passed since last update.

技術力以外に大事なこと。高い価値を生み出すエンジニアになるには?

Last updated at Posted at 2022-12-14

この記事は『LITALICO Advent Calendar 2022』15日目の記事です

はじめに

発達障害・学習障害のお子様向けの施設運営をする際のシステムを運用・開発している福嶋です。
私はこんな人です。↓

  • エンジニア経験はまだまだひよこ🐤(2年目)
  • 今年の7月に社内異動をしまして、初めて自社のプロダクト開発のポジションに携わり現在に至ります

この記事は何?

初めて、社内のプロダクト開発のポジションにジョインした時に、技術以外に学ぶべき大事なことをお伝えします。(完全個人的な意見です。)

ジョインした当初の誤解

開発経験はちょびっとありましたが、実際に自社のプロダクト開発に携わることは初めて。
エンジニア経験が浅かった私は、「技術力が全て」だと考えていました。(もちろんエンジニアなので技術力は大事である。)

そんな私は、異動した当初

  • リポジトリのソースコードを片っ端から読む
  • 使われている技術スタックの勉強をする
  • 仕様(設計書まわり)をとにかく見る

ということをやっていました。
間違いではなかったと思いますが、何かが足りない。。。。
と思っていたある時、気づきを得たので自戒の念を込めて記事を書いていきたいと思います。

結論:ドメイン知識向上に心臓を捧げよ

そもそも、ドメイン知識とは何なのか?

ドメイン知識(domain knowledge)とは、特定の専門分野や業界についての知識、知見のこと。専門家やその領域に詳しい人が持つような体型的な専門知識のことである。

ドメイン知識は大きく2つに分けられる。

  • 現場の方が実際に行われる業務の知識
  • 関連する法令等の知識

ドメイン知識が必要不可欠であると思ったきっかけ

上期の評価面談で上長から、「タスクとして物事を捉える傾向があるので、問題解決の意識付けをした方が良い。」と指摘を頂きました。日々の業務や開発に意識が集中しすぎていてこの点に気づかなかったのは反省点です。

技術や機能の実装はあくまでも問題解決の手段の1つでしかないことを改めて痛感しました。プロジェクトが発生するということは、下記のように、何かしら解決したい問題があるからです。

  • KPIとしてこういう数値が管理できていない(問題) ⇨ だから〇〇の機能が必要(解決)
  • 〇〇の作成漏れがある(問題) ⇨ だから〇〇のデータを定期出力する必要がある(解決)

とは言いつつ、「なぜ問題解決の意識がなかったのか?」を考えたときに、本質的な「問題」を特定できていなかったのではないかという仮説を立てました。では、そもそも「問題」とは何なのでしょうか?調べたところ下記のような意味合いで使われるようです。

「問題」とは“あるべき姿”と“現状”の差のことをいいます。

mojikyo45_640-2.gif

※個人的には、「ありたい姿」という言葉の方がしっくりきますので、以降「ありたい姿」というワードを用います。

なぜドメイン知識が必要なのか?

自分を例に考えてみます。
例えばですが、私自身の課題の一つとして、社内からの要望に対しての提案ができていないことがあります。「社内からの要望(=ありたい姿)」を認識したとしても、「ドメイン知識(=現状)」への理解が甘ければそもそも本質的な問題を特定できないことに気づきました。

「〇〇したいから△△という機能を作ってほしい」という要望が上がってきたとしても、本質の問題解決方法としてズレが生じているのは多々あります。

私のケースの場合、下記のような「ドメイン知識(=現状)」がないと適切に問題(=差分)を認識できないことを痛感しました。

  • 現場でのオペレーションの理解
    • 誰がいつその業務を行うのか?
    • なぜその業務を行うのか?
    • 対象の業務のタイムラインは?
  • 業務リスクについて
    • 請求周りなど遅延やミスが決して起きてはならないクリティカルな業務は何か?
  • 業務負荷について
    • 現状、誰にどれくらいの業務負荷がかかっているのか?

適切に問題(=差分)を認識することが大前提としてあって、「技術でどうアプローチするのか?」というエンジニアならではの良い提案ができるのではないかと考えております。

Untitled (3).png

という気づきでした。

自戒と来年の目標

  • エンジニアがシステムを運用・開発をする理由の1つとして、「問題解決」をするためにある
    • ただ実装する or 要求を満たすだけではなく技術で課題を解決できるエンジニアになる
  • 問題を特定するためには、まずドメイン知識をつけなければならない
    • ⇨ ドメインエキスパートに依存するのではなく、自ら業務や法令の知識をつけ難易度の高い開発をリードできるようになる

自分のアクション

さらに、下記を自分のアクションとして残しておきます。

  • 複雑な社内の問い合わせに対応ができる状態になる
    • 過去の問い合わせを毎日少しでも目を通す
    • 問い合わせが生じた理由まで考える。わからなければ聞くor議論する
  • 社内からの要望に対しての提案ができる状態になる
    • 請求周りの深い知識をつける
    • 業務リスクを知る
    • 現状の現場でどれくらいの業務負荷があるのかを知る
    • 要望に対しての理由と背景を知る
    • 現場の業務フローを把握する(何の業務をいつまでに誰がするべきなのか?)
  • 関連する法令等の理解を進める
    • 2024年法の資料が出でいるので、読み込む
    • 愛でる用の福祉業界の本を買い、継続的に学習の機会を作る

後書き

今回内容を迷っている中で、下記の記事に出会いました。

「2ヶ月前の自分が泣いて喜ぶ記事」という言葉が自分の中でピンときまして、今の自分にしか書けない等身大の記事を書くことができました。ありがとうございますm(_ _)m

15
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
5