変化しやすい二次特性が増加する背景にある、技術と要件の高度化
以前の記事で、要求定義と要件定義の違いについて触れました。一般の常識では、この両者は違いを意識して、区別することが重要だとされていますが、その必要はないという提言も紹介しました。今回は、要求と要件をさらに深く理解する補助線として「一次特性」と「二次特性」について説明します。実は今、後者の二次特性の割合が増えている状況についても、考えてみましょう。
一次特性と二次特性の違い
まず、ソフトウェア開発における一次特性と二次特性とは、以下のような文脈で考えることができます。例えば、「折り紙で鶴を折ること」が要件として定義されている場合、自分や特定のメンバーに「折り紙で鶴を折ることができる」スキルがあれば、その客観的な情報だけで目的を達成可能だと判断することができます。
しかし、チームになると、メンバーの個々の経験やスキルの測定方法、メンバー間の指示やコミュニケーションなど、いろいろな条件によって特性は変化します。また、前提となる要件が絶対に変わらない保証もありません。ビジネスでは、変化しにくい条件を把握しつつ、急な変化にも対応できる柔軟性が求められます。
一次特性:変化しにくく静的な特性
一旦、ソフトウェア開発から離れてより広い範囲の、ビジネス全般における一次特性と二次特性の基本について振り返ってみます。まず、一次特性とは、客観的な情報によって判断できる、変化しにくく静的な特性を指します。
- スコープ:プロジェクトの範囲と成果物を明確に定義することで、プロジェクトを確実に軌道に乗せます。プロジェクト憲章の作成、主要な利害関係者の特定、目標と目的の設定が含まれます。
- 時間: 期限内・予算内でプロジェクトを完了させられるようにスケジュールを設定します。主要なマイルストーンを特定し、進捗を追跡します。
- 品質: 顧客の要件を満たしているか、成果物が基準を満たしているか確認します。品質管理プロセスの確立、品質保証レビューの実施、不具合や問題の追跡などが必要です。
- 予算:財務上の制約や金銭的なリソースを管理し、プロジェクトを予算内で完了させます。予算表の作成や経費の追跡、経費の節減などが含まれます。
二次特性:さまざまな条件によって変化しやすい動的な特性
二次特性とは、意思決定のために経験や検証が必要な、可変的で動的な特性を指します。
- リスクの認識:プロジェクトに影響を及ぼす可能性のある潜在的なリスクと不確実性を特定し、適切に評価することで、潜在的なマイナスの影響を軽減します。リスク評価やモニタリングの実施、 緊急時対応計画の作成などが含まれます。
- 阻害要因の管理:プロジェクト中に発生する予期せぬ課題や混乱に対処し、プロジェクトの勢いを維持します。変更管理計画の策定、明確なコミュニケーションチャンネルの確立、メンバーへの継続的なサポートなどが必要です。
- 柔軟性と適応性:常に進化するテクノロジーやマーケット、顧客ニーズに応えるために、要件や外部要因の変化に柔軟に対応します。イノベーションの文化を創造し、実験と創造性を奨励する環境作りが不可欠です。
- 問題解決能力:発生する問題や障害を冷静に分析し、迅速に解決します。問題解決のフレームワークを構築し、明確な意思決定プロセスを確立し、メンバーに継続的なトレーニングとサポートを提供します。
- コミュニケーション能力とリーダーシップ:メンバーやステークホルダーとスムーズに意思疎通を図り、リーダーシップを発揮します。コミュニケーションプランの作成、役割と責任の明確化、メンバーへの継続的なフィードバックとサポートが必要です。
これら一次特性と二次特性は、相互に排他的なものではなく、実際には重なり合うことが多いことに注意しましょう。また、個人によってもスキルに違いがあり、プロジェクトの過程で変化する可能性もあるため、継続的な評価と調整が必要です。成功するプロジェクトマネージメントでは、両方をバランスよく備えていることが一般的です。
BANIの時代における二次特性とは
先を予測することが非常に難しい現代は、BANI(バニ)と呼称されます。脆弱性がある/不安な/非線形の/理解不能なことを意味する、英単語の頭文字をつなげた言葉です。従来、VUCA (ヴーカ)と表現されていた概念が、より混沌としている現実を象徴しています。このBANIの時代に、企業が効果的にプロジェクトを管理し、成果を達成するには、二次特性に注目するする必要があります。不確実性がより高い二次特性にフォーカスを当てることで、企業はリスクを効果的に管理し、状況の変化に適応して、各ステークホルダーと強固なパートナーシップを築くことができます。
- 変動性:ビジネス環境の急速かつ予測不可能な変化により、ビジネスには適応力と対応力が求められます。戦略やプロセス、リソースを迅速に調整し、不安定な市場環境や新たなテクノロジーに対処します。
- 不確実性:予測が不可能で、未知の要素が存在するため、正確な意思決定は困難です。不確実性を受け入れ、状況の変化に直面しても、柔軟性と俊敏性を発揮できるような戦略を策定する必要があります。
- 複雑性:テクノロジーや要件の複雑化は、プロジェクト、プロセス、関係の管理における課題です。複雑なシステムを理解し、ナビゲートし、多様なテクノロジーを統合し、利害関係者を管理する能力が必要です。
- 曖昧性:情報や状況が明確でなく、複数の解釈がある状況に迫られることもあります。曖昧さを許容し、不完全で矛盾する情報に基づいて、意思決定するスキルを身につけることも不可欠です。
技術と要件の高度化によって「二次特性」の割合が増加
現在では、ビジネスを支えるために使われるクラウドや仮想化などの技術も多様化し、IoTやモバイル・ウェアラブルデバイスなどによってシステムも細分化しています。顧客ニーズやマーケットのトレンド、グローバル化もますます高度になり、不確実性はさらに増加しています。作ってみなければ・やってみなければわからない二次特性の割合は、今後も増加し続けることが予想されます。
従来型のソフトウェア開発では、まず、ITコンサルタントが顧客との打ち合わせとヒアリングを繰り返し、(要求定義と)要件定義を整理します。次にエンジニアが設計し、仕様を固めます。プログラマーを集め、機能やプラットフォームごとに割り当ててようやくプログラミング工程へと移ります。そして、テスターによってテストを繰り返し、仕様変更やバグの発覚のたびにプログラミングもしくは設計レベルに戻りながら、膨大な時間と人件費を掛けてプロジェクトが進みます。
ローコード・ノーコード技術では、プログラマーの作業を自動化することが可能です。ローコードプラットフォームに精通したローコードエンジニアが、設計した結果を自動的にプログラミングし、フィードバックを瞬時に得ます。
さらに進化した、ローコード・ノーコード技術とアジャイル手法を組み合わせる次世代の開発手法では、全ての工程をワンストップで実現することが可能です。ローコードエンジニアが設計とテストを一体化して処理できるだけでなく、その前段階として、業務分析と設計、データ分析に精通したビジネスアーキテクトという存在が鍵となります。これによって、時間とコストを最小限に抑えられるだけでなく、より高いビジネスのゴールを達成できるようになります。このビジョンを持っていれば、要求定義か要件定義かに拘ることに意味がないことがはっきりとわかります。
スタティックな一次特性を把握しつつ、ダイナミックな二次特性に柔軟に対応することで、組織は効果的に状況の変化に適応し、リスクを管理しつつ、ステークホルダーと強固な関係を築くことができます。そのためには、予め変化が必要になることを前提とし、プログラマーの作業を自動化できるノーコード・ローコード技術を活用することが、ビジネス戦略上不可欠だといえます。
理人様 見ず知らずの者に温かいアドバイスをありがとうございます。 生物学の中だけ…
Soさん、ご質問ありがとうございます。 博士課程で必要な生物学の知識は、基本的に…
貴重な情報をありがとうございます。 私は現在データエンジニアをしており、修士課程…
四葉さん、コメントいただきありがとうございます。にんじんです。 僕がこの会社この…
面白い話をありがとうございます。私自身は法学部ですが哲学にも興味があります。 ふ…