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
210
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(舟木 将彦)
Harness the Power of Advanced LLM and CI/CD Practices
mfunaki
0
330
CircleCI と Argo Rollouts で 実現する Kubernetes 上の プログレッシブデリバリー
mfunaki
0
110
はじめてのCircleCI
mfunaki
0
27
CircleCIでChatGPTにエラーの解説を頼んでみた
mfunaki
0
550
自動化→部品化すると社内開発は楽しくなる
mfunaki
0
37
テストの自動化~簡単に始める、みんなで使う、現況を捉える
mfunaki
0
39
テストの自動化 〜 簡単に始める、みんなで使う、現況を捉える
mfunaki
0
22
CircleCIで実現できる「高速、安全なソフトウェア開発」
mfunaki
0
160
CircleCI から見た DevOps 3つの壁
mfunaki
0
29
Other Decks in Technology
See All in Technology
終了の危機にあった15年続くWebサービスを全力で存続させる - phpcon2024
yositosi
10
8.5k
サーバレスアプリ開発者向けアップデートをキャッチアップしてきた #AWSreInvent #regrowth_fuk
drumnistnakano
0
190
多領域インシデントマネジメントへの挑戦:ハードウェアとソフトウェアの融合が生む課題/Challenge to multidisciplinary incident management: Issues created by the fusion of hardware and software
bitkey
PRO
2
100
大幅アップデートされたRagas v0.2をキャッチアップ
os1ma
2
530
Amazon SageMaker Unified Studio(Preview)、Lakehouse と Amazon S3 Tables
ishikawa_satoru
0
150
[Ruby] Develop a Morse Code Learning Gem & Beep from Strings
oguressive
1
160
オプトインカメラ:UWB測位を応用したオプトイン型のカメラ計測
matthewlujp
0
170
スタートアップで取り組んでいるAzureとMicrosoft 365のセキュリティ対策/How to Improve Azure and Microsoft 365 Security at Startup
yuj1osm
0
210
Wvlet: A New Flow-Style Query Language For Functional Data Modeling and Interactive Data Analysis - Trino Summit 2024
xerial
1
120
LINE Developersプロダクト(LIFF/LINE Login)におけるフロントエンド開発
lycorptech_jp
PRO
0
120
20241220_S3 tablesの使い方を検証してみた
handy
4
400
新機能VPCリソースエンドポイント機能検証から得られた考察
duelist2020jp
0
220
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
4
170
Raft: Consensus for Rubyists
vanstee
137
6.7k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
111
49k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Designing for humans not robots
tammielis
250
25k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.9k
How GitHub (no longer) Works
holman
311
140k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Practical Orchestrator
shlominoach
186
10k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
28
900
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