システム開発でよくある課題と対応策! 複雑化への対処法とは

  • システム
  • 開発
  • 課題
2023.07.14
システム開発でよくある課題と対応策! 複雑化への対処法とは

近年、ハイブリッドクラウドやマルチクラウドなどを採用する企業は少なくありません。その結果、システムは複雑さを増し続け、ブラックボックス化を招きやすくなります。この記事では、システム設計や開発時における課題と対応策について取り上げるとともに、システム開発におすすめのツールを紹介します。

システム開発でよくある課題とは?

企業のIT部門では新しくシステム開発を行う際、計画どおりに進まないことがよくあります。その原因は、システム開発の現場にさまざまな課題があるからです。ここではシステム開発でよく見られる3つの課題について解説します。

標準化されていない

システム開発でよくある課題とは?

システム開発は、複数人のメンバーで協力しながら進めていくのが一般的です。そのため、開発に関わる全員が認識を一致させることが特に大切です。この取り組みは「標準化」と呼ばれ、システム開発の手法や規約などをまとめて開発全体に適用させることを意味します。つまり、開発する途中で迷いが起きないように一定のルールを設けておきます。

もし標準化ができていないと、開発の途中でメンバーが休んだり、加入や脱退などがあったりした場合に、どこまで進んでいるのか、あるいはこれからどうのように開発を進めればよいのかわからず、時間やコストを無駄にする可能性があります。

またシステム開発に限らず、ビジネスシーンでは属人化が大きな課題となっています。ナレッジやノウハウを共有せず、特定の人に依存した仕事のやり方をそのまま放置していると、ほかのメンバーは成長できず、リスクが発生したときも適切に対応できません。

システム開発における標準化は、こうしたリスキーな属人化から完全脱却させ、チーム全体でスキルアップを図っていくためにも必要不可欠な取り組みです。しかし中小規模のIT企業などでは標準化がされていないことも少なくありません。

ブラックボックス化している

ブラックボックスとは、「使い方はわかるが、中身や仕組みがよくわからない」状態を指す言葉です。そのため、先に述べた属人化とも深く関係しており、属人化することでブラックボックス化が起こりやすくなります。

長年使い続けているシステムはブラックボックス化しやすく、企業・部署によっては、もはや誰も触れないままブラックボックスが放置されている場合もあります。実際2018年9月に経済産業省が公表した「DXレポート~ITシステム「2025年の崖」の克服とDXの本格的な展開~」によると、調査対象の企業のうち約8割で、ブラックボックス化した既存システム(レガシーシステム)の対処に悩みを抱えているという事実が判明しました。

参照元:経済産業省
「DXレポート~ITシステム『2025年の崖』の克服とDXの本格的な展開~」p.5
https://www.meti.go.jp/shingikai/mono_info_service/digital_transformation/pdf/20180907_01.pdf#page=5

既存システムがブラックボックス化・属人化していると、新規システムを開発する際にうまく連携ができません。既存システムに関する設計書などをしかるべきメンバーと共有していないような状況も生まれやすくなります。この状況で中心的な担当者が異動や退職などでいなくなると、残されたメンバーはそのシステムについて理解するのに多くの時間や手間、コストが必要になります。
こうしたブラックボックス化を予防するためには、適切な対策を早急に打つことが大切です。例えば、システム開発に関する文書を、改修のたびに最新のものへ更新しておくことなどが考えられます。

複雑化している

デジタル技術の発展によって、システムは高機能な要素が増えるとともにそれぞれが連携し合うことで複雑化しています。それによってユーザー側は利便性が高まるものの、開発後、運用・保守を任される担当者にとっては、負担が増大しているといっても過言ではありません。日に日に進む開発技術に関する知識を習得し、実践に活かしていくのはハードな経験です。複雑化したシステムをセキュアな状態に保ちづらく、問題も起きやすくなります。

しかも一般的な既存システムは、業務の見直しが前提となっていないため、システムの効果が最大限活かしきれていないのも問題です。さらに業務ごとに最適化された複数のシステムが乱立しているため、円滑な運用・管理がしにくいといった悩みもあります。

システム開発における課題への対応策

システム開発における課題への対応策?

標準化されていない、あるいはブラックボックス化していたり、複雑化していたりしていると、システム開発はスムーズに進みません。では、どうすればこうした課題を解消していけるのでしょうか。ここでは効果的な対応策を5つ紹介します。

システム開発の目的を明確化する

最初に、なぜシステム開発を行うのかといった目的を明確化することです。企業にとってシステムはあくまで手段であり、目的ではありません。ビジネスに対し、どのように貢献するシステムが求められているのかをはっきりさせると、どのような開発が必要なのかがおのずと見えてきます。また、新たにシステム開発を行う場合は、これまでの業務そのものを見直すようにしましょう。的確でスムーズな業務改善につなげられるようになります。

ユーザーと開発者が連携する

開発段階では、実際にシステムを利用するエンドユーザーの意見を吸い上げ、フィードバックを開発の施策に活かすことも重要です。そのためには、ユーザーと開発側の担当者がしっかり連携し、必要に応じて適切に情報共有をしましょう。
また、システムのプログラムを実際に使えるように設定するデプロイやリリースする段階のシステムであれば、ユーザーではなくシステム運用側と開発側との連携がキーポイントになります。

システム設計段階から品質テストを重ねる

システム開発では、単体テスト、結合テスト、受け入れテストなど、さまざまなテストを行います。ここでのポイントは、できるだけ早い段階から本番と同じインターフェイスを作り、テストを重ねて品質を作り込むことです。

システム開発では、連携先の詳細がわからないまま開発を進めることも珍しくありません。そのため、「単体テストでは成功していても結合テストの段階になった途端、システムが動かない」というケースも生じます。この時点で大幅な修正を行うと、多くの追加コストがかかってしまいます。こうした事態を避けるためには、早い段階から品質テストを実施し、着実に開発を進めていくことが大切です。

標準化・仕組み化を進める

前述したように、システム開発における標準化とは、開発手法やプロセスなどをルール化し、認識のばらつきが出ないようにすることです。
実際に標準化するにはいくつかポイントがあります。まず、開発の骨組みとなる「フレームワーク」を統一することです。例えば、企画から開発、運用、廃棄まで、ユーザー側と開発側とが認識を合わせられる共通の枠組み「共通フレーム」を利用すれば、エンジニア同士の認識も統一しやすくなり、スムーズに開発が行えます。

また、要件定義や概要設計、詳細設計、テスト計画、保守運用計画などをガイドラインとして作成しまとめておくことも、標準化に役立ちます。さらに、実際に使えるレベルのサンプルプログラムを作成しておくことで、開発のイメージがしやすくなります。ほかにも共通のデプロイプロセスを構築すれば、デプロイの仕組み作りの手間が省け、別プロジェクトの構築時に再びデプロイの仕組みを考える必要がありません。

このように標準化は、開発の効率化を図れるほか、品質向上やほかの開発へ流用できる点がメリットです。ただすべてを標準化してしまうと、開発者の自由な創造性を奪ってしまうおそれがあります。開発者たちがユーザーやクライアントとコミュニケーションをしっかり取りながら、ニーズに合わせて開発を進めていくことも大切です。そのため必要に応じて基準に幅を持たせたり開発者の判断に委ねる要素を残したりし、柔軟な仕組みを作りましょう。

新しい技術を取り入れる

先に述べたように、システムが複雑化している昨今、開発現場では新しい技術情報や手法などを積極的に採用していくことも大切です。
独立行政法人情報処理推進機構(IPA)では、定期的に「品質向上に有用な新技術や手法を活用し開発を進めた成功事例」を収集・公開しています。

こうした公開事例の中で、例えばある企業では派生開発プロセスが未整備な状態に頭を悩ませていました。派生開発は一般的にベースとなるソース全体を理解するのが難しく、どう修正したかがドキュメントしか残らないため、開発担当者の意図を知るのが難しいという背景があります。
そこで、派生開発に特化した開発アプローチとして、XDDP(eXtreme Derivative Development Process)を取り入れることにしました。2009年からインフラ系、産業系、パッケージ開発など400件以上の派生開発に適用した結果、仕様の確認不足や誤解に起因した不具合が減少し、製品の品質が向上しました。また、システム全体への影響範囲が明確になったことで、経験や推測に依存しない開発を実現できるようになったのも大きな成果です。

OpsRampはシステム開発にも役立つ!

OpsRampはシステム開発にも役立つ!?

仮想化技術やハイブリッドクラウド・マルチクラウド環境の浸透などによって、近年のシステムは複雑化する一方です。これらシステムの適切な管理はますます重要になっていますが、自社内の努力だけでその管理を全うすることは、一般に困難です。

そうした管理を効率化するためには、「OpsRamp(オプスランプ)」など、SaaS型のエンタープライズ向けのIT運用管理プラットフォームを導入することが有効です。OpsRampは、既存ITシステムとの連携や監視、管理、自動化などを行い、システム運用の効率化をサポートします。
OpsRamp導入によってシステム開発の課題克服に不可欠な標準化や可視化、業務そのものの見直しができ、システムの複雑化防止にも役立ちます。システムの複雑化を防げるため、結果的に属人化を回避し、新たな開発にも着手しやすくなるといったメリットも得られます。

まとめ

システム開発では、「開発標準が整っていない」「ブラックボックス化している」「複雑化している」といった課題が生じます。この対応策として有効なのが、システム開発の目的を明確化し、各所と連携を取りながら、標準化・仕組み化を進めることです。また、テクニカルな側面だけにとらわれず、いかに業務効率化やコスト削減へつなげていけるかも重要な観点です。

本記事で紹介した「OpsRamp」なら、開発段階から業務そのものの見直しにも役立つため、標準化や仕組み化を加速させられます。ぜひ導入を検討してみてください。