WEB系開発者の業務内容を文章化してみた
目的
WEB系企業の開発者です。
採用に携わることになったので、勉強中です。
スキルは高いとはいえないので、参考になるかわかりませんが、WEB系の小さめ企業の業務イメージが少しでも頭に浮かんで、興味をもってくれたらいいなと思い、この記事を書いています。
業務について
今まで働いてきた会社
- 20人 ~ 60人規模の会社
- toC向けサービス
- 技術主導の会社ではない
- エンジニア職が全体の10~30%ぐらいです。
- 半分以上がエンジニアという会社みたいな技術力をもつ会社とは業務内容が違うかもです。
- みんながフロント、サーバ、クラウド全部やる
- アプリは専任のエンジニアがいますが、それ以外は特に業務が分かれていません。
フレームワークとか、業界に差があれど、業務内容については大きく変わらない印象です。
業務内容
- 新サービス開発
- 小さい会社なら企画段階から入れると思いますし、1からサービスを開発できるので楽しいです。
- ただ、案件数は少ないので、もしそれをメインでやりたいのならば、創業から間もない会社か、社内ベンチャーに力を入れている大きめの会社を探した方がいいかもと思います。
- 集客向上施策実装
- toC向けアプリケーションの宿命として、集客が重要となります。
- 新規ユーザー
- 再訪ユーザー
- ユーザーが使いやすいように改修していきます。
- WEBで新規ユーザーを獲得して、UXを改善しやすいネイティブアプリをDLしてもらうという戦略が多いと思います。PWAなどで、今後どうなるかはわかりませんが。
- コンバージョン向上施策実装
- どのWEBサイトでも、ネイティブアプリでも売上に繋がるコンバージョンポイントがあります。
- 広告クリック
- 会員登録
- アプリインストール
- 記事閲覧
- ABテストをしながら改善していくと思います。
- 最近はあまり携わってないので違うかも?
- 要件が比較的シンプルなので、開発者自身が企画を出していきやすい部分だと思います。
- どのWEBサイトでも、ネイティブアプリでも売上に繋がるコンバージョンポイントがあります。
- 社内業務支援ツール開発
- 営業の方や、カスタマーサポートの方の仕事がしやすいように要望をもらったり、ヒアリングしたりして作っていきます。
- 例えば、DBにあるデータを閲覧、検索、登録がしやすいアプリケーションを作り、普段30分かかっていた作業が5分で終わるようにします。
- 普段と違い、顔の見える社内の人から、感謝の言葉を直接頂けるので新鮮です。
- 企業クライアント向けツール開発
- 既存サービスリニューアル
- 既存のアプリケーションの保守が難しくなってきたら発生します。
- 既存の動きをそのまま持っていく必要があるのですが、ドキュメントとか残ってないことがほとんどなので、精神力を必要とします。
- 保守しやすいコード(テストも含めて)を書こうとか、他人が読みやすいコードを書こうという強い意思が獲得できるので、一度は経験してみてほしいです。
- 技術基盤開発
- ElasticSearchを使った検索サーバ構築だったり、個人情報を保存する暗号化DB構築だったり、社内の様々なアプリケーションから共通で呼び出される部分を切り出して開発していきます。
- やりたいことごとに適したデータストアや、Saasを組み合わせて使っていくので、知識が広がります。
- 障害対応
- エラーを監視して、発生したら問題解決に動きます。
- 新規で開発したら開発した分だけ、自分の保守担当のサービスが増えていきがちなので、通知をしっかり作ったり、クラウドに任せられるところは任せていくことが自分を守ります。
メリット
デメリット
- 専門性がつきにくい。
- 大企業のサービスと比べてトラフィックが少ないので、その辺りの経験が積めない。
- あまりルールが定まってない。
利用技術やサービス
フロントエンド関連
Reactや、RailsやPHPのテンプレートを直接使うところも多いと思います。 現在使ってるものを書いています。
Vue & Nuxt
- Vue.js
- Nuxt.js - ユニバーサル Vue.js アプリケーション
- SPAも作れるし、SSRも作れるし、静的サイトも作れるし、ルールも定まっていて、あまり考えることがなくて楽。
- 日本語のドキュメントも充実していますし。
- 逆にNuxtに全部お任せしているので、Webpackなど周辺ツールについて知識がつきにくいです。
- lint系はESlintとPrettier [開発ツール - NuxtJS]
- e2eテストだけ行っていて、先輩が導入したPuppeteerを使っています。
- (一方、個人ではReactを使うようにしています)
サーバサイド関連
PythonやGoを使う会社も多いと思います。
Rails(Ruby)
Express(Node.js)
CodeIgniter(PHP)
- 古いアプリケーションはCodeIgniterで動いているので、たまに修正します。
- 基本はリニューアル時や仕様確認時にコードを読んでいます
クラウド関連
家ではFirebaseを使ってますが、業務はAWSを主に使ってます。 他にもSQSとかDymanoDBとか使いますが、自分がよく触るものだけ列挙。
ECS
- DockerをAWSで簡単に実行できます。
- 現状ほとんどのサイトをECSで動かしています。
CodePipline、CodeBuild、ECR
- デプロイ時に使っています。
ALB、Route53、CloudFront
- Route53 => CloudFront => ALB => ECS という流れでリクエストを受けています
Lambda
- TV放映でECSのスケールが間に合わず長時間落ちてしまったので、ECSから少しづつ移行すべきものを移行中です
- TV番組「今夜くらべてみました」でRoomClipを紹介されて得られたたくさんのこと
Macアプリケーション
Visual Studio Code
- 無料で、欲しい機能は軒並みあって満足している
- VSCode内にターミナルを開けるので、そこでDockerとかGitの操作をしている。
- 以前はiTermを使っていたが、全く開かなくなった
- デフォルトのGit機能やGitlensが便利で、普段あまり使わないgit操作はそっちからやってる。
Google Chrome
Slack
- 通常使いの他に忘れっぽいのでリマインドをよく使う
Sequel Pro
Cliper
Docker
- 最近は、ECSとかCodeBuildのdebugや、PJを最初に作る時に頒布用のDockerFileを作成する時ぐらいしか使わない。
- 新しいアプリケーションはLambdaが多いので。
- 普段の開発はRailsとNuxtがほとんどだが、それはLocalに直接立ち上げることが多い。
WEBブラウザサービス
自社サービス
- debug時に使うことも含めると、一番開いているサービスかもしれない
Github
- Pull Requestとかはここから作ってる
- Github のマージをhookにデプロイが行われるので必須
Youtube Music
- 過去のコードを読み解く時も楽しく仕事ができる
開発関連ツール
終わり
どなたかの参考になれば!