1. AI駆動開発におけるエンジニアの役割と課題 [0]

thumbnail AI駆動開発では、人間がAIに適切な制約を与え、ビジネス文脈で全体を俯瞰する能力がエンジニアに求められる。

1.1. AI駆動開発の現状と問題点 [0]

  1. AIが開発の主役となる時代: [0]
    1. 以前は人間がコードを書くのが当たり前だったが、現在ではAIが開発そのものを駆動する「AI駆動開発」が主流になりつつある。[0]
    2. ローコード、ノーコードといった概念を超え、人間がコードを書かなくても良い時代へと大きく変化している。[42]
  2. AIの進化速度と人間のボトルネック: [47]
    1. AIの進化速度は人間の時間軸とは全く異なり、半年で人間の3年〜5年分に相当するアップデートが可能である。[47]
    2. AI駆動開発では、部分的にAIが人間より優れているため、必ず人間がボトルネックになる。[52]

1.2. AI駆動開発時代に求められるエンジニアのスキルセット [53]

  1. AIを正しく導く力: [53]
    1. AIがボトルネックになっている場合、それが本当に必要な作業なのか、単にAIの駆動を止めているだけなのかを見極める必要がある。[53]
    2. AIに任せきりではなく、正しく制約や構造を与え、導いていく力が求められる。[64]
    3. AIが提案する多様な選択肢の中から、最適なものを正しく選ぶ能力が重要である。[64]
    4. AIエージェントを活用し、今まで自動化できなかった領域を自動化し、人の作業を減らす改革を実行する力が必要である。[65]
    5. 複雑な複数のエージェントが安定かつ安全に稼働し続けるための基盤を構築する技術も引き続き重要である。[66]
  2. ビジネス文脈で全体を俯瞰する力: [61]
    1. 自分がボトルネックになっていることに気づかないと、プロジェクト全体を停滞させてしまう可能性があるため、エンジニアは常に俯瞰的な視点を持つ必要がある。[61]
    2. ビジネスに興味を持ち、好奇心を錆びさせないことが重要である。[79]
    3. 「何を作るか」よりも「どうなりたいか」「なぜやるのか」といったビジネスの目的を深く理解し、それを実現するための意思を持つことが、AI時代のエンジニアの生きる道となる。[84]
  3. 自己批判的な精神とコミュニケーション能力: [67]
    1. 昔のエンジニアは「人と関わりたくない」という理由でプログラマーになることが多かったが、AIがコードを書く時代においては、人と関わらざるを得なくなる。[67]
    2. 自分がボトルネックになっていないか、常に自己批判的な視点を持つことが重要である。[75]

2. AI時代の開発運用プラットフォームの価値と「3S」の重要性 [101]

thumbnail AI時代の開発運用プラットフォームは、「3S」(Stability, Scalability, Security)を意識せずとも担保することで、エンジニアがビジネス成長に注力できる環境を提供する。

2.1. 開発運用プラットフォームに求められる機能 [101]

  1. AI活用と自動化: [101]
    1. AIを効果的に活用し、人の手を介さずに自動化を進めるプラットフォームが重要である。[101]
    2. AIに制約や構造、文脈を与えやすい仕組みが求められる。[103]
  2. 「3S」(Stability, Scalability, Security)の担保: [105]
    1. AI以前から重要であった「3S」(Stability:安定性、Scalability:拡張性、Security:安全性)は、AI時代においても引き続き重要である。[105]
    2. 運用プラットフォームがコード生成やアーキテクチャ構築を自動化する時代においても、これらの重要性が担保されていることが必須条件となる。[109]

2.2. 「3S」を意識しない開発運用の重要性 [113]

  1. セキュリティの究極形は「意識しないこと」: [113]
    1. セキュリティにおいて最も重要なのは、開発運用において「意識せずともそうなっている状態」である。[113]
    2. 意識しなければならない状態は、攻撃者にとって隙があることを意味する。[117]
    3. 開発プロセスにセキュリティがデフォルトで組み込まれている状態(Security by Default)が理想である。[121]
  2. 「3S」の自動担保がもたらすメリット: [123]
    1. セキュリティ、スケール、安定性が意識せずとも実現できることは非常に重要である。[123]
    2. スケールアップ時にセキュリティが犠牲になったり、不安定になったりすることは避けなければならない。[125]
    3. 現場では「3S」の重要性は理解されているものの、実現の難しさから対立軸が生じることがあったが、自動化によってこれが解決される。[129]

2.3. 開発運用プラットフォームがもたらすビジネスへの影響 [135]

  1. マネジメントの重要性: [135]
    1. 自動化が進み、ハイスペックなものが簡単に作れるようになっても、マネジメントがなければ事故につながる可能性がある。[135]
    2. 顧客やマーケットを見てマネジメントすることは、人間に残された聖域である。[144]
  2. ビジネス成長への全振り: [146]
    1. スケール(拡張)は顧客増加やビジネス拡大を意味し、システムが安定していても自動では実現しない。[146]
    2. 顧客を増やし、製品の魅力を伝えるのは人間の仕事である。[152]
    3. システムがボトルネックにならず、スムーズにビジネスを伸ばせるようにするためには、「3S」が必須となる。[156]
    4. 「3S」が担保されていることで、企業はビジネス成長に全力を注ぐことができる。[164]
  3. 機会損失の回避: [166]
    1. ビジネスが予想以上に成功した際に、システムがボトルネックとなりスケールできないと、大きな機会損失となる。[166]
    2. 競合他社にアイデアを奪われ、ビジネスを乗っ取られるリスクもある。[169]

2.4. OutSystemsの開発運用プラットフォームの特徴 [176]

  1. エージェンティック・システムズ・エンジニアリング: [176]
    1. OutSystemsは、ソフトウェア開発と運用を支援する「エージェンティック・システムズ・エンジニアリング」という仕組みを提供している。[176]
    2. これは、世の中や様々なコンテキストを理解し、安全に開発を進め、必要に応じて人がエージェントの作業を改善しやすい仕組みである。[177]
    3. 企業文脈を捉え、全体を網羅的に把握した上で開発をスタートできる点が評価されている。[179]
  2. フルライフサイクル・フルスタックでの対応: [182]
    1. ソフトウェア開発の全工程(企画、開発、ビルド、配置、監視、改善)をカバーする「フルライフサイクル」に対応している。[182]
    2. 開発と運用が分離されがちな日本の業界構造において、最初からサイクルが意識されている点は非常に重要である。[186]
    3. 強固なセキュリティやスケールを担保する仕組みが基盤として備わっており、AI駆動開発やエージェントの活用・開発を容易にする。[191]
    4. フルライフサイクル・フルスタックで対応するプラットフォームは他に類を見ない。[193]
  3. 抽象化と自動化による価値: [195]
    1. IT業界のあらゆる要素が組み込まれており、個々の技術要素を理解・設定・組み込む手間を大幅に削減する。[195]
    2. 適切な要素を選び、自動化することで、利用者に大きな価値を提供する。[201]

3. AI時代のエンジニアの未来と「コンテキスト」の重要性 [203]

thumbnail

AI時代においてエンジニアは、ビジネスの文脈を深く理解し、顧客の幸せに貢献する「庭師」のような存在になることが求められる。

3.1. 人間のボトルネック解消とAIによる効率化 [203]

  1. 経営層とIT部門の課題: [206]
    1. 日本企業の経営層にはITに疎い人が多く、曖昧な要求をIT部門に投げることがある。[206]
    2. IT部門はリソース不足から外部委託することが多く、結果として多様なプラットフォームやツールが乱立し、全体像の把握が困難になる。[208]
    3. 新しい技術やアップデートの速度に人間の学習が追いつかず、人間の判断がボトルネックとなっていた。[210]
  2. AIによる開発プロセスの変革: [213]
    1. AIは、人間が「やりたいこと」を明確にし、言語化すれば、適切なものを選択し、要件に合うものを組み込んでくれる。[213]
    2. 「何を作るか」よりも「どうなりたいか」「なぜやるのか」を深く考え、プロトタイピングとレビューを繰り返すことで、より良いものを迅速に作れるようになる。[215]
    3. 生成AIを活用したエージェントの開発と運用も容易になり、安全な情報管理や人間とAIの協調作業(オーケストレーション)が可能になる。[221]
  3. 経験の少ないエンジニアでも活用可能: [226]
    1. 経験の浅いエンジニアでも、AIの支援により、自然言語でプロトタイピングや設計変更を行い、高品質なものを作りやすくなる。[226]
    2. AIは、画面の目的から改善点を提案し、修正作業まで実行してくれる。[229]
  4. AIとの対話によるストレス軽減: [238]
    1. AIは人間のように質問で質問を返したり、感情的になったりしないため、ストレスなく対話を進められる。[238]
    2. 人間であれば100回同じことを言えば感情的になるが、AIはそうではないため、作業効率が落ちることがない。[264]
    3. AIによる支援で、簡単なものであれば9割以上の効率化が期待できる。[274]

3.2. AIによるセキュリティ強化とレッドチーム・ブルーチームの自動化 [279]

  1. 基盤システムにおける「3S」の重要性: [280]
    1. 基盤システム開発において、情報漏洩や迅速な対応が求められる中で、「3S」は特に重要である。[280]
    2. どこまでセキュリティやスケールを担保する必要があるのか、そのコストとリスクを合意することが重要である。[281]
  2. レッドチーム・ブルーチームの自動化: [286]
    1. セキュリティ対策として、攻撃側(レッドチーム)と防御側(ブルーチーム)に分かれて仮想戦争を行うアプローチがある。[286]
    2. AIを活用することで、攻撃手法の考案や自動テストが可能になり、人間が見落としがちな攻撃パターンも発見できる。[290]
    3. AIエージェントが多数の攻撃者となり、波状攻撃や特定の攻撃を仕掛け、ブルーチームのエージェントがそれを検知するシミュレーションも可能である。[300]

3.3. エンジニアの未来像:「庭師」としての役割と「コンテキスト」の理解 [303]

  1. AI時代のエンジニアに求められる能力: [303]
    1. 生成AIを前提とし、AIに制約や構造、文脈を与え、正しく導き、提案を選択する能力。[303]
    2. 生成AIを活用し、ビジネスプロセスを改革し、事業改革まで踏み込んでいく能力。[305]
  2. 「庭師」に例えられるエンジニアの役割: [307]
    1. 大工が家を建てて完成するのに対し、庭師は庭を継続的にメンテナンスし、四季や環境の変化に合わせて手入れをする。[314]
    2. 庭師は「コンテキスト」(文脈)を読み取り、ビジネスの文脈でシステムを改善し、スケールさせる視点を持つ。[324]
    3. この「庭師」のような発想を持つエンジニアは、自動化の波に淘汰されない。[330]
  3. 好奇心と意思の重要性: [331]
    1. 好奇心や興味がなければ、庭を見ても何も感じず、言われたことしかできない。[331]
    2. 「もうちょっとこうした方が美しい」「ビジネスがスケールする」といった提案ができるエンジニアは重宝される。[336]
    3. これはスキルではなく「意思」であり、今日からでも実践できる。[348]
  4. 「コンテキストグラフ」による支援: [354]
    1. OutSystemsは、エンジニアがコンテキストを理解し活用できるよう、「エンタープライズコンテキストグラフ」という仕組みを提供している。[354]
    2. これは、ソフトウェア開発に必要なあらゆるコンテキスト(制約、データ、システム、要求など)を管理し、外部ツールも活用しながら、より良いソフトウェア開発を支援する。[356]
  5. 「コンテキスト」がビジネスの鍵: [361]
    1. 今後、ビジネス書では「コンテキスト」という言葉が溢れるようになるだろう。[361]
    2. 単体の機能ではなく、コンテキスト全体を網羅的に見ることが重要であり、あらゆるレイヤーでコンテキストの理解が求められる。[364]
    3. ビジネスは「人の幸せ」のために存在するため、そのコンテキストを理解せずに作られたものは受け入れられない。[370]
    4. Web 2.0以降、誰もが情報を発信し、考えるヒントが溢れるようになった。[378]
    5. AIの登場により、考えることをブーストするサポートが得られ、コンテキストに目を向けることは時代の必然となっている。[388]
    6. 昔は哲学者やアーティストといった一部の人が行っていたことが、今や誰もができるようになっている。[390]