Share
Embed
AI時代のソフトウェア開発を考える(2025/07版) / Agentic Software Engineering Findy 2025-07 Edition
AI時代のソフトウェア開発を考える(2025/07版)
開発生産性 Conference 2025
2025年 7月4日(金)
https://dev-productivity-con.findy-code.io/2025
Takuto WADA PRO
July 04, 2025
Transcript
43 slides
-
"*࣌ͷιϑτΣΞ։ൃΛߟ͑Δ ʢ൛ʣ 5BLVUP8"%" +VM !'JOEZ։ൃੜ࢈ੑΧϯϑΝϨϯε !U@XBEB !UXBEB 📷🙆 🙆 !UXBEB
JEUXBEB ։ൃੜ࢈ੑDPO@ fi OEZ SFW -
w $MBVEF.BYϓϥϯͰ$MBVEF$PEF͕ैྔ՝͔ۚΒఆ੍ֹʹͳͬͨͷ͕ഁյత ͩͬͨ w ैྔ՝ۚͩͱʮͳΔ͘ޮతʹɺҰൃͰྑ͍ͷΛʯͱߟ͍͑ͯͨͷ͕ɺ݄ ֹݻఆֹʹͳΔͱʮࢼߦճΛ૿ͯ͠ੵۃతʹ͍͞ͳ͍ͱଛʯʹͳͬͨɻ ৺ཧঢ়ଶ͕େ͖͘มΘΔ͜ͱ͕ɺແࢹͰ͖ͳ͍ޮՌΛੜΜͩ w ίετߏͱΠϯηϯςΟϒΛม͑ɺػతϓϩάϥϛϯάʢΨνϟͱ͍͏ʣ ͷੈքΛͻΒ͍ͨ
w ͜Ε·ͰͷίʔσΟϯάΤʔδΣϯτΑΓࣗྗ͕͔ͳΓߴ͍ w ΤʔδΣϯτΛෳ׆༻ͨ͠ฒྻ։ൃɺ͋·Γʹັྗత͗ͨ͢ w ίετͱԼ͕Γɺίʔυग़ྗྔ૿͑ͨ w Έͳ$MBVEF$PEFʹເதʹͳΓɺΑΓ0VUQVUࢦʹͳͬͨ $MBVEF.BYͷিܸ -
w 7JCF$PEJOHΛ͡Ίͱͨ͠"*ͷ։ൃੜ࢈ੑʹΑΓɺ։ൃن͕େ͖͘ͳΔͱ ൃੜ͢Δॾ͕ɺ͘͝ظؒͰൃੜ͢ΔΑ͏ʹͳͬͨ w ٕज़తෛ࠴ͷߴͳੵΈ্͛ʹΑΔ։ൃεϧʔϓοτԼ w ϨϏϡʔͰ͖ͳ͍ྔͷίʔυ w 6OLOPXO6OLOPXOྖҬͷ֦େ w
૿Ճ͢ΔηΩϡϦςΟϦεΫ w ෦࣭ͷࢿͷଛӹذͲ͏Ҡಈ͔ͨ͠ ͕ͦͯ࣌͠Ճͨ͠ -
w ٕज़తෛ࠴ͷߴͳੵΈ্͛ʹΑΔ։ൃεϧʔϓοτԼ৽ͨͳ՝͔൱ w ʮϨϏϡʔ͕՝ͱͳΔʯ৽ͨͳ՝͔൱ w ʮਖ਼͘͠దͳυΩϡϝϯτΛॻ͚ίʔσΟϯάࠣࡉͳʯ৽ͨͳߟ͔͑ w ൱ιϑτΣΞΤϯδχΞϦϯάͷྺ࢙ʹͣͬͱଘࡏ͢Δ ʢԿุ͔ΒΑΈ͕͑ΔλϑͳκϯϏʣ w
མͪண͍ͯݟΔͱɺͷߏ͋·ΓมΘ͍ͬͯͳ͍ɻಓ۩͕มΘΓɺݦࡏԽ͢Δ ͷ͕͋·Γʹૣ͘ͳ͚ͬͨͩ w ϓϩάϥϛϯάΛӽ͑ͯιϑτΣΞΤϯδχΞϦϯά͕ඞཁʹͳΔλΠϛϯά͕େ ෯ʹૣ·ͬͨ ͷߏมΘΒͣɺѹతʹݦࡏԽ͕ૣ·͚ͬͨͩ -
w ʮ(PPHMF͔ͩΒͦ͏ͳΜͰ͠ΐʯͱࢥ͍ͬͯͨنͷॾ͕ࣗͨͪͷͱ͜ΖʹظؒͰ߱ Γ͙Α͏ʹͳͬͨ w ιϑτΣΞΤϯδχΞϦϯά࣌ؒͰੵͨ͠ϓϩάϥϛϯά w ελΠϧΨΠυͱϧʔϧ w ίʔυϨϏϡʔ w
υΩϡϝϯςʔγϣϯ w ςεταΠζͱςετμϒϧ w ϞϊϨϙ w แׅతߏཧ w ܧଓతςεςΟϯά w ܧଓతΠϯςάϨʔγϣϯ w ܧଓతσϦόϦʔ ιϑτΣΞΤϯδχΞϦϯά࣌ؒͰੵͨ͠ϓϩάϥϛϯά IUUQTXXXPSFJMMZDPKQCPPLT -
"*ͱͷڠۀͷͭͷϞʔυ w "*ͱ w "*ͱର͠ͳ͕Βྻ։ൃ w ίʔυΛॻ͘εϐʔυʢʮ"*ʹҕୗʯʹൺͯʣ͍ w ίϯτϩʔϧঢ়گѲͷ߹͍͕ߴ͍ w
USBEJUJPOBMܾఆతͰ͋ΔͷͷɺਓྗͰ͋ΔͨΊεέʔϧ͠ͳ͍ w "*ʹҕୗ w ࣗ͢Δ"*ͨͪʹͤͯฒྻ։ൃ w ίʔυ͕ੜ͞ΕΔεϐʔυѹతʹ͍ w ίϯτϩʔϧঢ়گѲͷ߹͍͕͘ɺϨϏϡʔ͕՝ͱͳΔ w FNFSHJOHඇܾఆతͰ݁Ռ͕֬తͰ͋ΔͷͷɺඇৗʹΑ͘εέʔϧ͢Δ IUUQTCVJMEFSTCPYDPSQTBOTBODPNFOUSZ -
ͷύλʔϯͱҕୗͷύλʔϯ w ʮ"*ͱʯͷύλʔϯ w ڭशं w ॿख੮ w
w ࠜෛ͚͠ͳ͍ٞ૬ख w ϦαʔνΞγελϯτ w ൷తϨϏϡΞʔ w ӡస੮ʢΦʔΨχοΫɾίʔσΟϯάʣ w ʮ"*ʹҕୗʯͷύλʔϯ w খਓ͞Μʢͷ͏ͪʹͬͯ͘ΕΔʣ w ϑΝϯωϧ w ίϯϖ -
w ର--.ͱͷٞɺ--.͔Βͷ࣭͔ΒઃܭΛੜΉ w ੜ·ΕͨઃܭΛϓϨʔϯςΩετͷυΩϡϝϯτʢ%FTJHO%PD "%3ʣʹอଘ w ઃܭॻͷϨϏϡʔΛߦ͍ɺඞཁͰ͋ΕٞʹΔ w ઃܭॻ͔ΒλεΫϦετʢNBSLEPXOʣΛੜ͠อଘ w
λεΫͷϨϏϡʔΛߦ͍ɺඞཁͰ͋ΕٞʹΔ w λεΫϦετ͔ΒλεΫΛͭબͼɺαϒλεΫʹׂ w αϒλεΫͷॱ൪Λ5%%ͷϫʔΫϑϩʔʹ͋Θͤͯௐ w λεΫຖʹίʔσΟϯάΤʔδΣϯτͷηογϣϯΛ্ཱͪ͛ͯʢ͋Δ͍DPNQBDUͯ͠ʣ࣮ w λεΫຖʹ(JUͷϒϥϯνΛ࡞ʢμϝͩͬͨΒϒϥϯνΛഇغ͢Δʣ w 5%%ͷϫʔΫϑϩʔΛࢦఆ͠ɺϨϏϡʔෆೳͳྔͷίʔυ͕Ұʹੜ͞ΕΔ͜ͱΛ͙ w 5%%ͷεςοϓຖʹ$POWFOUJPOBM$PNNJUTͷϧʔϧͰίϛοτͤ͞Δ w ϚʔδલʹશମϨϏϡʔɻඞཁͰ͋Εਓ͕ؒख͠͠ɺϒϥϯνΛϚʔδ w ֶͼΛөͤ͞ΔͨΊʹ࠶ͼ--.ͱٞ͢Δ యܕతͳʮ"*ͱʯͷύλʔϯʢॳՆ࣌ʣ -
πʔϧϥΠϒϥϦ࡞ऀ--.ੑΛߟ͑Δ࣌ AssertionError [ERR_ASSERTION]: # Human-readable format: assert(scoreOf(rollsOf(frames)) === 132) |
| | | | | | | | 132 | | | false | | [[1,4],[4,5],[6,4],[5,5],[10],[0,1],[7,3],[6,4],[10],[2,8,6]] | [1,4,4,5,6,4,5,5,10,0,1,7,3,6,4,10,2,8,6] 133 # AI-readable format: Assertion failed: assert(scoreOf(rollsOf(frames)) === 132) === arg:0 === Step 1: `frames` => [[1,4],[4,5],[6,4],[5,5],[10],[0,1],[7,3],[6,4],[10],[2,8,6]] Step 2: `rollsOf(frames)` => [1,4,4,5,6,4,5,5,10,0,1,7,3,6,4,10,2,8,6] Step 3: `scoreOf(rollsOf(frames))` => 133 Step 4: `132` => 132 Step 5: `scoreOf(rollsOf(frames)) === 132` => false IUUQTHJUIVCDPNUXBEBQPXFSBTTFSUNPOPSFQPQVMM -
w దԠؔɺΨʔυϨʔϧٕज़ͷච಄ w ࣗಈςετͷతʢ൛ʣ w ৴པੑͷߴ͍࣮ߦ݁Ռʹ͍࣌ؒͰ౸ୡ͢Δঢ়ଶΛอͭ͜ͱͰɺ։ൃऀʹࠜ ڌ͋Δࣗ৴Λ༩͑ɺιϑτΣΞͷΛ࣋ଓՄೳʹ͢Δ͜ͱ w ࣗಈςετͷతʢ൛ʣ w
৴པੑͷߴ͍࣮ߦ݁Ռʹ͍࣌ؒͰ౸ୡ͢Δঢ়ଶΛอͭ͜ͱͰɺ"*ʹࠜڌ ͋Δஅج४Λ༩͑ɺιϑτΣΞͷΛ࣋ଓՄೳʹ͢Δ͜ͱ ࣗಈςετͷॏཁੑΑΓߴ·Δ -
w ϞϊϨϙ͕༗ར͔ w ։ൃʹؔΘΔશͯΛϦϙδτϦʹೖΕΔ w υΩϡϝϯτϓϨʔϯςΩετͰɺίʔυͷۙ͘ʹஔ͔ͳ͍ͱΔ w ʮ"*ҕୗʯ"*ͷ͞Λࡴ͞ͳ͍ඇಉظฒྻ։ൃ w ϚΠΫϩϚωδϝϯτͰ͖ͳ͍ͷͰɺޙ͔Βͷ͕ࠪେࣄʹͳΔ
w HJUʹΑΔมߋτϨʔαϏϦςΟ֬อ w $POWFOUJPOBM$PNNJUT w ,FFQBDIBOHFMPH แׅతͳߏཧ IUUQTXXXDPOWFOUJPOBMDPNNJUTPSHKBW -
w όάθϩͷθϩϦεΫ৴ڼ͔ΒΕΔ w ֬৴ɺѲͷ߹͍Λམͱͯ͠։ൃεϧʔϓοτΛ͋͛Δ w ιϑτΣΞ։ൃ;ͨͨͼ6OLOPXO6OLOPXOྖҬʹΖ͏ͱ͍ͯ͠Δ w ,OPXO6OLOPXO6OLOPXO6OLOPXOͱઓ͏ثΛ૿͢ɻ1SPQFSUZ CBTFE5FTUJOHɺΦϒβʔόϏϦςΟͷ্Ͱઓ͏ .5#'͔Β.553
IUUQTXXXMBNCEBOPUFDPNQSPEVDUTQSPQFS IUUQTXXXPSFJMMZDPKQCPPLT -
w EJ ff ࠷খԽόΠΞε͕δϫδϫͱγεςϜͷΤϯτϩϐʔΛ্͛Δ w ʰ5JEZ'JSTU ʱͷݟΛ׆༻͢Δ w #FIBWJPS$IBOHFͱ4USVDUVSF$IBOHFΛ͚Δ w
#FIBWJPS$IBOHFͷϨϏϡʔίετͱ4USVDUVSF$IBOHFͷϨϏϡʔίε τҟͳΔ w #FIBWJPS$IBOHFෆՄٯมߋɻ͖ͪΜͱϨϏϡʔ͢Δ w 4USVDUVSF$IBOHFՄٯมߋɻ ιϑτΣΞΤϯδχΞϦϯάͷ؍ͰΈԽͯ͠ ϨϏϡʔίετΛʹ͚͍ۙͮͨ ϨϏϡʔෛՙܰݮͷ IUUQTXXXPSFJMMZDPKQCPPLT -
w զʑ࠷ॳ͔Βਖ਼͍͠ઃܭΛ͢Δ͜ͱͰ͖ͳ͍ w ίʔυΛॻ͖࢝Ίɺͦͷͱ͖ॳΊͯΛཧղ͢Δ͜ͱ͔Γ w ࣮͔ΒઃܭͷϑΟʔυόοΫ͕ඞͣ͋Δ w Θ͔Βͳ͍ͷϨϏϡʔͰ͖ͳ͍ w ͋Δͱ͖ਖ਼͍͠ઃܭͩͬͨͷɺ͕࣌ؒܦͭͱਖ਼͘͠ͳ͘ͳΔ
w γεςϜઃܭͱɺ͋Δ࣌ͷ߹తతͳઃܭ͔Βɺ࣍ͷ࣌ͷ߹తతͳઃܭ ·Ͱͷঢ়ଶભҠɺͦͷҙࢥܾఆͷ࿈ଓͰ͋Δ ਖ਼ʹݱ࣮ΛݟͭΊΑ͏ -
w ʮ"*ࣝͷସͰͳ͘૿෯ثʯCZ5PNPIJTB5BLBPLB͞Μ w ʮߴͳ"*ࣗͷڸΈ͍ͨͳͷͰɺ"*͔ΒҾ͖ग़ͤΔੑೳɺࣗͷೳྗʹ ͦͷ··ൺྫ͢ΔʯCZNJ[DIJ͞Μ w ߴͳ"*৫ͷڸΈ͍ͨͳͷͰɺ"*͔ΒҾ͖ग़ͤΔੑೳɺ৫ͷೳྗ ʹͦͷ··ൺྫ͢Δ w ࿑ྗ֎Ͱ͖Δ͕ɺೳྗ֎Ͱ͖ͳ͍
w ݸਓͱ৫͕ڞʹೳྗΛ্͛ͳ͚ΕͳΒͳ͍ ݸਓͱ৫͕ೳྗΛ্͛ͳ͚ΕͳΒͳ͍ -
w 0VUQVUΛग़ͨ͢Ί͚ͩͰͳ͘ɺࣗͨͪͷೳྗΛ্͛ΔͨΊʹ"*Λ͏ w ઃܭͷόσΟͱͯ͠͏ w ൷తϨϏϡΞʔͱͯ͠͏ w ࠜෛ͚͠ͳ͍ٞ૬खͱͯ͠͏ w ৽͍͠ݴޠΛֶͿͨΊʹ͏
w ͋͑ͯͷΦʔΨχοΫɾίʔσΟϯάྑ͍ w Ξτϓοτ࠷খɺϑΟʔυόοΫ࠷େʹͳΔ ೳྗ্ͷͨΊʹ"*Λ͏ -
w ݁ہͷͱ͜ΖʮDPEFBJ EPDT ʯ΄ͱΜͲͷ߹ΓཱͭͷͩΖ͏͔ʁ w طଘίʔυΛ͢ΑΓɺυΩϡϝϯτ͔Βੜ͢͠ํ͕͔ͭ͘ྑ͘ͳ ΔͷͩΖ͏͔ʁ w ݁ہͷͱ͜Ζந͕Ұஈ্͕ΔͷͩΖ͏͔ʁίʔυΞηϯϒϥ૬ʹ ͳΓɺࣗવݴޠ͕ίʔυ૬ʹͳΔͷͩΖ͏͔ʁ
w Ξηϯϒϥ͔֬ʹҰํ௨ߦͩ w ͱ͢Δͱʮকདྷͷ"*͕ղܾͯ͘͠ΕΔͣʯͱߟ͕͑ͪ w ίʔσΟϯάڝ૪ྗΛࣦ͏ͷͩΖ͏͔ʁ w զʑίʔσΟϯάΛΊΔ͖ͳͷͩΖ͏͔ʁ ʮṌ͚Δʯ͖͔൱͔ -
w զʑ͍·ੜ"*ͷޫʹΛম͔ΕͯࢹڱࡥΛى͜͠ɺόΠΞεͷԼʹ͍Δ w ʰܾఆྗਖ਼ղΛಋͭ͘ͷϓϩηεʱΛಡΉͱόΠΞεͱͷઓ͍ํ͕Θ͔Δ w ʮʙ͖͔൱͔ʯͱ͍͏͍ͷཱͯํࣦഊʹಋ͔Ε͍͢ w XIFUIFSPSOPUͰͳ͘DPNQBSFBOEDPOUSBTU w 903Ͱͳ͘"/%
w ܾఆΛԆ͢Εྑ͍ɻબࢶΛ͛Εྑ͍ɻ Ṍ͚ΔͷͰͳ͘ʮ྆ʹΒΈʯͰߦ͚ྑ͍ w ෆ࣮֬ͳঢ়گԼʹ͓͍ͯબࢶΛڱΊΔͷةݥͰ͔͠ͳ͍ ʮʙ͖͔൱͔ʯͱ͍͏͍ͷཱͯํޡ͍ͬͯΔ IUUQTXXXBNB[PODPKQEQ#)4*1 -
w "*Ͱ͕࣌Ճ͕ͨ͠ɺͷߏɺࠜຊతݪҼಉ͡ɻྺ࢙͔ΒֶΜͩݟ͕ࠓͦ͜ॏཁ w ϓϩάϥϛϯά͔ΒιϑτΣΞΤϯδχΞϦϯάɻ7JCF$PEJOH͔Β"HFOUJD$PEJOH w Ϧιʔεޮॏࢹͷʮҕୗʯͱɺϑϩʔޮॏࢹͷʮʯɻঢ়گʹԠͯ͡దͳϞʔυΛબ w ·͍͠ঢ়ଶΛએݴతʹఆٛ͠ɺධՁؔΛ༩͑ɺ"*͕ࣗతʹऩଋ͢ΔΈ͕ࣗಇԽʹॏཁ w "*͔ΒҾ͖ग़ͤΔੑೳɺݸਓͱ৫ͷೳྗʹൺྫ͢Δɻೳྗ্ͷࢿ͕ෆՄܽ
w ݱ࣮Λࢹ͢Δɻ࠷ॳ͔Βਖ਼͍͠ઃܭͰ͖ͳ͍ɻΘ͔Βͳ͍ͷϨϏϡʔͰ͖ͳ͍ɻ͜ͷલఏ ͰઃܭϓϩηεΛΈཱͯΔ w ʮṌ͚ΔʯͷͰͳ͘ʮ྆ʹΒΈʯɻ903Ͱͳ͘"/%ɻܾఆΛԆ͠ɺબࢶΛ͛ɺՄೳੑΛ ฒͯखΛಈ͔ͯ͠ධՁ͢Δ w զʑظతޮՌΛաେධՁ͠ɺظతޮՌΛաখධՁ͕ͪ͠ɻੈքࢥͬͨΑΓΏͬ͘Γɺ͕ͩ ࣮֬ʹมΘΔ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠