開発者
月8日, 2020
アプリ開発マネージャー Darroll Walshは、開発者のためのCMMI開発の紹介を共有しています。
Capability Maturity Model Integrated(CMMI)は、Project Management Body of Knowledge(PMBOK)やAgileなどの他のプロセス改善プログラムと統合されたプロセス改善および評価プログラムです。 これは、すべてのプロセスを合理化し、標準化し、開発、サービス、サプライヤー管理、サイバー成熟度、およびその他のための監督と実用的な指標を持つ手段を提私がしたいのは、開発者の視点からCMMI開発者の概要を提供することです。 CMMIが開発チームに与える影響に焦点を当てるために、CMMI DEVのプロジェクト管理、ビジネスアナリスト、構成管理、およびテストの部分をスキップします。 他の役割や機能に興味がある場合は、後のブログエントリに適したトピックになる可能性があります。 アジャイル開発であっても、開発者が始める前に多くの作業が行われることに注意してください。
私たちは始めましょう:
BRS、またはビジネス要件の仕様は、それがすべて始まる場所であり、これは真実の単一のソースです。 ここでは、製品所有者がサインオフするビジネス要件が表示されます。 開発者はBRSの作成について相談することができますが、これは主にBAの責任です。しかし、これは開発者が実際に開発しているアプリケーションを知ることができる場所であり、全体像を把握するための場所です。
High-level and low-level designsは、アプリケーションのコンポーネントがどのように接続されているかを示すアーキテクチャドキュメントです。 高レベルの設計では、外部の依存関係と、ユーザーおよび/またはシステムがシステムとどのように対話するかをレイアウトします。 低レベルの設計では、内部コンポーネントがどのように相互作用するかをレイアウトします。 これらを確認すると、別の開発者はアプリケーションの動作を非常に迅速に理解することができます。
SRS、またはソフトウェア要件仕様は、開発者がアプリケーションをどのように構築するかを文書化する場所です。 これは、作成されたBRSに基づいて、サービスが文書化され、依存関係がレイアウトされ、一般的にコードがどのように動作するかを示す場所です。 これは通常、コードが記述される前に行われ、標準的なタスクです。 私は、なぜこれを行う必要があるのかを尋ねている人もいることを知っています。 私のコードは自己文書化されています。 そして、私はそれがあると確信していますが、コードは何百ものファイルと何千ものコード行に広がっています。 そして、時には意図が私たちが望むほど明確ではありません。 SRSは、私たちが期待できるものの明確な概要で見るために私たちに一つの文書を提供します。 一貫性のあるマナーでのユースケースと期待される動作の概要を説明します。
何をしようとしているのかを定義し、コードを書いた後、誰かに私たちがやったことをレビューさせる時間です。 コードレビューを入力します。 これは、すべてのミスをキャッチし、我々はベストプラクティスとガイドラインに従っていることを確認するための唯一の良い習慣ではありません、 目の第二のセットによってコードを見直すだけの行為は、私たちにコードがどのように動作するかに精通している第二の人を与えます。 これはほとんどの開発チームで標準的な慣行になっているので、私はこれをbelaborしません。
単体テストは、ほとんどの開発プログラムのもう一つの主な滞在です。 単体テストは、テスト駆動開発の一部として行われるか、コードが書かれた後に行われるかにかかわらず、将来の変更がコードにエラーを導入しないように CI/CDパイプラインでは、コードのチェックインを許可する前に、すべてのテストが合格することを確認できます。 これは、コードを正常に動作させるのに役立ちます。
上記の各ドキュメントには個別に価値がありますが、このすべての情報を結びつけることができれば、実際の利益が始まります。 要件収集プロセスの最初に、要件トレーサビリティマトリクスを開始し、ビジネス要件、ソフトウェア要件、コード、単体テスト、テスト計画とケース、ユーザーの受入れを一緒にリンクすることができます。 大規模なプロジェクトに半年を費やし、変更がテストケースを失敗させると想像してみてください。 要件に戻り、そのコードの目的を見つけ、そのロジックのコードがどこにあるのかを正確に知り、新しいケースをキャッチするために単体テストを変更し、数日ではなく数時間以内に修正を実装することができます。
短期的には、CMMIはやり過ぎのように見えるかもしれませんが、小さなプロジェクトでも、プロセスに従うことによって得られる知識は、プロジェクトから離れている時間が長くなるほどサイクルを短縮します。 あなたが前にプロジェクトに取り組んだことがない場合は言うまでもありません。
開発者サポート
App Dev Customer Success Account Manager,Microsoft Developer Support
Follow