自己紹介
2021年2月に入社したバックエンドエンジニアの福本です。前職はタイヤメーカーで生産技術職をしていました。前職時代の海外出張で価値観が変わり、自分の人生を生きようと思い、いろいろ挑戦をしていく中でプログラミングに出会いました。PHPを半年間学び、未経験エンジニアとしてコムデに入社しました。入社後はバックエンドエンジニア兼システムディレクターをしています。
今回の内容
未経験エンジニアの方々はプログラミングスキルついてはたくさん勉強をしてますが、Webシステムリリースに関しての手順やWebシステムにはどういった役割の人達が関わっているのかについてはチーム開発をするか実際にシステムをローンチした経験がないとわからないと思います。(私も仕事をするまでわからなかったです。)
今回の記事を読むことでWeb制作会社ではどのような流れでWebシステムを作っているのか、どのような役割の人達が関わっているのかがイメージできると思います。今回の記事が未経験からエンジニアを目指す人やWebディレクターになりたい人の参考になれば幸いです!
担当したシステム
メーカーのキャンペーンサイト。主にスマホから応募をするサービス。
システムではメーカー商品を訴求し、ユーザーの購入促進が目的。
LINE配信などあり、配信時の負荷に耐えるサーバースペックが必要。
様々なスマホに対応するため、デバック作業に多くの時間が必要。
登場人物紹介
Webシステム開発に関わる人達は大きく分けて、以下になります。
・クライアント
・ディレクター
・デザイナー
・エンジニア
L フロントエンドエンジニア
L バックエンドエンジニア
L インフラエンジニア
登場人物の詳細紹介(個人の見解を含んでいます。)
クライアント
直請けや発注元のクライアントはエンドクライアントとも呼ばれます。クライアントによって仕事の進め方が全然変わるため、進行管理はディレクターの腕の見せどころです。はじめは全然わからないと思うので、先輩からクライアント情報、仕事を進め方を聞いて、自分の中でナレッジを蓄積することが大切です。たくさんのクライアントと仕事をして、学ぶことが重要と思います。
ディレクター
Webサービス制作の要。クライアント、ライター、デザイナー、プログラマーなど多くの人達と関わりを持ちながらスケジュール管理・予算管理などWebサービスがリリースするまで全てを管理します。社外・社内ともに人と接することが多く、関係各所との調整・交渉が頻繁に発生するため、円滑なコミュニケーション能力が必要になります。
役割
・プロジェクトを円滑に進める人:司令塔
主な仕事
・進行管理
・ヒアリングを通してクライアントの要望を抽出
・社内リソース管理
誰と主にやり取りをするのか
・すべての人(クライアント、社内(デザイナー、エンジニア))
向いていると思う人
・気配りがとれて、コミュニケーションができる人
・俯瞰的に物事を見れる人
・リスク管理ができる人
デザイナー
Webサービスの顔を作る。クライアントが思い描いているものを実現できるように全体の構成を考え、見えやすく、わかりやすく、そして使い勝手が良いデザインを制作します。Webサービスの画面はUI(ユーザーインターフェース)とも呼ばれ、ユーザーの操作性を考慮して設計されるため、UIに関する知識も求められることがあります。
役割
・クライアントの思いを視覚的に形にする人:表現者
主な仕事
・ワイヤーフレームや構成図をデザインにおこす
・UI/UXを考え、ユーザーに沿ったデザインを考える
誰と主にやり取りをするのか
・ディレクター(クライアント)、エンジニア
向いていると思う人
・視覚的に何かを作りたい人
・人の思いを形にしたい人
フロントエンドエンジニア
HTML、CSS、JS(Javascript)を駆使して、Webサービスのユーザーが見える部分の開発・運用を担当するエンジニア。ユーザーに対して見えやすく、扱いやすい画面を構築し、保守のしやすいコードを書くことが求められます。また最近では求められる技術も高くなり、Vue.jsやReactなどのモダンなJSフレームワークを用いた開発が多いです。
役割
デザインをサービスに落とし込む。
主な仕事
・コーディング
誰と主にやり取りをするのか
・ディレクター(クライアント)、デザイナー、エンジニア
向いていると思う人
・ユーザーの気持ちに寄り添える人
・新しい技術・知識を求める人
バックエンドエンジニア
Webサービスのユーザーが見えない部分の開発・運用を担当するエンジニア。入出力の処理、データベース(DB)への登録・読み出し・削除などWebサービスの裏方をすべて仕切る人になります。
役割
・システムの基盤を作り上げる
主な仕事
・システム構築
・DB構築
誰と主にやり取りをするのか
・ディレクター(クライアント)、デザイナー、エンジニア
向いていると思う人
・細かいところまで見れる人
・論理的に考えるのが好きな人
・新しい技術・知識を求める人
インフラエンジニア
インフラの設計・構築、保守・運用を担当するエンジニア。コムデでは主にAWS(アマゾンウェブサービス)というクラウドプラットフォームを用いてインフラ構築をしています。
役割
・サイトが動くような環境を作り、運用する人
主な仕事
・インフラ構築
・インフラ運用
誰と主にやり取りをするのか
・ディレクター(クライアント)、エンジニア
向いていると思う人
・効率化する作業が好きな人
・新しい技術・知識を求める人
システムリリースまでの大まかな流れ
失敗談、次回に向けての改善点
ディレクターとして、
スケジュール管理で甘かった部分がありました。仕事には予期せぬ出来事が起きるものと考え、吸収できるバッファをもたせることや事前にリスク管理をしたスケジュールを組むことが重要だと感じました。バッファもあり過ぎたら無駄な時間になるので、試行錯誤しながら経験値をためて、最適解を出す必要があるなぁと感じました。
デザインの確認がしっかりと取れていないままフロントコーディングを依頼してしまい、出戻りや無駄な工数を発生させました。原因は仕事の手順について自分の理解が不十分なまま進めた結果でした。どのフェーズでも同じですが自分自身の理解が不十分なまま仕事を進めると、ろくなことはなりません。しっかりとクライアントや社内の人達と連絡をとり、両者間で認識齟齬がないかを確認しながら進めることが大切だと感じました。
エンジニアとして、
一人の力ではなく、チームとしての力を出す。システム実装中に詰まった場面で自分ひとりで問題解決をしようとして時間を大幅に使いました。最終的には他のエンジニアに助けを借りることで問題は解決しましたがもっと早くに相談して解決すれば無駄な時間を削減できたと思いました。エンジニアとしての仕事の目的は決まった期日にクライアント要望のシステムを納品することです。そこまでに至った手段などはプロセスは関係ないです。チームとして最大のアウトプットをできるように考えて動くことが一番重要だと感じました。
エンジニアとディレクター、両方の経験を通して
ディレクターをすることでシステム開発の設計からリリースまでの流れを理解することができました。また各役割の人達の仕事を知ることでエンジニアとしても、開発する際のアイディアに広がりが増えたと思います。自分が知っていることで他役割の人にスムーズに依頼ができたり、事情をしっているからこそ協力して早期に問題解決をすることが可能になり、リリースが安定的になると感じました。今回の経験や反省点を生かして、次回以降もっとスムーズにリリースできるようにしたいと思います。
おわりに
最後まで読んでいただきありがとうございました。
今回の記事でシステム開発についてイメージがつきましたら幸いです。
コムデの案件はとにかく多彩!大手企業の案件にも多数あり求められる技術レベルも日に日に高まっています。最新の技術習得や、スキルアップを目指したい方が開発を楽しめる環境をご準備しています!
株式会社コムデでは一緒に働く仲間を募集しています