見出し画像

スクラッチ開発至上主義への警鐘

タイトルはかなり重たい話題なので、今回は若干表層的なところを記載しつつ、より具体につながる話をいつの日かさらに記載しようと考えています。

職業柄転職希望のエンジニアの方とお話しすることがあり、特にSIer/SESといった受託企業出身の方からよくでてくる転職理由のうち、以下のようなものがあります。

・将来的につぶしのきくスキルをみにつけたい
・年収をあげたい

例えばCOBOLやVB.netといったレガシー環境での開発、3次請け以降で下流しかやれない、といった方は上記のような悩みを持つ傾向にあります。

その際提案先としてよくでるのが、「商流上げたSIer/SESにいき、さらにJava等の汎用的な言語を扱える環境で、スクラッチ開発のスキルを伸ばしていきましょう」といった解決策です。

上記そのものは間違った提案ではないと思いますし、一定正解だと思いつつ、他の道として、既存のSaaS製品(例:Salesforce、Service Now)をうまく活用できる、あるいはローコードやノーコード(例:Outsystems)を活用できるエンジニアになることも視野に入れるべきだと考えます。

今回の記事では、このあたりについて、だらだら記載していきます。

前提:スクラッチ開発とSaaS

スクラッチ開発やパッケージ開発、SaaSについては、以下の記事がわかりやすいので、掲載します。

スクラッチ開発は、ゼロから完全にシステムを作り上げるもので、SaaSは、すでに出来上がっているクラウド製品(イメージわきやすいものだと、GmailやGoogle Calender)を導入するものです。

※なお、上記記事の中に記載してある、以下文言は本記事とかなり真逆の見解です。そのあたりも後述いたします。

SaaSは企業にとって、サービスが終了したら使えなくなるなど、システム開発に比べてデメリットのほうが大きいでしょう。B to Cのサービスは個人用のため影響は大きくありませんが、B to Bの場合、終了するリスクは避けるべきです。ソフトウェア開発はSaaSではなくシステム開発会社への依頼をおすすめします。

DXにおけるスクラッチ開発の問題点

「2025年の崖」という言葉でも有名になった、経産省のDXレポートでは、DXにおけるスクラッチ開発の問題点が示されています。

内容としては、以下のとおりです。

・社会環境変化に迅速についていくシステム開発をするには、既存システムが足かせとなっている
・理由としては、既存システムがブラックボックス化しており、システムの中身が不可視で、自分たちで修正できない/データ連携もできない状況になっている
・ブラックボックス化の理由は、スクラッチ開発やパッケージの大規模カスタマイズにより、個々のシステムの独自ノウハウがうまれ、そのドキュメントの整備や担当者の離職により、中身がわからない状況になっている

このように、従来の日本のスクラッチ開発至上主義文化が、システムのブラックボックス化をうみ、DXの足かせとなっている状況を唱えています。

(参考)

SaaS市場/ローコード・ノーコード市場の高まり

こうした背景をうけ、SaaS市場やローコード・ノーコード市場が盛況です。

SaaS市場

国内全体のクラウド市場が伸びていくのは周知の事実ですが、そのなかでも特にSaaS領域が伸びていきます。

以下記事にもあるように、パッケージとSaaSでは、今後ますますSaaS比率が高まります。また、(ERP限定ではありますが)2023年にはSaaSがIaaS+オンプレ市場よりも主流を占めます。

また、政府もクラウド・バイ・デフォルト原則を打ち出し、その中で、まずはSaaS活用を検討⇒無理な場合はIaaS/PaaSの検討、といった順番を提唱しています。

ローコード/ノーコード市場

ガートナーは2024年までに65%以上のアプリがローコード/ノーコード開発になると提唱しており、国内でもIDCが発表した内容では、2021年ですでに37%がローコード/ノーコードアプリを開発している状況です。

また、AI分野でも、各種クラウド業者のサービス拡充により、ノーコードでもAIモデルを開発できるようなサービスが生まれています。

なお、ローコード/ノーコード開発では、野良アプリ(情シス部門が把握できていないシステム)が乱立する可能性もあり、セキュリティ面/ブラックボックス化を防ぐために、そうした社内統制/一定のルールづくりが必要とされています。

エンジニアとして必要な要素

このように、スクラッチ開発市場よりも、SaaS導入/ローコードやノーコード導入の市場のほうが伸びていきます。その前提を踏まえた際、エンジニアとしてはいくつかの選択肢があると思われます。

①今後も残りうるタイプのスクラッチ開発のスキルを伸ばす

スクラッチ開発市場も、SaaSやローコード等では対応できないような、高難度のシステム開発では残っていきます(SaaSそのものを作ること含め)。

ただし、高難度のシステム開発を行うには、中途半端な技術力ではあまり意味がありません。また、以前だした記事のように、義務教育でプログラミングがスタートし、小さなうちからプログラミングに触れている人と一緒に技術力で勝負することになります。

自分が高い技術力を保っていきたい、新しい技術を学習することが好き、といった方には非常におすすめできる道ですが、プログラミングに関してそこまで強い興味がない方だと、市場価値の意味ではおすすめしにくいところです。

②SaaS導入やローコード/ノーコード導入に貢献するエンジニアになる

SaaS導入やローコード/ノーコード導入市場は伸びていく一方で、誰でも簡単に問題なく導入できるわけではありません。

スクラッチと異なり、SaaSサービスは「既存の業務にシステムをあわせる」のではなく、「SaaSに業務をあわせる」、つまり今後のデジタル化にあわせられるように業務そのものを改善することが求められます。

現状分析/課題抽出を行い、そこからサービス選定、システム導入、既存サービスとの連携、定着化、といった一連の流れが必要です。

特にSaaS×大規模エンタープライズ領域においては、子会社等含めた既存システムとの連携、業務フローの見直し等含め非常に難易度の高いものとなります。

また、ローコード/ノーコード開発でも、自分たちがつかうだけでなく、顧客がそれを使えるように伴走、内製化支援をしたり、新たなブラックボックス化を防ぐために、情シス部門と事業部門含め統制がとれるような組織作りを行います。

開発それ自体は難易度が低そうに見られがちなSaaS導入やローコード/ノーコード開発ですが、上記のように業務フロー改革、既存システムとの連携、運用支援(その後も使われる体制づくり)等々、スクラッチ開発とは少し異なる部分での難しさがあります。

まとめ

スクラッチ開発だけでなく、SaaS(例:Salesforceエンジニア)導入や、ローコード/ノーコード(例:Outsystemsエンジニア)導入といったキャリアも提示いたしました。

市場価値とは「市場から求められるスキルをもっている」かどうかであり、その点でみると、今後ますます伸びていく市場であるSaaS系やローコード系のスキルを磨いていくことは、間違いなくエンジニアのキャリアにとって大切なことだと思われます。

JavaやGo、Python等でのコーディングが好きで、いつもプログラミングを毎日自己研鑽している、といった技術好きな人は、そのままスクラッチ開発スキルを伸ばしていく道も十分ありだと思います。

ただし、そこまでプログラミングが好き/得意ではない方であれば、ぜひ一度立ち止まって、「本当に新しい言語でプログラミングを学ぶ必要があるか」など、キャリア戦略を練っていくとよいと思われます。

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