Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CircleCI によるソフトウェア開発の品質向上と効率化の実現
Search
Masahiko Funaki(舟木 将彦)
January 18, 2024
Technology
0
280
CircleCI によるソフトウェア開発の品質向上と効率化の実現
2024/01/18(木)に Japan IT Week 関西にてお話しさせていただいた「CircleCI によるソフトウェア開発の品質向上と効率化の実現」のスライドです。
Masahiko Funaki(舟木 将彦)
January 18, 2024
Tweet
Share
More Decks by Masahiko Funaki(舟木 将彦)
See All by Masahiko Funaki(舟木 将彦)
mabl MCP x 生成AIによる開発・テスト自動化の未来 - コンテクスト駆動型のAI体験 -
mfunaki
1
51
テスト自動化がさらに加速!生成AIが作成・修正・分析まで行う『エージェント型テスト』の全貌
mfunaki
1
160
Playwrightとmablのパワフルな統合: 効率的なテスト自動化を実現する新機能を学ぶ!
mfunaki
1
210
AIで進化するソフトウェアテスト:mablの最新生成AI機能でQAを加速!
mfunaki
1
270
Harness the Power of Advanced LLM and CI/CD Practices
mfunaki
0
390
CircleCI と Argo Rollouts で 実現する Kubernetes 上の プログレッシブデリバリー
mfunaki
0
190
はじめてのCircleCI
mfunaki
0
73
CircleCIでChatGPTにエラーの解説を頼んでみた
mfunaki
0
640
自動化→部品化すると社内開発は楽しくなる
mfunaki
0
73
Other Decks in Technology
See All in Technology
OSSで50の競合と戦うためにやったこと
yamadashy
3
1k
IoTLT@ストラタシスジャパン_20251021
norioikedo
0
140
CNCFの視点で捉えるPlatform Engineering - 最新動向と展望 / Platform Engineering from the CNCF Perspective
hhiroshell
0
140
Okta Identity Governanceで実現する最小権限の原則
demaecan
0
160
あなたの知らない Linuxカーネル脆弱性の世界
recruitengineers
PRO
3
160
個人でデジタル庁の デザインシステムをVue.jsで 作っている話
nishiharatsubasa
3
5.2k
AI AgentをLangflowでサクッと作って、1日働かせてみた!
yano13
1
160
Azure Well-Architected Framework入門
tomokusaba
1
140
ストレージエンジニアの仕事と、近年の計算機について / 第58回 情報科学若手の会
pfn
PRO
3
870
東京大学「Agile-X」のFPGA AIデザインハッカソンを制したソニーのAI最適化
sony
0
140
AI連携の新常識! 話題のMCPをはじめて学ぶ!
makoakiba
0
140
RemoteFunctionを使ったコロケーション
mkazutaka
1
130
Featured
See All Featured
Gamification - CAS2011
davidbonilla
81
5.5k
Agile that works and the tools we love
rasmusluckow
331
21k
Music & Morning Musume
bryan
46
6.9k
Designing Experiences People Love
moore
142
24k
RailsConf 2023
tenderlove
30
1.3k
Thoughts on Productivity
jonyablonski
70
4.9k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.7k
Practical Orchestrator
shlominoach
190
11k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
658
61k
Transcript
1 CircleCI による ソフトウェア開発の品質向上と 効率化の実現 2024/01/18(⽊) Japan IT Week 関⻄
⾈⽊ 将彦 (@mfunaki) CircleCI - Principal Developer Advocate
2 Agenda ソフトウェア開発の⽣産性向上 DevOps とアジャイル CircleCI の紹介 デモ: 開発の⾃動化+⾒える化 CircleCI
の導⼊事例 1 2 3 4 5
3 ソフトウェア開発の⽣産性向上 どんな業種・業態であっても、 ソフトウェア開発は、競争⼒をアップし、 他社との差別化、顧客満⾜度や信頼を⾼める上で重要 しかし、労働⼈⼝は減少し、技術は⽇々進化 する中で「がんばり」だけでは開発はできない 開発⽣産性の向上が必要 • 開発⽣産性が向上すれば、顧客の欲しい機能を他社よりも
早く提供できる →さらに多くの顧客を獲得できる →エンジニアにとっても魅⼒ある働き場所に • ⽣産性が向上すれば、品質向上のための取り組みや、 新たな技術を学ぶための取り組みに時間を振り向けられる
4 開発⽣産性の向上には何が必要か ソフトウェアの開発⽣産性を向上するには、 § 開発⼯程の無駄の排除 § 開発スキルの向上 § ⼯程の優先順位の明確化 が必要であり、
§ 開発⽣産性を定量的に把握するために 指標を活⽤ することが⼤事
5 DevOps とアジャイル プラン コード ビルド テスト リリー ス デプ
ロイ 運用 監視 継続的インテグレーション(CI) 継続的 デプロイ (CD) 自動化できない 非正常系は 自動化できない 自動化できる 1. 自動化により「担当者がいない/忙しい」に 関わらず、コードの変更に問題がないかをテストし、 最新コードをすぐに反映可能 2. 短い周期で機能を開発+提供し、早くフィードバック が得られるので、注力する優先順位づけが可能(誰 も求めていない機能は作らない) 3. コードの更新間隔やテスト結果、リリース状況と いった開発生産性に関わる指標が自動的に取得 でき、開発の現況を数字で把握、追跡可能
6 CircleCI の紹介 • CircleCI はソフトウェア開発の⾃動化と ⾒える化を実現するプラットフォーム • CircleCI を使うことで、DevOps
や アジャイルの導⼊を徐々に進めることが可能 • CircleCI を導⼊した企業は、 ・開発時間の短縮と品質の向上 ・開発の現況を⾒える化 ・開発ノウハウの共有(再利⽤可能な部品化)と などの効果を得ている
7 デモ: CircleCI の導⼊ https://circleci.com/ja/pricing/
8
9 デモ: 開発時間の短縮と品質の向上 並列化により自分のPC上よりも早くテストが完了する 並列化の割り振り方法 ・過去のテスト所要時間をもとに均等化(賢い) ・ファイルサイズの合計を均等化(経験則) ・ファイル名のアルファベット順(実行順を制御可能)
10 デモ: 開発全体の現況を⾒える化 スループット ⼀⽇のビルド回数 =コードの修正反映 実⾏時間 ⾃動化プロセスの 実⾏時間 ⻑すぎ:
開発テンポ悪 短すぎ: ⾃動化不⾜ 復旧時間 ビルド失敗時に戻す、 ⼜は直して動くように なるまでの時間 成功率 修正したコードを反映 する際の成功率
11 デモ: テストの現況を⾒える化 1ワークフローあたり の平均テスト実⾏数 Flakyな(結果が不安 定な)テスト検出数 失敗した テスト数 (P95の中で)最も遅
いテストの所要時間 グラフをクリックすることで、 実際にどのテストが成功/失敗 して、時間がかかっているのか 簡単に参照可能
12 デモ: 開発ノウハウの共有(再利⽤可能な部品化) 命名規約: 組織名/Orb名@バージョン番号 (⾃組織のみに公開、または全体に公開可能)
13 CircleCIの導⼊事例 PayPay 金融法令遵守のため、「抜け漏れないテストと開発のペースアップ」を両立。 (プログラムの修正をリポジトリに反映させるプルリクエストが5~6回/日から25回/日に) ANA システムズ テストの自動化で一ヶ月に延べ300人が平均1000時間のテスト工数を削減+セキュリテ ィ検証を稼働開始前だけでなくテストと合わせて実行することで手戻りを大幅に削減。 GLOBIS
動画学習サービスの開発において、定型的なコードレビューはCircleCIで自動実施し、 人でなければレビューできない箇所に注力することで負担軽減+開発スピードアップ。 はてな モバイルアプリのテストにおいて並列化を活用し、テストスピードを高速化。 日本語のドキュメントやサポートが充実していることで安心感につながる。 属人的にノウハウを蓄積させるのではなく、仕組みを整備することで開発効率向上。 バンダイ ナムコ こまめにテストを行い、後工程での手戻りを削減することで、開発効率化+プロダクト の質の向上を実現。(80並列でのテストから200並列でのテストへ) ANDPAD CircleCIを使って賢くテストを並列実行することで、CIの平均実行時間の目標値15分程 度を維持し、開発効率を高める(プルリクエストしやすい仕組み)。
14 まとめ • ソフトウェア開発は⾃社のビジネスを 他社と差別化する「欲しい機能を早く」 • 開発⽣産性の向上は⼀丁⽬⼀番地。 なぜなら、⽣産性が向上すれば ・開発スピードが上がりより早く提供可能 ・時間を技術の学習は効率化に投資可能
・早く提供すれば早くフィードバックが 得られる(求められる機能に投資可能) • 開発⽣産性の向上はCircleCIなどのツールを 使った⾃動化で実現する ・⼈依存しない、プロセスを⽌めない ・開発の現況を常に取得可能(必要なアクションを適時に取る+次の⼀⼿を⾒積もれる)
15 もっと知りたい時は • CircleCI ⽇本語ウェブサイト https://circleci.com/ja/ • 雑誌 Software Design
2023年12⽉号 特集「開発を加速するCI/CD」 • セミナー、ウェビナーは connpass の CircleCI グループに https://circleci.connpass.com/event/ • CircleCI のブースにお⽴ち寄りください︕
Thank you. 16