WEBエンジニアの仕事内容




WEBエンジニアの仕事は、まず顧客からWEBアプリケーションの構築を受注し、開発・テストを行って納品・公開するという流れになります。この過程では、SEやプログラマーだけでなく、WEBデザイナーやインフラエンジニアも参加して1つのシステムを構築します。


顧客からの受注ではなく、自社開発の場合も基本的には同じです。顧客と話をするかわりに社内のメンバーと話し合いながら、各エンジニアが関わって1つのシステムやサービスを作っていくことに変わりないです。


ここでは、まずSEやプログラマー、デザイナーなどの各エンジニアの仕事の概要をざっと見た後で、受注から納品までの各段階で各エンジニアがどのように関わっているか、具体的にその内容をご紹介したいと思います。


このページの内容



各エンジニアの仕事内容


各エンジニアの仕事の主な内容は以下のようになります。

SE(システムエンジニア)

仕事内容: 顧客との折衝、打ち合わせ、仕様策定、システム設計、テスト、マニュアル作成、見積書作成

必要となる知識・スキル: コミュニケーション力、提案力、プログラミング、HTML、JavaScript、サーバーの知識、データベース、セキュリティ



WEBプログラマー

仕事内容: プログラミング、テスト、マニュアル作成、打ち合わせ

必要となる知識・スキル: JavaやPHPなどのプログラミング、データベース、HTML、CSS、Javascript、セキュリティ、サーバーの知識



WEBデザイナー

仕事内容: サイトレイアウト、サイトデザイン、アイコン・ロゴ作成、画像加工・編集、イラスト作成

必要となる知識・スキル: HTML、CSS、JavaScript、Illustrator、Photoshop、デザイン



インフラエンジニア

仕事内容: サーバー構築・設定、ネットワーク構築・設定、チューニング

必要となる知識・スキル: LinuxやWindowsなどのOSの知識、セキュリティ、ネットワーク、サーバー、データベース、プログラミング



それでは、顧客からWEBシステムの受注を受けて、システムを開発納品するまでの各エンジニアの具体的な仕事内容を見ていきたいと思います。




システム開発の受注から納品・公開までの流れと内容


1.顧客との折衝~受注


担当:SE

WEBシステム構築の依頼が電話やメール、または既存顧客からの紹介で会社にやってきます。この段階ではまだ正式に発注することが決まっていないことも多いですが、口コミなどで紹介されたような場合にはほぼ確定的なこともあります。


システムを開発してくれる会社に複数声をかけていて、話を聞きたいという場合もあります。


いずれにしても、どのようなシステムを構築するのかを聞くために、顧客のところにSEが出向いていって話を伺います。



2.仕様検討、策定~見積もり提示


担当:SE

顧客からお話を聞いた後は、会社に帰ってどんなシステムにするか仕様を検討します。この段階でおおまかな画面案や画面遷移図、仕様案、作業日程などを策定します。


受注がほぼ確定的な場合には、顧客と何回か打ち合わせを行って仕様や画面案に齟齬がないかを確認してすり合わせることがあります。


おおよそ仕様が固まったら、発注をいただくために最終的な金額を計算し、見積を提示します。


顧客にも予算があります。予算オーバーの場合は値下げの依頼があったりしますので、継続して発注をいただくために出精値引きをすることもあれば、いくつか機能を削って値段を下げることもあります。


先方が見積に納得してもらえたら、無事受注の運びとなります。



3.システム設計


担当:SE、プログラマー、インフラエンジニア

受注が確定したら本格的にプログラムの設計やシステムの設計を行います。


データベースにアクセスして必要なデータを取得するプログラムや画面の呼び出しを担う部分のプログラム、そしてデータを表示するための画面の設計などです。


SEが行うことが多いですが、プログラマーが行うこともあります。SEが担当する場合はプログラミングの知識や経験がないとなかなか難しいです。通常は、プログラマーとしてプログラミングの経験を何年か積んだのちにSEとなり、プログラム設計を行うことが多いです。


開発が進んでいくと当初に決めた仕様が後から変更ということもよくあります。なかなか難しいのですが、変更になるべく柔軟に対応できるような設計ができることが望まれます。プログラマーの時にオブジェクト指向的な設計などを学んでおくと、変更に強く保守性に優れた設計が考えられるようになってきます。


また、最終的に完成したアプリケーションが動作するサーバーの設計も行います。インフラエンジニアが中心となってサーバーの設計を行います。特に多くのアクセスがあって負荷がかかることが予想される場合には、複数台のサーバーを用意したりするなどします。


それほど複雑なものではなく、アクセスも多くないような場合にはSEが単独でサーバーの設計をすることもあります。ここまでを見ていただいてわかるように、SEはシステム設計という開発工程の上流を担うことが多く、システム全体を見渡せるような幅広い知識が必要となります。



4.プログラミング、デザイン


担当:プログラマー、デザイナー

システムやプログラムの設計ができあがると、実際に開発のフェーズに入ります。プログラマーはJavaやPHPなどのプログラミング言語を使って、プログラムを書いていきます。


データベースからデータをとってくるプログラムや、それを加工して画面に表示するプログラムを書きます。最近はWEBアプリケーションの脆弱性をついた攻撃なども多くあるため、プログラマーはセキュリティを意識したプログラムを書く必要があります


別のページでも紹介しますが、データベースの内容を書き換えたり抜き出してしまうような攻撃(SQLインジェクション)やサイトを横断して悪意のあるプログラムを実行させるような攻撃(クロスサイトスクリプティング)などに対応できるようにします。


プログラマーは画面表示の部分も対応します。レイアウトやデザインといった部分はWEBデザイナーが担当することが多いですが、それ以外のコンテンツ表示部分はプログラムを組み込んで構築していきます。


画面部分はHTMLやCSS、JavaScriptを使うため、これらの知識も精通している必要があります。


また、WEBデザイナーは画面仕様に従ってHTMLとCSSを使ってレイアウトを組み、サイトの全体的な色遣いやデザインを決めます。このときにIllustratorやPhotoshopなどの画像編集ソフトなどを使って、サイトイメージに合うようなロゴを作成したり、写真編集を行うなどします。




5.環境構築


担当:SE、インフラエンジニア

WEBアプリケーションの開発に取り掛かると、実際にそのアプリを動作させるサーバー環境(コンピューターやネットワーク)の構築も行います。


最終的な完成品を動かすための本番サーバーと、進捗状況などを先方に確認してもらったり、社内のメンバーで開発したプログラムを更新するための開発用サーバーの2つを構築することが多いです。


開発用サーバーはアクセス制限をかけて社内と顧客先からしかアクセスすることができないような設定にします。動作確認や進捗確認の意味で使われることが多いため、まずまず快適に動作すれば良いように構築することが多いです。


一方で本番環境の方は多くのアクセスが来たり、高速な処理が求められたりします。ハッキングされることのないようにセキュリティも厳重に施す必要があります。アクセスログの管理やファイアウォールの設定、ログインできるユーザーの設定、改ざん検知の設定などを行ったうえで、顧客の要望を確実に満たし、さらにサーバーダウンせず高速に動作するように構築を行っていきます。




6.進捗確認、打ち合わせ


担当:SE、プログラマー、インフラエンジニア

顧客との進捗確認や打ち合わせは、5の開発段階で定期的に行われます。毎週1回進捗報告を行って、1か月に1回もしくは2週間に1回打ち合わせを行うなど、顧客との連絡・確認はとても重要です。


進捗確認を行うとどうしてもお互いの理解が違っているのがわかったり、これまで思いつかなかった機能が出てきて、仕様変更や追加が起こります。これによって工数が増えてしまったり、納期に遅れが出そうになることもしばしばあります。


当初の契約を守れないととても大変なことになります。納品が遅れるような場合は、仕様変更に伴う作業遅延を理解してもらうなど、顧客とよく話し合う必要があります。仮納品で対応し、正式な納品は後日に行うなどという対応を行うこともありま


このようなことにならないためにも、あらかじめ必要な工数を多めに見積もって、最初から作業期間を長くとることもあります。このようにすれば、多少の遅延が発生してもトラブルなく契約を守ることができます。


いずれにしても、顧客との進捗確認や連絡はこまめにとることがとても大事です。作業が順調に進んでいると顧客も安心しますし、いったん契約が終わっても別案件で発注をいただけたりして信頼してもらうことができます


実際、私の会社で多くの案件を受注できているエンジニアは、1つの案件でしっかりとしたシステムを開発するのはもちろんですが、それにプラスして顧客に対して丁寧な連絡をとり、メールに対する返信も素早く、顧客の信頼を得ています。このようにして、1つのプロジェクトが終わっても、別の案件で相談をいただいたり、違うお客さんを紹介してもらったりというプラスの連鎖が起きています。


また、顧客との打ち合わせだけでなく、担当するエンジニア同士の打ち合わせもあります。進捗や仕様の確認、実装方法の確認などを行います。開発が遅れているようであれば新たに手伝ってもらう人を増やしたりすることもあります。



7.テスト


担当:SE、プログラマー、インフラエンジニア

テストは作成したプログラムが当初の仕様通り動作するかを確認するものです。


プログラムを作成しながら細かくテストを実行していくこともありますし、最後にまとめて実行することもあります。


テストで不具合が見つかった場合はすぐに修正し、エラーが出なくなるまで修正を繰り返します。




8.マニュアル作成


担当:SE、プログラマー、インフラエンジニア

納品に向けての最終段階はマニュアル作成です。アプリケーションの操作マニュアルや、保守・運用マニュアル、インストールマニュアルなどを作成します。


システムによっては、マニュアルだけで100ページ以上になるものもあります。複雑で大きなシステムだと、マニュアルに書く内容は増えます。


通常、日常生活で何か製品を買ったとしてもあまりマニュアルを読むことはないという人もいるかもしれません。また、システム開発に比べて、マニュアルは重要でないようにも思えるかもしれませんね。私も、入社して何年かはマニュアルはあまり大事ではないと思っていました。


しかし、実際、マニュアルは高い確率で読まれます。システムを使ったり、運用を行っていくと、実際に顧客自身の手で操作をすることになるので、インストールマニュアルや操作マニュアル、運用マニュアルなどは確実に読まれると思っておいた方が良いです。


また、システム開発ではプログラムだけでなくマニュアルも手を抜かないのところでも書いていますが、マニュアルから読み始めるようなお客さんもいたりします。


マニュアルはシステム開発の最後に作成することも多いのですが、最後まで気を抜くことなくしっかりと作成する必要があります。




9.納品・公開


担当:SE、インフラエンジニア

すべて完成したら、できあがったプログラムやデータをCDやDVDなどのメディアに焼き、マニュアルを添えて納品します。インターネット上に公開する場合は、本番サーバーにすべてのプログラムとデータを移し、アクセス可能な状態にします。

これでウェブアプリケーションの開発は終了になります。





このエントリーをはてなブックマークに追加


関連記事 

1.WEBエンジニアがよく使うプログラミング言語
2.WEBエンジニアに転職する時の志望動機の例文
3.WEBエンジニアは将来性があると思う理由
4.WEBエンジニアの年収
5.WEBエンジニアの種類


▲ このページの上部へ戻る