スクラムの解説(基本情報技術者シラバス用語)
スクラムとは スクラムとは、アジャイル開発における代表的なフレームワーク(枠組み・進め方)の一つです。ラグビーの「スクラム」のように、開発チーム全員が密に連携し、一丸となってプロジェクトを進めることからこの名前がつきました。 スクラムでは、一般的に1週間から4週間程度の「スプリント」と呼ばれる短い期間を一つの単位として開発を繰り返します。チームメンバーには役割があり、製品の責任者である「プロダクト...
Django、Python、AWS、Linux、セキュリティ、CVE、基本情報技術者、応用情報技術者、ITパスポートの用語を、図解と実務手順で解説します。個人開発kurutann.comの検証記録や障害対応事例も公開しています。
スクラムとは スクラムとは、アジャイル開発における代表的なフレームワーク(枠組み・進め方)の一つです。ラグビーの「スクラム」のように、開発チーム全員が密に連携し、一丸となってプロジェクトを進めることからこの名前がつきました。 スクラムでは、一般的に1週間から4週間程度の「スプリント」と呼ばれる短い期間を一つの単位として開発を繰り返します。チームメンバーには役割があり、製品の責任者である「プロダクト...
XPとは XP(エクストリーム・プログラミング:Extreme Programming)とは、アジャイル開発における手法の一つで、技術的な実践(プラクティス)に重点を置いた開発手法です。「極限(Extreme)プログラミング」という意味があり、ソフトウェア開発における良い習慣を極限まで高めて実践しようという思想から生まれました。 XPには、開発を成功させるための重要な価値観(コミュニケーション、シ...
テスト駆動開発とは テスト駆動開発(TDD:Test-Driven Development)とは、プログラムの実装コードを書く前に、まずそのプログラムが満たすべき動作を確認するための「テストコード」を先に作成し、そのテストに合格するように実装を進めていく開発手法です。 一般的な開発では、コードを書き終えた後にテストを行いますが、TDDでは手順が逆になります。まず、わざと失敗するテストを書き(Red...
DevOpsとは DevOps(デブオプス)とは、システムの「開発(Development)」を担うチームと「運用(Operations)」を担うチームが密接に連携し、より迅速かつ安定して価値あるソフトウェアをユーザーに提供し続けるための開発手法や文化のことです。 従来は、新しい機能をどんどん作りたい「開発側」と、システムを安定して動かし続けたい「運用側」で対立が生じがちでした。DevOpsでは、...
CI/CDとは CI/CDとは、ソフトウェア開発における「継続的インテグレーション(Continuous Integration)」と「継続的デリバリー(Continuous Delivery)」、または「継続的デプロイメント(Continuous Deployment)」を組み合わせた言葉です。開発プロセスを自動化し、素早く安全に本番環境へ届ける仕組みを指します。 CI(継続的インテグレーション...
バージョン管理とは バージョン管理とは、作成したプログラムやファイルの変更履歴を記録・管理し、過去の状態にいつでも戻せるようにする仕組みのことです。また、複数の開発者が同時に同じファイルを編集した際に、お換いの変更が上書きされて消えてしまわないように調整する役割も持っています。 現在、最も広く使われているバージョン管理ツールとして「Git(ギット)」があります。バージョン管理を導入することで、「い...
プロトタイピングとは プロトタイピングとは、システムやソフトウェアの開発において、早い段階で「試作品(プロトタイプ)」を作成し、ユーザーや開発チーム内で実際に触って確認しながら開発を進める手法です。 仕様書などの文章や図面だけで画面の操作感やシステム全体のイメージを正確に共有することは難しく、完成間近になってから「思っていたものと違う」といった問題が発生することがあります。そこで、まずは見た目や主...
リバースエンジニアリングとは リバースエンジニアリングとは、完成した製品やソフトウェアを分解・解析し、その仕組みや構造、設計データ、ソースコードなどを明らかにする技術や手法のことです。「リバース(逆)」という言葉通り、通常の「設計図から製品を作る」という流れを逆行させて「製品から設計図を導き出す」アプローチです。 この技術は、古いシステムで設計図(ドキュメント)が紛失してしまっている場合の解析や、...
UMLとは UML(Unified Modeling Language:統一モデリング言語)とは、ソフトウェアの設計やシステムの構造、動作の流れを視覚的に表現するための、世界的に統一された「図の書き方のルール(表記法)」です。 システム開発に関わる人々(開発者、顧客、マネージャーなど)が言葉だけで設計を議論すると誤解が生じやすいため、共通の「図」を使って意思疎通を図ります。UMLには様々な種類の図...
PMBOKとは PMBOK(ピンボック:Project Management Body of Knowledge)とは、プロジェクトマネジメント(プロジェクトを計画通りに成功へ導くための管理手法)の知識や手法を体系的にまとめた世界的な標準ガイドです。米国のプロジェクトマネジメント協会(PMI)によって策定されています。 プロジェクトを成功させるために必要な管理項目を、「スコープ(範囲)」「スケジュ...
WBSとは WBS(Work Breakdown Structure:作業分解構成図)とは、プロジェクト管理において、プロジェクト全体で必要なすべての作業(タスク)を細かく分解し、階層構造で整理した図や表のことです。 プロジェクトという大きな目標のままでは、具体的に何から始めればよいか、どれくらいの時間や費用がかかるのかを正確に見積もることが困難です。そこでWBSを使い、プロジェクトの成果物を起点...
ガントチャートとは ガントチャートとは、プロジェクトのスケジュール管理や各作業の進捗状況を視覚的に分かりやすく表現するために広く用いられる棒グラフ状の予定表のことです。縦軸に「作業(タスク)名」や「担当者」を並べ、横軸に「時間(日付や週、月)」を取って、各タスクの開始予定日から終了予定日までの期間を横棒(バー)で表現します。 ガントチャートを見ることで、どのタスクがいつ始まっていつ終わるのか、どの...
アローダイアグラムとは アローダイアグラム(別名:PERT図)とは、プロジェクトにおける各作業(タスク)の前後関係や実行順序、それぞれの作業に必要な日数を「矢印(アロー)」と「丸印の結合点(ノード)」を結んでネットワーク状に表現した図のことです。 複数の作業が並行して進む複雑なプロジェクトにおいて、どの作業が終わらないと次の作業に進めないのかという関係性を視覚的に整理するために使用されます。この図...
クリティカルパスとは クリティカルパスとは、プロジェクト管理において、全体の作業工程の中で「最も時間がかかる、かつ遅れることができない一連の作業経路」のことです。プロジェクトの開始から終了までの依存関係をたどった中で、最長の所要時間を持つ経路を指します。 この経路上の作業が1日でも遅れると、プロジェクト全体の完了日も連動して1日遅れてしまいます。そのため、プロジェクトマネージャーはクリティカルパス...
EVMとは EVM(Earned Value Management:アーンドバリューマネジメント)とは、プロジェクトの進捗状況を「出来高(価値)」という金額の単位に換算して評価するプロジェクト管理手法です。 従来の管理方法では、「全体の50%の時間が経過したから半分進んでいるはず」といった曖昧な判断になりがちでした。EVMでは、計画された予算(PV)、実際に完了した作業の予算上の価値(EV:アーン...
ファンクションポイント法とは ファンクションポイント法(FP法:Function Point)とは、ソフトウェアの開発規模や必要な工数(作業量)を見積もるための手法の一つです。プログラムの行数ではなく、システムが提供する「機能(ファンクション)」の数や複雑さに基づいて規模を計算します。 開発するシステムが外部とやり取りする入力画面の数、出力する帳票やレポートの数、内部で保持するデータのテーブル数な...
工数見積りとは 工数見積りとは、システム開発などのプロジェクトにおいて、すべての作業を完了させるためにどれだけの「労働量(作業時間や必要な人数)」が必要であるかを事前に予測して計算する作業のことです。この見積もりは、プロジェクト全体のスケジュール策定や予算(費用)の計算、必要なスタッフの人員配置などを決定するための重要な判断基準になります。 工数を表す単位としては、1人のメンバーが1ヶ月間働いた時...
ステークホルダーとは ステークホルダーとは、プロジェクトや企業の活動において、直接的または間接的に影響を受けたり影響を与えたりするすべての「利害関係者」のことです。 システム開発プロジェクトにおけるステークホルダーには、お金を出す「顧客(スポンサー)」や「経営層」、システムを実際に操作する「エンドユーザー(利用者)」、開発を担当する「エンジニア」や「プロジェクトマネージャー」、さらには「外部の協力...
スコープとは スコープとは、プロジェクトマネジメントにおいて、プロジェクトの「実施範囲」や「作成する成果物の明確な定義」のことです。何をプロジェクトの作業対象とし、逆に何を対象外(スコープ外)とするかを明確に切り分ける非常に重要なプロセスを指します。 開発プロジェクトの途中で「あれも追加してほしい」「これもついでにやってほしい」と要望が際限なく膨らみ続けると、予算やスケジュールのオーバー(プロジェ...
ITILとは ITIL(アイティル:Information Technology Infrastructure Library)とは、ITサービスを効果的かつ安定して管理・提供するためのベストプラクティス(成功事例や標準的な業務プロセス)を体系的にまとめた書籍群、およびフレームワークです。 システムは作って終わりではなく、日々の運用や利用者のサポート(ITサービスマネジメント)が重要です。ITIL...
SLAとは SLA(Service Level Agreement:サービスレベル合意書)とは、ITサービスの提供者(クラウド事業者やシステム運用会社など)と、そのサービス利用者の間で、提供されるサービスの「品質水準(サービスレベル)」について事前に合意を取り交わした文書や契約のことです。 SLAには、サービスの品質を測る具体的な数値目標(指標)と、それを下回った場合のペナルティ(返金など)が明記...
インシデント管理とは インシデント管理とは、ITサービスにおいて、システムの停止や動作の不具合、使い方がわからないといった、サービスが正常に利用できない状態(インシデント)が発生した際に、できるだけ早く「通常のサービス状態」へ復旧させるための管理プロセスです。 ここでの最大の目標は「根本的な原因を解明すること」ではなく、まずは「ユーザーが仕事を再開できるようにすること(暫定対応や回避策の実施)」で...
問題管理とは 問題管理とは、ITサービスにおいて、発生した不具合(インシデント)の「根本的な原因」を突き止め、同じトラブルが再発しないように恒久的な対策を講じる管理プロセスのことです。 トラブルを一時的に解決する「インシデント管理」に対し、「問題管理」は問題の根っこにある真の原因を追求することを重視します。これにより、同じ原因で何度もトラブルが発生し、業務がストップしてしまうのを防ぐことができます...
変更管理とは 変更管理とは、ITサービスを構成するシステムやサーバーの設定、ソースコードなどを変更する際に、その変更作業によって発生するリスク(新たなシステム障害やユーザー業務への影響)を最小限に抑え、安全かつ確実に移行を進めるための承認・管理プロセスです。 システムに新しい機能を追加したりバグを修正したりすることは必要不可欠ですが、十分なテストや計画なしに本番環境へ変更を加えると、予期せぬ大きな...