ビジネスではシステムは欠かせない存在になっています。そして、以前にも増してそのニーズは多様化・複雑化しているというのが実態ではないでしょうか。このような中でシステム開発の現場では課題が多くあります。今回はシステム開発における一般的な課題とその対応策について解説します。
システム開発の課題とは?
それではさっそく、システム開発の課題についてご紹介します。
課題1. システム開発の標準化がされていない
システム開発はそこに携わる開発者の経験や能力が、品質と生産性に大きな影響を与えます。しかしながら、昨今の多様化・複雑化したシステム開発では多人数の開発要員が同時に作業を進めることも多く、開発プロセスや成果物に何らかの基準を定めなければ、システムの品質と整合性を担保することができません。しかしながら、実態としてシステム開発の標準化が行われていなかったり間違った開発標準を規定しているケースも少なくありません。
課題2. システム開発の目的が共有されていない
システム開発の初期フェーズであるヒアリング段階でシステム開発の目的が共有されていないケースが少なくありません。システム開発を依頼するクライアントは、何らかの課題を抱えており、「あんなことがしたい」「こんなことがしたい」という要望をたくさん提案します。そうした要望を受けて、現実的観点から可能な方法を探り、時には要否を考えてシステム開発を提案するのがIT企業の仕事と言えます。その一方でお客様のニーズである「システム開発の目的」が共有されていないことが多く、結果としてニーズを汲み取れないシステムが出来上がる状況になります。
課題3. 現場の理解や業務の見直しが前提ではない
一般的な業務システムの場合、今ある業務をより効率良く行えるようにしたり、より高度なニーズを達成するために構築または改変が施されます。そのため新システムを利用する企業サイドでは今までの業務が変更されることが一般的です。しかし、現場の了解を得ないまま開発だけ進んでしまい、後からこんなはずではなかったなどの声を聞くような状態になります。
課題4. 開発途中のシステム要件変更が許容されない
システム開発というのは、基本的に手戻りが発生しないように計画が組まれています。ものづくりの現場で考えてみても、商品開発から設計仕様、実際の設計やプロトタイプの制作、金型の製造などのプロセスを考えると、途中で設計仕様の変更が生じるとかなりの手戻りが発生し、計画遅延やコスト増が起きます。
これと同じように、システム開発でも後工程での手戻りがプロジェクト全体に大きな影響を与えるため、極力手戻りが発生しないよう計画が組まれているのです。しかし、昨今急激に変化するビジネス環境において、システム開発途中に要件が変更になることは多々あります。そうした要件変更に対応できるようにしておくことも重要です。
課題5. 新しい技術を取り入れる準備ができていない
近年はAI(Artificial Intelligence:人工知能)やIoT(Internet of Things:モノのインターネト)を活用したシステムが必要不可欠といっても過言ではありません。たとえば工場においてIoTを導入すれば、生産ラインの監視をシステムに任せて、それを中央から人がコントロールするような「スマートファクトリー」も実現できます。このような最先端の技術を取り入れる環境がないとシステムは陳腐化してしまい競争力を失うことになります。
以上のように、システム開発にはたくさんの課題があります。また、それらの課題はIT企業によっても違いますし、対応策も異なってきます。皆さんの会社では、どういった課題を抱えているでしょうか?
システム開発課題の対応策
上記のような課題を抱える企業は、どのようにシステム開発に取り組めば良いのでしょうか。いくつか対応策をご紹介します。
対応策1. フレームワークを取り入れる
正しい開発標準を策定するためには、まず開発者全員が共通認識のもと話を進められるような環境を整える必要があります。これを可能にするのが、IPA(情報処理推進機構)が提唱する『共通フレーム』です。システム開発の構想段階から開発・運用・運用・廃棄に至るまでのライフサイクル全般を通じて、必要な作業項目が包括的に規定されています。
ただし、共通フレームは、日本においてシステム開発に関係する人々(利害関係者)が「共通言語」で話すことができるようにすることを目的に策定されているため、さまざまな開発モデルや実装方式でも利用できるように、成果物の種類や書式などは規定していません。あくまで共通フレームと「共通言語」にして、企業ごとに開発標準を作っていく必要があります。
対応策2. クライアントとIT企業が協力体制を取る
システム開発の現場ではよく「開発に関することはIT企業が行うこと」「業務の見直しに関することはクライアントが行うこと」といった分業体制が見られますが、実際は初期フェーズから最後までクライアントとIT企業が協力体制を取ることがとても重要です。 また、企業側も影響範囲を早期のうちに洗い出し、関係する現場担当者との密なコミュニケーションも欠かせないでしょう。
たとえば、システム開発の目的共有1つとっても、IT企業とクライアントが協力し合って確認しなければ、開発段階で認識の相違が起きたり、さまざまな問題が起きたりする原因になります。その結果、計画遅延が発生し、コストが増加し、最終的には実態に即していないシステムが完成してしまいます。
対応策3. DevOpsを検討する
DevOpsとは、ソフトウェア開発と運用を組み合わせた一連のフレームワークです。システム開発のライフサイクルを短縮し、ソフトウェア品質の高い継続的な提供を実現することを目的としています。
今まで多くの企業では開発と運用は別組織であったり遠い関係にありました。しかし、昨今の状況を考えるとシステムニーズは常に多様化しています。また、ビッグデータ解析やAI、IoT技術の向上により運用から発生する課題やニーズも見える化されるようになってきました。このような背景から経営スピードを加速させるためには開発と運用が有機的に連携する基盤が必要になってきており、つまりDevOpsが益々重要視されてきているのです。企業はDevOps環境を取り入れることで変化対応力が高まり競争力の高いシステムの提供が可能になります。
まとめ
IT活用がサービス提供や自社ビジネスに大きな影響を持つ昨今では、より効率的なシステム開発を自社で実現する必要性が高まっています。フレームワークの導入や標準化、DevOpsの導入などを検討することが重要です。ぜひこの機会に自社におけるシステム開発の課題を洗い出し、自社開発環境のあるべき姿を検討して見てはいかがでしょうか。