こんにちは、あのぶるです。

「プログラマ」や「ソフトウェアエンジニア」、場合によっては「システムエンジニア」と呼ばれる人たち、要するに「自分(たち)の書いたプログラムを他者に提供することを主な仕事としている人」に対してどのようなイメージを持っていますか?
ポジティブなイメージ、ネガティブなイメージ、きっと色々あると思います。

昔、まだ私がひよこエンジニアだった頃、ある人にこんなことを投げかけられたことがあります。

プログラマやシステムエンジニアって他人に言われたものを言われた通りに作ってるだけですよね?それって何が面白いんですか?

※記憶による要約

(ここ数年の間でIT業界に興味を持った方はもしかしたら驚くかもしれませんが、10年ほど前のプログラマに対するイメージとしては比較的よくあるものでした。)

それに対して具体的に何を答えたのか記憶はおぼろげながら、お茶を濁した回答しかできずとても悔しい思いをしたことだけはよく覚えています。

少なくとも当時よりは成長しているであろう現在の私がその質問に対してどのような回答を持っているのか、本来ならまず当人に直接伝えたいところではあるのですが、その場限りのコミュニケーションで終わってしまったためとても叶いそうにありません。
ということでこの場を借りて知見を共有する形でこの気持ちを昇華させたいと思います。よろしければお付き合いください。

そもそも、言われたものを言われた通り作るって結構難しい

今となっては当時の私が真正面から答えられないのも無理はなかったのかなと思っています。なぜって「言われたものを言われた通り、かつ必要なタイミングに間に合うように作る」って実は結構難しくて、ひよこエンジニアだった当時の私にそれが出来ていたとはとても思えませんし、さらに言えばそれを認識できるほどの力もなかったんだと思います。

もしかしたらちょっと脅かされたように思えたかもしれませんが、これを読んでソフトウェア開発は難しいものなのだと尻込みしてほしい訳ではもちろんありません。どちらかと言うと難しい問題に直面してもそういうものだと思ってあんまりめげずに「いや自分たちはこれからすごい仕事をやり遂げてやるんだ」と強気に、ある意味気楽に乗り越えていく気持ちを大事にしてほしいなぁと思っています。それに”困難は群れで分け合うもの”ですから、先輩なりその道の先人を頼る選択もありますしね。やり遂げたときは本当に気持ちいいですよ!

もちろん「言われた通りに作っていいのかな」と考えるのも私たちの仕事です

これに関してはわりとそのままです。受託開発であればお客さんから、自社サービスであれば事業メンバーから依頼のあったものをそのまま作るのが本当に最適解なのか、技術とその実現コストの面から考えるのも大事な役割です。仕様に矛盾や無駄がないか確認したり、もしくはもっと単純な仕組みで出来る可能性を検討したり。場合によっては自分たちの手で開発するのではなく、外部サービスの採用を提案することもあるかもしれません。

それでも「言われたものを言われた通り作るだけ」としか見えないのであれば、実際この仕事にモチベーションを見出すのはちょっと大変だと思う

プログラマや(ソフトウェア分野の)エンジニアと呼ばれる職種の仕事の本質は「プログラミングを中心としたソフトウェア技術による問題解決」です。
言われたものを作る、つまり他者の依頼に応えることで誰かの問題を解決しているという価値を見出せなかったり、喜びや達成感を得られないのであれば実際おすすめできる仕事ではないのかなというのが正直な気持ちではあります。以前の記事でも似たようなことをお話ししましたね。これについては本当に向き不向きの問題であって、どちらが偉いとかすごいというものではありません。

ただし、「言われたものを言われた通り作るだけ」にはもう一つ別の解釈があって、「作る内容をかなり具体的に指示され、指示のあった通りに自分の創意工夫が入る余地もなくコードに落とし込む作業のみをする」という状況を指していることがあります。
一人前になるまでの過程であればまだしも、十分に成長してもなお変わらないのであれば私もそのような働き方は確かに遠慮したいかなという感じですね。

楽しむと同時に胸を張れる仕事をしていけるようになりたいですね。長い目で見て前向きにやっていきましょう!


The following two tabs change content below.

あのぶる

Software Engineer
杜の都で育ち、赤べこの街でコンピュータのいろはを学んだソフトウェアエンジニア。今はスマホゲームのためのWebAPIを作るお仕事をしています。最近はすっかりガルパンおじさん化。