ファンブリューの金井です。
長年システム開発をやっていると、「これだけやったのだから努力を評価してほしい」と思うことがあります。
しかし、なかなかそうはいかない現実があります。
この記事では、システム開発では「なぜプロセス評価が難しいのか」、そして過程ではなく、結果を出すことがなぜ重要であるのかを書いてみたいと思います。
プロセスだけではお客様の利益にならない
どうしても避けて通れないのがこの話で、どれだけ努力をして時間をかけたとしても、お客様に直接的なメリットがあるわけではないということです。
例えば、アジャイル開発を採用したプロジェクトで、形としてはうまく運用できたとします。
しかし、その結果生まれた製品がお客様の期待に応えられなかったとしたら、それは成功とは言えないでしょう。
ここで重要なのは、プロセスの遂行だけではなく、それがどのような「結果」を生むのかを重視することです。
お客様に喜んでもらうためには、最終的な成果物の品質やニーズを満たすことが求められます。
時には過程を無視してでも、結果を掴みにいく姿勢が大事になります。
過程重視はエンジニアの成長につながらない
エンジニアの成長の観点からも、プロセスだけの評価が難しいという点があります。
もちろん、プロセスを通じて技術的な知識やスキルを学ぶことは可能です。
しかし、その学びは限定的であることが多いです。
例えば、エンジニアなら「時間とお金さえあれば」というのは、一度は考えたことがあると思います。
実際には何もかもが潤沢なプロジェクトはほとんどなく、リソースに制限のある中で開発を進めていかなければなりません。
その中で、過程を評価に入れてしまうと、結果が出せずに多くのプロジェクトが失敗に終わります。
限られた状態の中で、どうやって成果を出していくか。
そこにこだわることで、自身の思考力や問題解決能力を鍛えることが可能となり、それが結果的に自己成長につながります。
結果を出さないことには会社に利益が出ない
会社としての利益を考慮すると、プロセスではなく結果を評価せざるを得ないところがあります。
それが最終的な成果物として、例えば、お客様にシステムを納品すること、お客様の求めるシステムが動作することで、ようやく会社は対価としての報酬を得られます。
エンジニアリングを専門でやっていると、お客様からの報酬について考えることはあまりないかもしれません。
しかし、最終的にどのような作業であっても、お客様を満足させることを意識しておく必要があります。
結果の定義を確認する
ここまで結果という言葉を何度も使ってきましたが、もちろん、すべての業務でわかりやすく目に見える結果が出るとは限りません。
例えば、あるシステムの不具合調査を依頼されたとき、「原因が判明するかはわからない」という条件で仕事を受けているかもしれません。
ただ、それであっても調査した結果、「なぜわからなかったのか」をお客様に理解できるように報告するという成果が必要です。
どういった作業をして、結果として原因がわからなかったのか、そういった報告がしっかりなされなければ、お客様は次の一手を打つことができません。
その案件での成果物やゴールが何であるかは常に意識しておきましょう。
プログラムを書く人から一歩抜け出す
プログラミングという作業は非常に楽しい仕事だと私は思っています。
ただ、プログラムに書くことにこだわりすぎていると、プログラマーという専門の道を徹底的に歩まなければなりません。
仕事をしているのであれば、やはり給与を上げたり、休みを増やしたり、もっと大きな仕事にチャレンジしたりなど、そう言ったことも考えるでしょう。
そのように考えたときに、プログラミングだけしていると、コードを書く作業者としての人材という扱いになるでしょう。
ChatGPTのような技術が生まれた現在では、少しコードがわかる人であればChatGPTに聞いた内容を手直しして、そのままプロダクトに適用することだってできます。
プログラムを書くことは1つの手段であって、その先に何を求められているのかを考えることが大事になってきます。
最後に
少し思いついたまま書きましたが、大切なのは結果を出していくことです。
その結果とは、わかりやすくいうとお客様に満足してもらうことですが、仕事に夢中になって意識できていないこともあるでしょう。
システム開発は作品を作ることではなく、誰かに利用してもらうことで価値を発揮します。
今いる自分のポジションで何が求められているのか、しっかり考えて日々の業務に取り組むのが大事です。