運用の昇華

開発現場の想定外

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

マネジメントの試金石

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

プロジェクトの舵取り

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

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

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

まとめ

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

関連記事

開発費用値下げの危険性

開発手法の選択基準

大がかりなシステム開発においては、ウォーターフォールモデルという開発手法がとられ、設計書などのドキュメント類も整理してから、プログラミングへ着手する。逆に中小規模なシステム開発においては、アジャイル開発と呼ばれ、プログラミングをしながらシステム開発が進められたり、ドキュメント類は簡易にして、プログラミング工程へ着手するといった方法がとられる。状況に応じて開発手法は使い分ける必要がある。

設計書の必要と課題

建築では図面なく建物を建てることはないが、中小規模のシステムについては簡単な概要だけでシステムの開発ができてしまう。もちろん設計書をしっかりと書いて、要件を詰めてシステム開発を進めることができれば、トラブルもなくていいのではないかと言われる。しかし、設計書を作成するにはシステムをプログラミングすることと同じくらい費用が掛かる。

設計書の粒度と要因

中小規模のシステム開発において設計書が簡易になってしまう理由は、ユーザー側や発注側の予算が乏しいという理由がある。建築のパターンの場合は、法律によって作成しなければならない図面や、施主から同意をもらうべき書類などが決められている。システム開発には法的に作成しなければならない書類が明確にされているわけではないため、この粒度が各社・各エンジニアによりバラツキが発生する。

文書管理の現状

中小規模のシステム開発において、最悪の場合は設計書がないケースもある。小さなプロジェクトの場合は予算も少なく特にドキュメント類がないが多くある。あるいは、システムはアップデートされ続けているのにドキュメントはアップデートされていなかったり、ひどい場合にはシステム保守ベンダーが紛失している場合もある。

まとめ

システム開発に時間がかかる理由は、設計書から作成することでプログラミング作業の2倍以上の時間がかかると言われる。いわゆる動作検証の工程まで入れるとプログラミング作業の3倍程度は時間がかかる。また、システム開発はほとんどが人件費である場合が多く、かかる時間に応じて費用が上がる。つまり、非エンジニアが単純に開発費用を値切ると、プログラミング以外の重要な情報を削っていくことになる。

続きを見る >

SEのいうバッファとは

バッファの真意

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

不確実なバッファ

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

知識の不足

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

本質のバッファ

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

まとめ

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

続きを見る >

ローコードとは何か

ローコード開発の基本

ローコード開発とは、従来のプログラミングで必要だった複雑なコード記述を大幅に削減し、視覚的なインターフェースを使ってアプリケーションを構築する開発手法である。ドラッグ&ドロップや設定画面を使って、まるでパズルのピースを組み合わせるように機能を実装できる。これにより、プログラミング経験が少ない人でも短期間でアプリケーションを作成することが可能になった。従来なら数か月かかっていた開発が、数週間で完成することも珍しくない。

注目される背景

現代企業が直面するデジタル変革(DX)の波により、業務システムの迅速な構築・改善が求められている。しかし、IT人材不足は深刻化しており、従来の開発手法では変化の速いビジネス要求に対応しきれない。また、コロナ禍を経てリモートワークが普及し、業務プロセスのデジタル化が急務となった。こうした背景から、非IT部門でもシステム開発に参加できるローコード開発が注目を集めている。市民開発者と呼ばれる現場担当者が直接システムを構築することで、真にビジネスニーズに合致したソリューションを素早く提供できるのである。

具体的なメリット

ローコード開発の最大のメリットは開発スピードの圧倒的な向上である。従来の開発では要件定義から運用まで半年以上かかっていたプロジェクトが、1〜2か月で完成する。また、専門的なプログラマーを雇用する必要がないため、人件費を大幅に削減できる。さらに、ビジネス要求の変化に応じて素早く修正・拡張が可能で、従来のシステムのように大規模な改修を必要としない。ユーザー自身が開発に関わることで、仕様の齟齬が生じにくく、より実用的なシステムが構築できる点も大きな魅力である。運用保守も簡単で、長期的なTCO削減にも貢献する。

導入時の注意点

ローコード開発を成功させるには、適切な用途の見極めが重要である。単純な業務アプリケーションや社内システムには最適だが、高度な処理や複雑なアルゴリズムが必要なシステムには向かない。また、開発者のスキルレベルに応じた段階的な導入が必要で、いきなり複雑なシステムから始めると失敗リスクが高まる。セキュリティやガバナンスの観点から、適切な開発ルールやレビュープロセスの確立も欠かせない。さらに、従来のIT部門との連携体制を構築し、技術的なサポート体制を整えることで、より効果的なローコード活用が実現できる。

まとめ

ローコード開発は、DX推進において極めて有効な手段である。開発スピードの向上、コスト削減、そして現場主導でのシステム構築を可能にする。ただし、適切な用途選択と段階的な導入アプローチが成功の鍵となる。企業の競争力向上のため、ローコード活用を検討してみてはいかがだろうか。

続きを見る >