はじめに
今回は、開発体制についてアウトプットしていこうと思います!
開発手法
アジャイル型開発
アジャイル型開発は、一度にまとめてでは無く、少しずつ確認をはさみながら開発を進めていくことが特徴です。利用者の反応や、関係者からの継続的なレビューを得ながら、計画を調整しつつ進めて行きます!
ウォーターフォール開発
初めに決めた要件を、ある期限までに完了するという手法です!
契約→開発→納品というフローに則ったシンプルなものです。厳密な要件定義と納期に合わせた進捗管理を行うことができれば、大きな問題は発生しません!
ただし、はじめの要件定義が上手く行われていなかった場合や、作りたいものが途中で変わってしまった場合に対応することが難しくなります!
スクラム
アジャイル開発については、進捗が把握しづらいので、このスクラムというものを導入することがあります!
スクラムとは、開発を進めるチームの単位です!
リーダー・マネージャー主体ではなく、チームメンバー全員が主体性をもって、プロダクト完成に向けた責任を持つことが特徴です!
これれの役割分担は以下のようなものがあります!
- リリースするプロダクトの責任を負うプロダクトオーナー
- スクラムがうまくいくようにサポートするスクラムマスター
- 計画に沿って、開発を進めていく開発チームメンバー
プログラムの管理
サービスの開発を進める場合、様々な管理が必要です!
少人数の開発であれば、これらを人が手動で管理をすることは容易です。しかしながら、開発に関わる人数が増えるとそれらの管理を綿密に行うことは難しくなってしまいます。管理をするための労力がかかり、見落としや作業忘れなども発生するからです!
それらを避けるためには、なるべく人が介在する余地を減らし、自動化する必要があります!
管理の自動化
Sider
コードレビューを自動で行ってくれるツールです!
特に、インデントなどのコードの体裁や、開発者のルールに違反していないかを自動で判断してくれます!
CricleCI
CircleCIとは、追加、変更されたアプリケーションのテスト、テストが完了して問題がなかったコードのデプロイを自動で実行するクラウドサービスです!
CI /CD
CIは日本語で、継続的インテグレーションという意味です!
具体的には、開発したコードのテストを定期的に自動で実行することです!
CDは日本語で、継続的デリバリーですという意味です!
具体的には、書いたコードを自動で本番環境にデプロイできる状態に整えることです!
これを導入することで、変更したコードは自動でチェック、問題がなければ自動でデプロイが実現し、人的負担を少なくすることができます!
特に、リリース頻度の高いアジャイル型では有効な手段だと考えられています!
コメント