AI時代のアジャイル開発(XP祭り2024版)
Agile Development in the AI Era in XPJUG
発表: XP祭り
概要
XP祭り2024にて。
プロフィールやお問い合わせはこちらからどうぞ!
スライドの内容
- AI時代のアジャイル開発 及部敬雄 (@TAKAKING22) 2024/9/28 XP祭り2024
- かつてエクストリームだったものが、 弾けて混ざりかけらとなって、 今の我々の血肉になっている Photo by Richard R on Unsplash
- “エクストリームプログラミング(XP)はソーシャルチェンジである” - 「エクストリームプログラミング」 第1章 -
- 最近あったエクストリームな変化といえば?
- AIはもっと前から存在していた
- AIの歴史 1943年、ニューラルネットワーク研究発祥 1956年、ダートマス会議にて、 Artificial Intelligence (AI)という言葉が生まれる 1950年代後半ʙ1970年代、第一次AIブーム 1980年代ʙ1990年代、第二次AIブーム 2000年代ʙ現在、第三次AIブーム
- AIが登場する主なエンタメ作品 スターウォーズ マトリックス A.I. アイ,ロボット 攻殻機動隊 PSYCHO-PASS サイコパス
- Photo by BoliviaInteligente on Unsplash
- AI(未来)が急に現実になった Photo by Igor Omilaev on Unsplash
- 一方その頃、ソフトウェア開発では…
- ソフトウェア開発 技術の進化 ビジネスシーンの変化 デジタルトランスフォーメーション COVID-19
- ソフトウェア開発 技術の進化 ビジネスシーンの変化 デジタルトランスフォーメーション COVID-19 アジャイル開発が誕生して約23年
- 今日のお話 もともと変化が複雑で激しいと言われていた時代に、 AIというさらに大きな変化が飛び込んできた ソフトウェア開発ではさまざまの変化が起きる中で、 アジャイル開発が誕生してから約23年間が経過した これからはじまるAI時代に、 ソフトウェア開発やアジャイル開発はどうなるのか
- AI時代のアジャイル開発 及部敬雄 (@TAKAKING22) 2024/9/28
- TAKAKING22 株式会社ホロラボ Group Lead AGILE-MONSTER.COM アジャイルコーチ Silver Bullet Club所属 及部敬雄
- 個人やチームや組織を支援する、アジャイルコーチをしています。 現在進行で自分自身もエンジニアとしてプロダクト開発に取り組んでいます。 そこで得た経験知をもとにさまざまなチームや組織に貢献する活動をしています。 チームづくり、アジャイル開発、プロダクト開発が大好きです。 ぜひお気軽にお声がけください!
- 本題に入る前に 未来はどうなるかわからないが、妄想することはできる 指示されなくても勝手に妄想することは人間の強み 妄想はいいぞ!
- アジェンダ アジャイル開発とは AIとソフトウェア開発 AI時代のアジャイル開発 AI時代に個人としてどうふるまうか
- アジェンダ アジャイル開発とは AIとソフトウェア開発 AI時代のアジャイル開発 AI時代に個人としてどうふるまうか
- アジャイル開発 Photo by Austin Distel on Unsplash
- 日本語で読めるアジャイル開発関連書籍
- アジャイル開発誕生に至る時代背景 1960年前後にソフトウェア開発という仕事が誕生した 当時は職人芸的な開発
- ウォーターフォール誕生 1970年頃、ウォーターフォール・モデル誕生 職人芸的な開発から工業製品としての開発方法へ 工程に分けて進捗を管理する 徹底的に「分析」し、慎重に「計画」して、「実装」する
- ところが・・・ 科学的管理法から強く影響を受けている 生産とソフトウェア開発は違うことが多い ソフトウェア開発は年々複雑で変化が大きくなっていく
- 2001年、スノーバード
- XP XP XP XP XP Scrum Scrum Scrum ASD FDD
- XP XP XP XP XP Scrum Scrum Scrum ASD FDD
- アジャイルソフトウェア開発宣言の署名者 世界中の軽量ソフトウェア開発手法において名声のある人たち それぞれが共通して大切だと思っていることをまとめたものが アジャイルソフトウェア開発宣言
- ウォーターフォールに対するアンチテーゼ Photo by Robert Lukeman on Unsplash
- 作業が終わり、みんなは普段の仕事・活動・生活に戻っていっ た。誰もが物語はそこで終わりだと思っていた。 その後に非常に大きな支持を集めることになるとは、誰も想 像していなかった。 Clean Agile 基本に立ち戻れ/Robert C. Martin 「軽量級プロセスのサミット」に参加したい人が本当にいる
- 世界中のソフトウェア開発者が熱狂した Photo by Spencer Davis on Unsplash
- アジャイル開発の正体 アジャイル開発はムーブメントだと捉えてみる 定義をしたり、対立構造を考えることにそんなに意味はない あたりまえを打ち壊して変化しようとする反発エネルギー 同じ想いをもった人たちが団結して興す社会的運動
- 「DX白書2023」独立行政法人情報処理推進機構 22.9% 53.9%
- 「アーリーアダプターとは?獲得方法とイノベーター理論をわかりやすく解説」(https://go.chatwork.com/ja/column/efficient/efficient-351.html) 日本 22.9% アメリカ 53.9%
- 熱狂 説得 変革 反骨心 真面目 巻き込み 適応
- アジェンダ アジャイル開発とは AIとソフトウェア開発 AI時代のアジャイル開発 AI時代に個人としてどうふるまうか
- 生成AIの主なサービス
- 生成AIによってソフトウェア開発はどう変わるのか Photo by Nihon Graphy on Unsplash
- 開発者がコードを書く支援 GitHub Copilotのユーザー数は2023年6月時点で934,533人 ※2024年2月時点で130万人を突破 Copilotユーザーはツールに慣れるにつれ、生産性は少し落ちてから大幅に上昇し、 経験の浅いユーザーが最も恩恵を受けている(32%の生産性向上) stack overflowへのアクセス数はLLMプロダクト登場以降急激に減少している https://www.stateof.ai/2023-report-launch
- AIネイティブ開発 GitHub Copilot Patters & Exercises(旧AI Native Development Guide) コメントからコードを生成する
- ローコード・ノーコードツールの進化 これまでのローコード・ノーコードツールの課題は自由度や拡張性 AIを活用することで対応できるシステムの選択肢が広がる 開発者ではなくても開発保守運用できる機会が増える https://www.mendix.com/platform/ai/#MendixMLKit
- 開発以外の工程での生成AI活用 要件定義 顧客からの要求や仕様書を自然言語で解析し、要件を抽出する 設計 様々な過去の設計情報をもとに最適なアーキテクチャや設計パタンを提案する テスト 仕様やコードからテストケースを自動的に作成し、網羅的なテストを実施する ソースコードを書きながら自動テストを行い、リアルタイムにフィードバックをする 保守 ログやパフォーマンスデータを解析し、障害の予兆を検知して事前に対策する
- 生成AIからAIエージェントへ 生成AIの課題はプロンプトを適切に書かないと使えないこと 仕事ができる人は生成AIを活用して仕事をより効率的に、 仕事ができない人は生成AIを活用できない(二極化) AIエージェントは、人がいちいち指示をしなくても、 様々なツールを活用して目標を達成する仕組みのこと AIの使い方はAIエージェントに任せる
- AIエージェントについておすすめのスライド https://speakerdeck.com/masahiro_nishimi/aiezientogabian-erusohutoueanoparadaimu
- 開発者を代替するAIエンジニア 2024年3月12日にCognition社が「Devin」を発表 世界初のAIエンジニア 支援型ではなく自律型で実際にタスクをこなすことができる 仕様変更の対応、バグの発見と修正、デバッグ、デプロイ… 2024年9月28日現在でWaiting List申請受付中 https://www.youtube.com/watch?v=fjHtjT7GO1c
- これまでのソフトウェアづくり ソフトウェア ユーザー 求めているもの (情報、商品、体験…) ユーザーとユーザーが求めているもの(情報、商品、体験)をどうつなげるか つなげ方を試行錯誤するところがソフトウェア開発の本丸 インプット→仕組み→アウトプット 仕組み=検索、レコメンド、アルゴリズム、ユーザーインタフェース…
- 生成AIの登場によって… AIでいい感じによろ!
- AI時代のソフトウェアづくり ソフトウェア ユーザー 求めているもの (情報、商品、体験…) つなげ方の一部あるいは大部分を生成AIに任せるように パーソナライズの進化と深化 多様なインプットを受け取ることができる ユーザーが求めるアウトプット方式を選ぶことができる 「予め用意したものを提供する」から「必要なものがリアルタイムで生成される」へ
- もちろんまだまだ課題は存在する 間違ったことを正しいことのように言うことがある(ハルシネ ーション) 苦手とする作業が存在する 高い精度を求める作業など 同じインプットをしても違うアウトプットをすることがある テストが大変
- 精度はどんどん向上していく Photo by Eugene Zhyvchik on Unsplash
- 変化は既に起きているし加速していく Photo by CHUTTERSNAP on Unsplash
- その中でいつまで今までと同じような ソフトウェア開発をしていてよいのだろうか Photo by Krystian Piątek on Unsplash
- アジェンダ アジャイル開発とは AIとソフトウェア開発 AI時代のアジャイル開発 AI時代に個人としてどうふるまうか
- 「開発プロセス」や「人」も変化する対象 Photo by Gift Habeshaw on Unsplash
- アジャイル開発における開発サイクル “スプリントは1ヶ月以内の決まった長さ”(スクラムガイド2020) コミュニケーションをするタイミングをつくる ex. スプリントプランニング、スプリントレビュー、デイリースクラム… それ以外の時間で開発をする ίϛϡχέʔγϣϯ ։ൃ .PO 5VF
- 開発サイクルが短くなる AIがコーディングを担うようになると、開発自体にはそれほど時間がかからなくなる その分、なにをつくるのかの検討、つくったものの評価(レビュー)の時間と回数が増える 開発サイクルが短くなり、1日スプリントが基本になっていく スプリント自体が不要になり、カンバンなどでフロー制御したくなるかもしれない .PO 5VF 8FE 5IV ‘SJ
- アジャイル開発におけるチーム 小規模で自己組織化されたクロスファンクショナルチーム チームメンバーがお互いに補完するさまざまな知識やスキルを持っている さまざまな変化に対応し、チームで多様な問題を解決できるようにする
- 人間+AIのチームへ AIは多様なドメイン知識、プログラミングスキル、設計スキルをもっている 知識の総量は人間よりもはるかに大きい(今後ますます大きくなっていく) もちろん人間にしかできない領域も存在する 人間のみのチーム 人間+AIのチーム AI
- より小さなチーム、より多くのチームへ 人間+AIのチームであれば、少ない人数でも経験やスキルを補完できるようになる 10人以下(スクラムガイド2020)がよいとされていたチームサイズがより小さくなる 小さなチームが増えるので、これまでよりも多くのチームでコラボレーションをしながら 開発を進めるシーンが増えるかもしれない 6人 X 2チーム (1ʙ3人+AI) X
- チームの役割 開発チームは顧客やプロダクトオーナーと会話をし、何を開発する必要があるのか、 なぜ必要なのかを理解し、それを実現するためにコードを書いてソフトウェアを開発する このサイクルを反復的に行い、ソフトウェアを実現させていく ソフトウェア 顧客や プロダクトオーナー 開発チーム
- チームメンバーとしてのAI AIはコードにアクセスすることができるようになり、開発やレビューをする 開発者からのリクエストに応じて仕事を完遂することができる 顧客やプロダクトオーナーと直接コミュニケーションをして、 ユーザー調査や競合分析を手伝い、壁打ち相手になる 要求をヒアリングし、要件や設計に変換して開発者に伝える ソフトウェア 顧客や プロダクトオーナー 開発チーム
- 人間とAIの翻訳者としての開発者 AIが高度になっていくことで、ほとんどの作業を実行できるようになる それが進んでいくと、やがて人間が作業するよりも高速かつ正確になる (おまけにAIは人間のように疲れないので常時そして並列で働くことができる) 開発者の役割は、顧客やプロダクトオーナーとAIの間に入り、 ソフトウェアの知識をベースにコミュニケーションを補助したり調整することがメインになる ソフトウェア 顧客や プロダクトオーナー 開発者
- やがて開発チームは存在しなくなる? AIの高度化が進み、ソフトウェアの知識をベースにした翻訳すらも不要になると、 AIだけでソフトウェア開発の仕事が完結するようになる 顧客・プロダクトオーナー・開発者といったロールでの区分けは不要になり、 開発チームは存在しなくなる ソフトウェア 人間 AI
- 「コンピュータ」の語源 “「コンピュータ」という用語は、17世紀初頭から使用されており(最初の文献での言及は1613 年に遡る)、電子コンピュータが商業的に利用可能になる前に数学的計算を行う人、「計算する 人」を意味していた”(wikipedia) かつでは「コンピュータ」という職業が存在したが、とっくに存在しなくなっている By NACA (NASA) - Dryden
- AI時代のアジャイル開発 本当にこうなるかはわからない しかし、これだけ大きく変化している中で、 自分たちの仕事や開発プロセスだけが変化しないはずがない
- かつてエクストリームだったものが、 弾けて混ざりかけらとなって、 今の我々の血肉になっている Photo by Richard R on Unsplash
- なるようになるさ エンジニアという職業がなくなるとか、 アジャイル開発が必要なくなるとか、 そういう二元論的な受け止め方をしなくてもよい これまでの経験知が弾けて混ざりかけらとなって、 新しい技術と組み合わさってよりよい仕事が生成される
- アジェンダ アジャイル開発とは AIとソフトウェア開発 AI時代のアジャイル開発 AI時代に個人としてどうふるまうか
- 1970年代 ウォーターフォール・モデル誕生 2001年 アジャイルソフトウェア開発宣言 2024年 イマココ
- 1970年代 ウォーターフォール・モデル誕生 2001年 アジャイルソフトウェア開発宣言 2030年 ??? 1970年代 ウォーターフォール・モデル誕生 2001年 アジャイルソフトウェア開発宣言 2024年 イマココ 30年 30年
- 1970年代 ウォーターフォール・モデル誕生 2001年 アジャイルソフトウェア開発宣言 2030年 ??? 1970年代 ウォーターフォール・モデル誕生 2001年 アジャイルソフトウェア開発宣言 2024年 イマココ 30年 30年
- 1970年代 ウォーターフォール・モデル誕生 2001年 アジャイルソフトウェア開発宣言 2030年 ??? 1970年代 ウォーターフォール・モデル誕生 2001年 アジャイルソフトウェア開発宣言 2024年 イマココ 30年 30年
- Unlearn(学びほぐし) Photo by Anastasia Zhenina on Unsplash
- “No different! Only different in your mind. You must unlearn
- Unlearn 固定観念を捨てる これまでの経験やスキルが無駄になるわけではない これまでの学びをほぐして、再度編み直す
- AI時代に個人としてどのようにふるまうか 「ソフトウェア開発」も「開発者」も「アジャイル開発」も 今あるものがかたちを変えたりなくなっていくかもしれない わからない不安のまま置いておくよりも、自ら飛び込んでみて やってみたほうがストレスは小さくなる 目の前の現実を受け入れ、不要なこだわりは捨てて、 学びほぐしをする(Unlearn)
- お祭りの外から文句を言ってるよりも お祭りの中に飛び込んだほうがきっと楽しい Photo by Danny Howe on Unsplash
- We are uncovering better ways of developing software
- “XPとは、あなたがあなたの理想について考え、 理想にもとづいて行動するための方法だ” - 「エクストリームプログラミング」 -
- @TAKAKING22 及部 敬雄 https://agile-monster.com/ Next EXTREME starts with you. 現役のアジャイル開発実践者による