システムエンジニアとして働くようになり、現場配属されて最初に担当したのがフロントエンドの開発でした。
半年ほど開発をしていたところ、「バックエンドもお願いしたい」と言われ、フロントエンドとバックエンドの両方の開発を行うことに。
それ以降、両方の開発を続けていますが、経験を積むに連れて感じたのが「両方の経験できて良かった!」というもの。
これだけだと浅い言葉ですが、フロントエンド・バックエンドの両方の知識を持つことでシステムエンジニアとして大きく成長できたと感じた点がいくつかありますね。
というわけで今回は、僕が感じたフロントエンドとバックエンドの両方を経験するメリットについてお話ししていきます!
フロントエンドとバックエンドの違いとは
まずは、フロントエンドとバックエンドのそれぞれの役割について簡単に確認しておきましょう。
フロントエンド
フロントエンドは簡単に言えば、「ユーザーの目に触れる部分」になりますね。
たとえば、Webサイトなどブラウザ上で文字の入力やデータの表示、ボタン操作などを提供するプログラムがフロントエンドに該当しますね。
HTMLやCSSによるグラフィック表示や、javascriptでバックエンドと情報をやり取りし動的な表現を行うのがフロントエンドの領域と言えるでしょう。
バックエンド
一方で、バックエンドは「ユーザーの目に触れない部分」になります。
簡単に言えば、ユーザーが入力した情報をデータベースに保存したり、入力情報に応じたデータをフロントエンドに渡すなどの役割がありますね。
たとえば、Webサイトでよくある、検索や決済のような機能の処理はバックエンドで行われています。
フロントエンドとバックエンドの両方を経験するメリット
では、フロントエンドとバックエンドの両方を経験することによって得られるメリットについて見ていきましょう!
- システム全体の理解が深まる
- 両方の観点から仕様を検討できる
- 不具合調査がスムーズになる
- マルチな開発者は重宝される
①システム全体の理解が深まる
1つ目が、システム全体の理解度が高まることですね。
どちらか片方の経験しか無い場合、特にフロントエンドの経験しか無い場合は、システムの仕組みを理解しにくいです。
フロントエンドの開発はデザインの要素を無くして考えれば、APIを実行するための画面設計をするのがメインになります。
つまり、APIを介してデータの受け渡しができれば良く、バックエンドでどんな処理が行われているかをあまり把握していなくても開発は可能なんです。
しかし、システムの仕組みの根幹はバックエンドの処理にあると言えるでしょう。
僕自身、バックエンドの開発をするようになってから「あ。このシステムってこういう仕組みになってたんだ。」と知りました。
フロントエンドの開発担当の時もシステムの説明は聞いていましたが、結局のところ、理解が浅かったわけです。
実際のバックエンドの処理をソースコードで見ると理解度が大きく変わりますし、その後はシステムの追加機能の説明を聞いた時にすぐに理解できるようになりましたね。
一方、バックエンドの経験しか無い場合はシステムの内部的な処理を理解していれば、ユーザーの画面操作を把握していなくても開発ができることになります。
セキュリティなどの役割もありますが、フロントエンドとの関わりのメインはデータのやり取りです。
データの受け渡しができれば良いので、どんな手順で画面操作をすればデータの受け渡しをできるかは関係無いわけですね。
「ユーザーがどんな操作をし、裏でどんな処理が行われるのか」という全体像を把握できると、自分が何のために今の作業をやっているのかが明確になりますし、開発のモチベーションが上がるでしょう。
②両方の観点から仕様を検討できる
フロントエンドとバックエンドは連携しながら開発を進めることになるので、両方の観点から仕様を検討できると開発がスムーズになります。
どんな画面が必要か、APIでどんな形式のデータを受け渡しするのが良いのか、APIでどんな処理が必要か。
全体的な処理の流れをイメージできるので、考慮漏れに気付きやすくなります。
システムエンジニアとして成長する上で、仕様について多角的に丁寧に考えられるようになることは重要でしょう。
③不具合調査がスムーズになる
APIの実行時にエラーが発生することは開発をしているとよくあります。
フロントエンドからAPIで渡したデータが不正なのか、APIの処理に不具合があるのか、それとも両方か。
フロントエンド・バックエンドの両方の経験があれば、APIのソースコードを見てエラーの原因を特定できますね。
それを解決するためにAPIの処理の修正が必要なのか。
あるいはフロントエンドの修正が必要か。
フロントエンドだとして、どの部分に問題があるのか。
両方のソースコードを読めると、原因の特定がスムーズですね。
テスト工程だとか運用保守などで活きてくるでしょう。
④マルチな開発者は重宝される
大抵の場合、1つのことに特化するよりもマルチに活動できる人材の方が需要があります。
これはシステムエンジニアの業界でも言えることですね。
できることの幅が広いほど、携わることのできる案件の種類も多くなります。
それによって新たな仕事を任されるようになり、さらに仕事の幅が広がっていくという好循環が生まれるでしょう。
また、少数の開発チームだと特に、フロントエンドとバックエンドの両方ができる人は重宝されます。
「今月の開発スケジュールだと、フロントエンドは余裕があるけど、バックエンドはギリギリだな。○○さん。今月はバックエンドの開発に加わってもらえる?」
という感じで、両方の仕事をできる人だとスケジュールに応じた対応ができるようになります。
まとめ
さて、今回はフロントエンドとバックエンドの両方を経験するメリットについてお話ししてきました。
知識や経験の幅が広がれば、その分実力も付いてくるという話ですね。
会社員だとなかなか自由に仕事を選べないかもしれませんが、チャンスがあれば両方を経験してみるのがおすすめです!