内製化の成功術

IT報酬の実態

海外と比べて日本のITエンジニアの報酬が低いという記事をよく目にする。それもそのはずで、ハイクラスIT人材は都合のいい「何でも屋」にはならないからである。

導入時の誤解

ユーザー企業やシステムのユーザーは、IT化を行うことで業務が減るという先入観を持っていることがある。システム導入を着手したときの目的を忘れて、その時、その場の課題を優先して都合よくITエンジニアを動かしてしまう。また動くITエンジニアもそこにいたりする。

システムと医療

たとえば、「お腹が痛い」と病院にいって「すぐに切開しよう」とはならないはずだ。このようにシステムにもその他にも色々な条件が絡まり合っている。システムは取り扱う情報量や関連する業務が多く導入に時間がかかる。時間がかかる結果、最初の導入目的を忘れてしまうのである。

真のIT人材価値

ハイクラスIT人材はユーザー側の状況と心理を配慮しつつ、現場のプログラマーの状況と心理を考慮して陣頭指揮できる人材といってもよいだろう。心理というのは物の言い方だけではなく、無形の財産を構築したり業務にフィットさせたりするので、プロジェクトの円滑さが変わるのだ。

まとめ

小手先だけでシステムに関するプロジェクトを推進しようとすると、「言われた通りにやった」という受動的な参加者が増えてしまう。情シスのSIer化を回避するにはITエンジニアを「何でも屋」にさせて疲弊させないことも大切である。開発チームの雰囲気作りも非常に効果がある。

関連記事

要件定義の問題点

はじめに

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

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

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

要件定義の丸投げ

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

無理な受注

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

人材紹介会社の利益構造

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

エンジニアの責任範囲

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

発注側の保身

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

続きを見る >

システム開発の混迷

営業依存の弊害

業務システムがうまくいかないのはベンダーやSEの問題だけではない。SEを取り巻く環境もシステム開発には重要である。業務システム開発を依頼するベンダーであれば営業担当者が挟まる。日本の縦割り社会の中で営業担当者は非エンジニアである場合が多く、プロジェクトの成功が目的ではない場合がある。

役割の細分化

SEをプロジェクトマネージャーとしている場合も注意が必要である。日本ではシステムエンジニアは細分化されておらず、建築でいうと参加者の全員が職人という扱いであることが多い。システムに関わる人全員がSEとしてしまっている間違いである。

開発の本質

SEやベンダーのプロジェクトマネージャーはそれ自体がプロジェクトと考えていることも多く、ビジネスとしてのプロジェクトとして捉えることができていないことがある。本来はビジネスが中心にあって、その中に業務システムが位置するはずである。それが見えているか否かで、業務システム開発の成功の確率は変わるのである。

相互理解

逆に、システムのことはSEに任せているというような場合も注意が必要である。システムのプロジェクトを経験したことがある、というだけでは、システムに関連するプロジェクトを成功させるのは困難である可能性が高い。プログラミングの経験がなければ、SEやベンダーが持つ心境を察することができないからである。最も重要なことはシステム導入時のイメージである。

まとめ

欧米では当たり前のように、間接的に関与する売上や利益の向上を管掌する部門や役職があるが、日本では良くも悪くもロジカルであり、数字がなければ行動に移せない厳密なルールがある。

続きを見る >

ローコード開発とAI活用

AIとローコードの融合

ローコード開発プラットフォームの普及により、非エンジニアでもアプリケーション開発が可能になった現在、生成AIの活用が大きな注目を集めている。ChatGPTやCopilotなどのAIツールを組み合わせることで、開発スピードがさらに向上すると期待されているが、本当にすべてのローコード開発にAIが必要なのだろうか。コスト、品質、保守性など多角的な視点から、AI導入の真の価値を見極めることが、企業のDX戦略において極めて重要になっている。

コード生成の現実

生成AIによるコード生成は確かに魅力的だが、実際の品質には課題がある。AIが生成するコードは、単純な処理であれば高品質だが、複雑なビジネスロジックや例外処理が絡むと、不完全なコードが生成されることが少なくない。さらに深刻な問題は要件定義の壁である。AIは与えられたプロンプトに基づいてコードを生成するが、曖昧な要件や暗黙の前提条件を正確に理解することは困難である。結果として、開発者は生成されたコードを詳細に検証し、修正する必要があり、期待したほどの効率化が実現しないケースも多く見られる。

保守性のコスト

AIを活用したローコード開発において、最も見落とされがちなのが保守性の課題である。AI生成コードは、その時点では動作しても、後から読み解くことが困難な構造になっていることがある。変数名が不適切だったり、処理の意図が不明瞭だったりすると、半年後に修正が必要になった際、開発担当者が変わっていた場合、大きな手戻りが発生する。また、AIツールのバージョンアップや仕様変更により、過去に生成されたコードとの互換性が失われるリスクも存在する。初期開発のスピードを重視するあまり、長期的な運用コストが膨らんでしまっては本末転倒である。真のDX推進には、目先の効率化だけでなく、持続可能な開発体制の構築が不可欠なのである。

適切な見極め

ローコード開発におけるAI活用は、すべてのケースで必須というわけではない。定型的な画面開発や単純なCRUD操作など、パターン化された開発にはAIが有効だが、複雑なビジネスロジックや高度なセキュリティが要求される領域では、人間による丁寧な設計と実装が重要である。重要なのは、プロジェクトの性質、チームのスキルレベル、長期的な保守計画を考慮した上で、AIを活用すべき領域と従来手法を維持すべき領域を明確に区分することである。段階的にAIツールを導入し、効果を検証しながら適用範囲を拡大していく慎重なアプローチが、失敗リスクを最小限に抑え、真の生産性向上につながる。

まとめ

ローコード開発へのAI導入は、万能の解決策ではなく、適材適所で活用すべきツールである。コード生成の質、要件定義の難しさ、保守性の課題を十分に理解した上で、自社の開発体制に合った形でAIを取り入れることが成功の鍵となる。短期的な効率化だけでなく、長期的な運用まで見据えた戦略的な判断が求められている。

続きを見る >