要件定義のアプローチ

要件定義の基本

すべてをシステムで解決してしまおうとする要件定義には注意が必要である。システムの成功の可否は要件定義にかかっていると言っても過言ではない。しかし、十分に要件定義の時間を使ったにも関わらず、ITプロジェクトが失敗することがある。

規模別の要件定義

システム構築の規模によって、要件定義の粒度が変わる。小さなITプロジェクトの場合は要件定義をせずにプロトタイプを作りながらシステム構築を進めるといった方法がある。これをアジャイル開発、プロトタイプ開発と呼ぶ。

要件定義の本質

要件定義の粒度は時間を掛ければ細かくなるわけではない。ユーザー側でも要件定義を進めるにつれて、想定している機能の矛盾点が出てくることがある。この矛盾点を解消していくこと自体を要件定義としてはならない。要件定義はあくまで本質的なコアとなる部分から膨らませることが重要である。

対話型要件定義

要件定義フェーズで失敗するパターンは、ユーザー側との対話ではなく、システム会社側がヒアリングに徹する場合である。ユーザー側はITを利用してどのようなことができるかを知らない可能性が高いため、システム専門家がそれを鵜呑みにした仕様で要件を固めてしまうと、製造工程で無駄な工数が発生し予算をオーバーしてしまうことがある。

まとめ

本質的な要件をコミュニケーションによって、はっきりさせていく作業こそが要件定義と言えるのである。さまざまな視点から何度も繰り返し要件をなぞることで粒度が落ちていき、適切な要件定義書となる。何でもかんでもシステム化せず、オペレーションとの関係性を見合わせながら進めることが望ましい。

関連記事

技術的負債の返済方法

負債の本質

技術的負債には、設計負債やコード負債がある。金銭的な負債であれば借入金やマイナスの表記で数字化できるのだが、技術的負債においては数字化できないことがとても難しい点である。経営に関するほとんどのことは定量化や定性化が可能だが、たとえば企業創業者の発想する「野生の勘」を直接的に数字化できないように技術的負債も一筋縄では見える化しない。

設計時の対策

技術的負債の中でもコード負債については、システム開発の現場からよく発想されるリファクタリングや再構築などを行うことで比較的わかりやすい返済方法となる。知らない人が作ったプログラムや古くなったプログラムのバージョンなど、リスクを表現し対応することができる。何よりも最初の企画設計段階で負債が積みあがりにくい仕組みを考えることが大切である。

高負担な設計

技術的負債の中でも利息の高い負債が設計負債である。単体機能における設計であれば、モジュールごとの再設計によって返済が可能である。しかし、プログラムは複数のモジュールが絡まり合っていることがほとんどなので、複雑なオペになってしまう。また、稼働中のシステムにわざわざ再設計したプログラムを導入するリスクに対して、得れるメリットも少ないので見過ごされがちである。設計能力は例えば、紙というオブジェクトのメソッド(振る舞い)とプロパティ(保持する情報)を聞いて正しい答えが帰ってくれば多少安心であろう。紙の振る舞いは燃えるであり保持する情報は面積などがある。

根本的解決

しかし、技術的負債はこのように目に見えやすい設計負債やコード負債が致命的になることは少なく、やはりその上層でどのような指針に基づいてシステム運用がなされてきたか、また長期視点で一貫したメンテナンスを行うことが必要である。システムの維持には保守費用や運用費用を払っていることが多いと思うが、これだけでは将来の負債を減らしていくことはできない。やはり、鳥の目を持つITコンサルタントやITアナリストなどの役割を持つメンバーが必要である。

まとめ

ITコンサルタントやアナリストは、すぐに利益も生まない、経費を削減するわけでもないといったコストセンターとしてのポジションなので、あまり起用していない中小企業も多いようである。投資に対する効果が見えにくいのは、料理でいう香辛料と同じなのかもしれない。その少しの投資が未来を大きく変えることになる。IT技術は日進月歩で発展するからである。

続きを見る >

SEのいうバッファとは

バッファの真意

見積りや作業スケジュールに際して、エンジニアやシステム会社から「バッファである」という回答を受けたことはないか。システム会社が言うバッファとは保険を意味していることがほとんどである。

不確実なバッファ

非エンジニアは見積りのバッファを聞いたときに、無駄なのではないかと感じる。「念のため」に必要なバッファは、裏を返すと知識がないから調べないと分からないので不安であるという意味である。知識があり、「念のため」が必要なければバッファはないと考えられる。

知識の不足

ほとんどのシステム構築プロジェクトは、バッファが多いほうが知識がないのに見積りが高くなるという矛盾が発生することになる。そう考えると「バッファ」とは「無駄」に聞こえるかもしれない。

本質のバッファ

さて、このバッファについて本来あるべき姿を説明する。本当にやってみなければ分からないといった高度な技術を使うときに、未知の領域に関するスケジュールの影響を勘案し、計画された期間のことをバッファと見るべきである。

まとめ

単なるシステム構築プロジェクトにおいて「無駄を削ればよい」というのは非エンジニアから見ると合理的でコストの軽減にもなる。しかし、研究開発分野において無駄を削ることは必ずしも合理的ではない。発想が乏しくなるからである。

続きを見る >

ローコード導入判断基準

ローコード導入の必要性

近年、企業のデジタル変革(DX)において、ローコードプラットフォームの活用が急速に広がっている。従来の開発手法では時間とコストがかかりすぎ、変化の激しいビジネス環境に対応できないという課題が深刻化しているためである。特に日本企業では、IT人材不足が深刻な問題となっており、限られたリソースで最大の成果を上げる必要がある。このような背景から、ローコード開発は単なる開発手法の一つではなく、企業存続のための戦略的選択肢として注目されているのである。

導入メリット

ローコード導入により得られる最大のメリットは、開発期間の大幅な短縮である。従来のプログラミングで数ヶ月かかっていたアプリケーション開発が、数週間で完了できる事例が数多く報告されている。また、専門的なプログラミング知識を持たない業務部門の担当者でも、簡単なアプリケーションを自ら構築できるため、IT部門の負担軽減にもつながる。さらに、クラウドベースのプラットフォームが多いため、インフラ構築コストも削減でき、総所有コスト(TCO)の観点からも非常に魅力的な選択肢となっている。これらの要素が組み合わさることで、企業の競争力強化に直結する効果が期待できる。

導入判断の観点

一方で、すべてのプロジェクトにローコードが適しているわけではない。導入判断には慎重な検討が必要である。まず、プロジェクトの複雑性を評価する必要がある。単純な業務アプリケーションや社内ツールには適しているが、高度なセキュリティが求められるシステムや、大量のデータ処理を行うシステムでは従来の開発手法が望ましい場合もある。また、既存システムとの連携要件や、将来的な拡張性も重要な判断要素となる。組織の技術的成熟度や、ガバナンス体制の整備状況も考慮すべきポイントである。これらの観点を総合的に評価することで、適切な導入判断が可能になる。

成功のアプローチ

ローコード導入を成功させるには、段階的なアプローチが重要である。まずは小規模なパイロットプロジェクトから始め、組織の学習とプラットフォームの理解を深めることを推奨する。同時に、適切なガバナンス体制の構築と、セキュリティポリシーの策定も不可欠である。また、従来の開発チームとローコード開発チームの連携体制を整備し、知識の共有と技術的サポートを確保することが成功の鍵となる。さらに、継続的な教育プログラムの実施により、組織全体の技術力向上を図ることで、長期的な成功を実現できる。これらの取り組みにより、DXの目標達成により近づくことができるだろう。

まとめ

DXプロジェクトにおけるローコード導入は、適切な判断基準と実践的なアプローチにより大きな成果をもたらす。開発スピード、コスト効率、技術者不足への対応という観点から、多くの企業にとって有効な選択肢となっている。成功の鍵は段階的導入と適切なガバナンス体制の構築にある。

続きを見る >