見出し画像

ソフトウェアエンジニアリングの課題

ソフトウェアエンジニアリングのリスタートの検討をしていますが、やはりいちば大切なことは課題の把握となります。そこで、様々な立場から見た課題を整理してみます。

発注者にとっての課題

なんといっても、コストと工期が課題になります。緊急プロジェクトで呼び出されたときにも、まずは「どのくらいの期間でできる」と聞かれ次に「いくらかかる」と質問が来ます。そんなのもピンキリであり、なかなか一言で答えにくいですが大枠で答えることが求められます。
そこは経験で何とか答えてしのぐわけですが、その後に精査が必要になります。精査しようとした途端に、どのような機能が必要がという話題になります。つまりは、初期の段階で「見積」「要求管理」が重要になります。
これを起点として「プロジェクト管理」がされていくわけで、最後の納品時に、当初設定した「見積」「要求管理」と差異がないか、差異がある時にはきちんとコントロールされていたかがが問われるわけです。

日本情報システムユーザー協会のIT動向調査ではユーザー企業の実態を知ることができます。
下のグラフにあるように、開発プロジェクトが予定通りにならなかった理由は、「計画時の考慮不足」「仕様変更の多発」「想定以上の現行業務・システムの複雑さ」であり、要するに「コスト、工期、要求」の定義がうまくいかなかったことに起因しています。

予定どおりにならなかった要因(複数回答),「企業IT動向調査報告書 2023」JUAS

品質に関しては、ベンダのスキル不足と評価されていて、ソフトウェア業界には痛いところです。これは重要な指摘ととらえておく必要があります。

現在ユーザー企業は、競争のためのスピードやコスト削減が求められ、さらにガバナンス強化が求められています。それに対応すべく、ソフトウェア開発の一層の開発速度の向上、柔軟性、可視化が求められています。

また、システム内製化の動向にも注視が必要です。
以下のグラフはDXと内製の関係性を示すグラフですが、左の軸の「DXを推進できていると思うか」という問いへの回答に対して、内製への取り組み方針を示したものです。22年度は「非常にそう思う」と回答した組織の内製動向が下がっているように見えますが、すでに取り組んできたことにより安定してきたと分析されています。

DX 推進状況別 開発内製化の増減傾向,「企業IT動向調査報告書 2023」JUAS

また同調査で、システム開発内製化の増加要因に関しては79%の回答者が「社内へのノウハウの蓄積」と答えています。

情報サービス産業協会の調査を見ると、システム検討や要件検討が内製化の重要領域であり、業務アプリケーション開発が内製化の対象になっています。

内製化の推進・支援領域,「デジタル技術応用の拡大と社会変革の実現に向けて」JISA

Gartnerの調査でも、内製化の要因としてコスト削減、迅速化、ノウハウなどの蓄積を上位にあげています

これらから見て取れるように、内製化を通じて、業務要件(プロセスやデータ)の可視化と社内知識化が進んでいくと考えられます。

ソフトウェア提供者にとっての課題

ソフトウェアエンジニアリングを考えるうえで、ソフトウェア提供者にはいくつかのパターンがある事を考慮する必要があります。

サービス利用者から直接システム構築を依頼されるサービス提供企業、パッケージソフトウェアを提供する企業、サービス提供企業に対してプログラム等の機能部品を提供するソフトウェア開発企業、機器等に組み込むソフトウェアの開発企業です。

サービス提供企業

お客様の依頼でサービス全体の見積もり等を求められることが多く、パッケージで提案するのか、モデルベースで開発するのか等の判断をするとともに、開発手法も、一気にウオーターフォールで作り上げるのか、アジャイルで検証しながら作るのか等を検討していきます。

一方で、要件を整理したうえでプロジェクト参加企業からの見積もりを集めるという発注者の側面も持っています。
システムを自ら開発する場合には、要件をもとにプロジェクト管理や品質管理などを行う開発管理プロセスを進めていきます。
その中ではモジュールを再利用したり外部APIを利用するなどの様々な外部連携も発生します。

パッケージソフトウェアを提供する企業

ノンカスタマイズパッケージの場合は、パッケージのライセンス費用と導入費用を含んだ額を示すことで、そのサービス価値や業務改善価値との比較をできるようにします。
カスタマイズ可能なパッケージの場合はさらにカスタマイズ費用と工期を提示します。

一方、パッケージソフト企業は、パッケージソフトを作るためのプログラムを作成する側面も持っています。
販売計画に基づきその売り上げに見合うコストや販売予定に合わせた工期で作成していきます。そのため、サービス提供企業のところで記述したように開発管理プロセスが必要になってきます。

ソフトウェア開発企業、機器等に組み込むソフトウェアの開発企業

発注者からの要件をもとに、開発管理プロセスを進めていきます。時にはサービス提供企業とともに要件の確認などを行っていきます。

世界はどんな感じなのか

ソフトウェアエンジニアリングを再起動にも書きましたが、世界でもソフトウェアに関する見直しが進められています。

Coding sansのソフトウェア開発に関する調査によると、開発の問題の多くは見積もりに起因しており、その次の要因として期待値コントロールや要求定義に関連する課題が上位に挙げられています。

Software Development Trends 2021

また、Reveal等の他のソフトウェア開発の調査を見ると、人材の採用の困難さ、能力の問題、コミュニケーションや合意形成の方法についての課題が重要な課題としてあげられています。

開発支援ツールについては、StatistaのProgramming/development tools used by software developers worldwide from 2018 to 2022によると、開発者の7-8割が、Githubのようなソースコード協働ツール、Sublimeのようなエディター、IDEを活用し、4-5割がJiraのようなイシュートラッカー、JenkinsのようなCI/CDツール、チームコラボレーションまたはタスクマネジメントのツールを導入しています。

ちなみに国内は、大手企業を中心に調査したソフトウェア開発分析データ集2022によると、ツールの利用率が低いことが分かります。ツールの調査区分自体も見直し、あらためて現状把握していく必要があります。

ツールの利用,「ソフトウェア開発分析データ集2022」IPA

まとめ

ソフトウェアエンジニアリングは長年取り組まれてきており、特に、見積もりと要件定義は、永遠の課題として技術の変化に合わせて検討がされてきました。
改めて課題に関する各種調査を見てきましたが、現在の、スピードと柔軟性とガバナンスが求められる時代においては、モデリングによる可視化とツールの活用がますます必要になってきていることが確認できました。またコミュニケーションと合意形成の仕組みも同時に必要になっていることが重要です。
こういう状況を踏まえ、ソフトウェアエンジニアリングの検討をさらに深めていこうと思います。








この記事が気に入ったらサポートをしてみませんか?