5.1 少しの歴史
90年代にインターネット革命が始まった頃、誰もがインターネットサービスをどう正しく開発するか知りませんでした。すべての機能がユーザーにすぐに提供され、それは従来のソフトウェア開発とは大きく異なるアプローチだったのです。
当時最大の検索エンジンであったYahooは、ハリウッドからアプローチを取り入れることに決め、マネージャーをプロデューサーと呼ぶことにしました :) 当然のことながら、彼らは失敗しましたよ。
これは面白い。Yahooは他の会社を買収する点で大失敗しました。一時期、GoogleやFacebookを買収するチャンスが何度もありましたが、最終的にはキャリアの終わりにMicrosoftが400億ドルで買収を試みましたが、再び拒否しました。数年後、彼らは30億ドルで買収されました。90年代のピーク時にはYahooの評価額は2000億ドルとされており、Googleを買収していたら、その価値はいくつかの兆ドルに達していたかもしれません。Yahooのようにはなるな。
インターネット革命以降、数十もの異なるソフトウェア開発手法がテストされ、現在の状況は安定しています。標準的な役割、義務、プロセス、ソフトウェアがあります。
学ぶ過程で 現代のIT企業で働くために必要なすべてを知ることができ、現代の開発ツールを使いこなせるようになります。
5.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)を含む業務を行います。
5.3 開発チーム
プログラマーによって直接開発が行われます。彼らは大まかに5つのカテゴリーに分けられます:
- Software Architect
- Backend Developer
- Frontend Developer
- Mobile Developer
- DBA
チームのサイズやプロダクトの特性に応じて役割や内容は変わることがありますが、状況はおおよそこんな感じです:
Software Architect: 複雑なソフトウェアシステムのアーキテクチャ設計を担当します。Architectは技術インフラストラクチャを開発し、さまざまなソフトウェアコンポーネントの構造と相互作用の方法を定義し、それらのスケーラビリティ、パフォーマンス、安全性を保証します。
Backend Developer: アプリケーションのサーバーサイド部分の開発に特化しています。Backend Developerのタスクにはロジックの実装、データベースおよびデータ管理システムの統合、ユーザーリクエストの処理、フロントエンドとの連携の維持が含まれます。
Frontend Developer: ウェブアプリケーションのユーザーインターフェースを開発します。この役割はHTML、CSS、JavaScriptの知識、並びにインタラクティブで応答性の高いインターフェースを作成するためのフレームワークやライブラリの知識を必要とし、ユーザーの製品との良好な相互作用を保証します。
Mobile Developer: モバイルデバイス向けアプリケーションを開発します。Mobile Developerはさまざまなオペレーティングシステム(例:iOSやAndroid)に合わせたアプリケーションを作成し、プラットフォームの特徴やデバイスのパフォーマンス、ユーザー体験を考慮します。
DBA (Database Administrator): データベースの管理を担当し、その可用性、安全性、最適化を確保します。DBAはデータベースの設定、監視、メンテナンス、データのバックアップや復旧戦略の開発を担当します。
GO TO FULL VERSION