1. ちょっとした歴史
90年代のインターネット革命が始まった頃、誰もインターネットサービスの正しい開発方法を知らなかったんだ。すべての機能がすぐにユーザーに公開されてしまう方式で、これが従来のソフトウェア開発と大きく違ったポイントだった。
当時最大の検索エンジンだったYahooは、新しいやり方を試そうと、ハリウッドのやり方を取り入れたんだ。彼らのマネージャーもプロデューサーと呼ばれてたしね :) でも、結局うまくいかなかった🤷♂️
インターネット革命以降、さまざまなソフトウェア開発の方法が試されてきて、今では安定した状況になっている。標準的な役割や責任、プロセス、ソフトウェアも標準化されている。
これから学ぶことは、現代のIT企業で働くために必要な知識すべてだ。最新の開発ツールも含めてね。🎓
2. プロダクトチーム
典型的な開発チームは次のような構成になっている:
- プロダクトの機能や特徴を決める人たち
- Product Owner
- Business Analyst
- プロダクトの見た目を決める人たち
- UI Designer
- UX Designer
- これらを実現する開発者たち
- Software Architect
- Backend Developer
- Frontend Developer
- Mobile Developer
- 品質管理や運用を担当する人たち
- QA Automation
- DevOps
Product Ownerはソフトウェア開発において重要な役割を果たし、プロダクトを管理し、開発チームが最も重要なタスクに集中できるようにする。彼はプロダクトのビジョンを決め、タスクリスト(backlog)を作成・優先順位付けして、開発の各段階がビジネス目標やユーザーニーズに最大限合致するようにする。
UX Designerは、使いやすく効果的なインターフェースを作る仕事をしている。ユーザーニーズの調査、プロトタイプ作成、インターフェースのテストなどを行い、ユーザーとプロダクトのやりとりをより良くすることを目指している。
DevOpsの専門家は、ソフトウェア開発と運用のプロセスを最適化し、リリースを早く簡単にする仕事をしている。自動テストやデプロイ、システムの監視、インフラの設定、継続的インテグレーション(CI/CD)の確立などを行う。
3. 開発チーム
実際の開発はプログラマーたちが行う。彼らは大きく次の5つのカテゴリに分けられる:
- Software Architect
- Backend Developer
- Frontend Developer
- Mobile Developer
- Database Administrator
役割や内容はチームの規模やプロダクトの種類によって変わるけど、だいたいこんな感じ:
- 🏗️ Software Architect: 複雑なソフトウェアアーキテクチャの設計を担当。技術インフラを構築し、システムの構造やコンポーネント間の連携方法を決めて、スケーラビリティやパフォーマンス、安全性を確保する。
- ⚙️ Backend Developer: サーバー側の開発を担当。ロジックの実装やデータベース・データ管理システムとの連携、ユーザークエリの処理、フロントエンドとの連携を行う。
- 🖥️ Frontend Developer: ウェブアプリのユーザーインターフェースを作る。HTML、CSS、JavaScriptの知識が必要で、インタラクティブでレスポンシブなUIを作り、ユーザーの操作性を高める。
- 📱 Mobile Developer: モバイルアプリの開発を担当。iOSやAndroid向けにアプリを作り、プラットフォームの特性やデバイスの性能、ユーザビリティを考慮する。
- 🗄️ DBA (Database Administrator): データベースの管理を担当。アクセス性やセキュリティ、最適化を行い、バックアップやリストアの戦略も立てる。
GO TO FULL VERSION