運用の昇華

開発現場の想定外

基幹システムの開発現場では、最初に想定した仕様とは異なる業務フローが後から発覚することが多い。

マネジメントの試金石

後から発覚した業務フローは、すでに構築が進んでいるシステムに組み込むことが難しいため、どのように対応するかがプロジェクトマネージャーの腕の見せ所である。

プロジェクトの舵取り

プロジェクトマネージャーとは何かと問われたときに、一言で言い表すならば、不測の事態にどのように対応できるか、ということではないかと考える。プロジェクトが何の問題もなく、完遂できることは少ない。したがって、イレギュラーケースが発生した時にどのような手立てを打てるか、迅速に行動できるかがプロジェクトマネージャーのレベルとなる。

パートナーシップの重要性

プロジェクトマネージャーがシステムの完成しか考えていなければ、途中から発覚した仕様は「運用でカバーせよ」とユーザー側に責任を押し付けてしまうことがある。しかし、より良いシステムを目指す、パートナーとしてであればこの回答は好ましくない。

まとめ

どのような事象がきっかけで、途中で使用漏れが発覚したのか、プロジェクトの進行状況を見ながら、ひも解くことが重要である。運用でカバーというユーザー側だけにだけ負担をさせるのではなく、運用をカバーするようなシステムを構築できるのが理想である。

関連記事

要件定義の問題点

はじめに

会社の雰囲気や要件定義の内容をみれば、おおよそそのプロジェクトが成功するか否かがわかる。うまくいかない場合のユーザー側とシステム会社側の原因の一例である。

・要件定義をシステム会社に任せてしまう
・元請けシステム会社が無理な要件でも受注する
・準委任契約の人材紹介会社がリスクなく利鞘を稼げる
・末端エンジニアの作業遂行以外の責任
・ユーザー側、発注側の担当者が保身する

今回はその背景を説明したい。

要件定義の丸投げ

要件定義をシステム会社に任せてしまう。
要件定義はシステム会社がユーザー企業をヒアリングして作るものではなく、ユーザーとシステム会社が議論を重ねることで答えを出していくものにしなくてはならない。ユーザーが目指すべき姿と、システム会社が実現すべき姿のすり合わせが重要である。

無理な受注

元請けシステム会社が無理な要件でも受注する。
無理な要件でも受注できるのは、発注側にもシステムの知識がないため、ゴールが曖昧なまま元請けシステム会社が請け負ってしまうからである。もし、発注側にITリテラシーがなければ、パワハラなども発生する可能性が高い。したがって、元請けシステム会社に精神的な課題を回避するため、要件定義を作る人でさえも二次受けシステム会社から集めてくることがある。

人材紹介会社の利益構造

準委任契約の人材紹介会社がリスクなく利鞘を稼げる。
システムの完成責任は負わず、作業だけ請け負うことになるため、人さえ集めてくれば、そこでリスクなく利鞘が稼げる。発注側のユーザー企業からすれば、契約は元請けシステム会社であるため、3次請け、4次請けを使おうが、完成さえすればいいと考えていることが多い。

エンジニアの責任範囲

末端エンジニアの作業遂行以外の責任。
末端のエンジニアには、クライアントとの調整や導入、一定品質や納期の遵守など、責任感や危機感がないこともある。プロジェクトの全貌が見えないことも原因である。また、言われたことをやるだけで報酬がそこそこあるのが、システムエンジニアの業界だったりするので、作業をした時間分だけ報酬を支払ってほしい、という話にもなる。

発注側の保身

ユーザー側、発注側の担当者が保身する。
システム開発がうまくいかなかったときに、発注側の担当者がシステム会社に責任を押し付けるといったことがある。これは信頼関係によるもので、共同でプロジェクトを成功させようという目標が作れなかった場合に発生する。システム会社を業者扱いして要件定義を丸投げしてしまわないようにしなければならない。

続きを見る >

従来開発 vs ローコード開発比較

基本概念

企業のデジタル化が加速する中、システム開発手法の選択は事業成功の鍵を握る重要な決断となっている。従来開発は、プログラマーがコードを一から書き上げる伝統的な手法で、高い技術力と豊富な経験が求められる。一方、ローコード開発は視覚的なインターフェースを活用し、最小限のコーディングでアプリケーションを構築する革新的なアプローチである。両者の特徴を正しく理解することで、プロジェクトに最適な選択が可能になる。

費用対効果

従来開発では高度なスキルを持つエンジニアの確保が必要で、人件費が開発コストの大部分を占める。特に大規模プロジェクトでは、設計から実装、テストまで長期間の人的リソースが必要となり、総コストは数千万円規模に達することも珍しくない。対してローコード開発は、専門知識が少ない人材でも短期間でアプリケーション構築が可能で、初期投資を大幅に削減できる。しかし、プラットフォームのライセンス費用や将来的なカスタマイズ制約を考慮すると、長期的なコスト効率は慎重に検討する必要がある。

開発速度

開発期間において両手法の差は歴然としている。従来開発では要件定義から本格運用まで数ヶ月から数年を要するケースが一般的で、複雑な機能実装には綿密な設計と段階的な開発が必要である。一方、ローコード開発は既存のテンプレートやコンポーネントを活用することで、数日から数週間での迅速なプロトタイプ作成が可能である。特にビジネスアプリケーションや内部管理システムでは、従来開発の10分の1以下の期間で実装できる場合もある。ただし、複雑なロジックや高度な機能が必要な場合は、結果的に従来開発と同等の期間を要することもあるため、プロジェクトの性質を見極めることが重要である。

品質と制約

システムの品質面では、それぞれ異なる特徴がある。従来開発は細部まで制御可能で、パフォーマンス最適化や独自機能の実装において高い品質を実現できる。セキュリティ要件が厳格なシステムや大量データ処理が必要な基幹システムでは、従来開発の柔軟性が威力を発揮する。ローコード開発は標準化されたコンポーネントを使用するため、一定の品質は保証されるが、プラットフォーム依存による制約がある。また、複雑な業務ロジックの実装や外部システムとの高度な連携において、期待する品質レベルに到達できない可能性もある。品質要件と開発リソースのバランスを慎重に評価することが成功の鍵となる。

まとめ

最適な開発手法の選択は、プロジェクトの目的、予算、期間、品質要件を総合的に評価して決定すべきである。ローコード開発は迅速性とコスト効率に優れ、内部業務システムや簡易的なWebアプリケーション開発に適している。従来開発は高い技術的要求や独自性が必要なシステムに最適である。重要なのは、どちらか一方に固執するのではなく、各プロジェクトの特性に応じて柔軟に選択することである。

続きを見る >

予算ブレの原因

開発の変動要因

システム開発は長期にわたることが多く、また未来の不確実性の中で予算を策定しなくてはいけないことがある。セキュリティーをはじめ動作環境の変化や人員の欠如、予期していなかった仕様の発覚などが原因だ。

目標変化と予算

進捗率は目的地が明確に設定されていれば数字を負うことで予算達成率を算出することができる。しかし、目的地が近い遠いのは無しではなく、根本的な目的地がなくなったり、複数になったりすることがシステム予算の策定の難しいところである。

計画型開発法

システムに未来を見ることができればブレない、見えないことをすべて調査の上で着手できれば確実な予算と実行が可能である。進捗率の報告が可能になる。フォーターフォールモデルなのでコストがかかることと時間がかかることの覚悟が必要だ。途中での方向修正は原則できない。

柔軟な開発手法

逆に低予算で早く導入するなら、見えにくくなるデメリットがある。状況によって対応を素早く変化させる必要があるため進捗率を算出しにくい。アジャイル開発と呼ばれるものであり、社内開発であることが理想である。途中で出てくる条件に対しても柔軟に方向性を変化させることが可能である。

まとめ

アジャイル開発で予算を立てるときは、1.5-2.5倍くらいを目安に余裕を持って設定することを推奨する。

続きを見る >