はじめに
Webアプリケーション開発をするうえで、スキルや技術はもちろん重要ですが、難しいことに直面した時に支えてくれる土台として、マインドセットが大事であると感じています。前向きに仕事ができる手助けになればと思い、いくつかの伝えたい点に分けてこの記事を執筆しました。すべて僕なりの考えや解釈です!
マインドセット ➀ 「前提として難しいことをしている仕事である」
Webアプリケーションの開発なので対人というよりも論理で動くアプリケーションと向き合うことが多いということが大きな仕事の特徴だと思ってます。
複雑に絡み合うアプリケーションなので、仕様の理解に時間がかかること、どういうアプローチを取ってプログラムを構築していくか悩むこと、不具合の解消法が見つからなくて悩むことなど、難しいことがたくさんあります。些細なミスなどもあったりします。
僕はこのWebアプリケーション開発を「難しいことをしている仕事」なんだと捉えています。この職種自体、相当新しい部類の高度な職業だと思います。壁にぶちあたって僕自身難しいと思うことも多いですが、そもそも難しいことをしている仕事なんだということを念じて心を楽にしています。
マインドセット ➁ 「最善を尽くそう。その先のエラーは自然なプロセスと捉える」
自分で書くコードに対して、コード量が増えるほど何度も見直してより良いコードを目指しています。それでも、少し時間を置いて見直すと、改善点や思わぬ影響箇所が見つかることが良くありますし、本ステージングや本番の環境への適用後にエラーが見つかったこともあります。
また、普段からエラー通知やお客さんからのフィードバックを通じて不具合が発見されることもありますし、不具合を開発側から発見することもあります。
このように、完璧な実装をするのはなかなか難しいですが、それでも「できる限りの最善を尽くした実装」をしていくことが大事だと思います。「最善を尽くす」ということは僕自身一つの大事なキーワードです。
それでもエラーが生まれてしまうのは、Webアプリケーションとしても、エンジニア個人の成長過程としても、「自然なプロセス」だと思います。出ないに越したことはないので、もちろん最善を尽くしますが、それでも出てしまったりミスがあったとしても次につなげていけたら個人的に良いと思います。
マインドセット ➂ 「最適解は場面に応じて変化する」
チームメンバーのコードレビューを通じて、自分では思いつかなかった別のアプローチを知ることや色々な指摘を受けることがあります。状況や工数など色々な点を考慮した上で最適解は変わり、人によって考える最適解が異なるときは、メンバーで意見を擦り合わせることが必要なこともあります。
アプリケーション全体で見ても、不具合解消や改良を適宜行っていますし、ライブラリやフレームワークも定期的に更新されますし、技術のトレンドや社会も変化していきます。生き物みたいに変化しているので、一度実装したものを数年立って見直すこともあります。
正解や絶対優れているというものが必ずあるのではなくて、場面に応じて最適解は変わり、その「最適解も環境に応じて変化」していきます。なので、正解を知るのではなく、場面場面の実装とその意図を知っていくことがエンジニアとして大事だと思いますし、そうやって得た知見を活用にして自分なりの根拠を持った最適解を見つけていくことがこの仕事の一つ面白いところだと思っています。
マインドセット ➃ 「チーム開発である」
マーケライズの開発チームのメンバーそれぞれ別のタスクを担っていますが、皆、MRC という巨大なアプリケーションに対峙している人間同士です。難しいこともありますが、きっとメンバーの中には同じ難しさを共有してくれたり、解決への道筋を知っている方がいるかと思います。
どうしても困ったら一人で抱えすぎず、事象を自分なりに整理してメンバーに相談してみることが大事だと思います。
まとめ
以上4 つの点をまとめてみました!最後までお読みいただき、ありがとうございました!