Slide 1

Slide 1 text

2025/04/16 DevOpsDays Tokyo 2025 組織のソースコードを共有しよう! インナーソース最初の一歩 〜実践者達と歌を作った結果、社内でインナーソース文化が育ち始めた〜 KDDI アジャイル開発センター 中島智弘 下川真弘 1

Slide 2

Slide 2 text

2

Slide 3

Slide 3 text

Learning Outcome インナーソースについて知れる インナーソースを実践する第一歩がわかる Target Audience 車輪の再発明や、組織のサイロに悩む人、インナーソースを始めてみたいけど一緒に 取り組む仲間が見つからない人 3

Slide 4

Slide 4 text

注意 今回の登壇内容は事実に基づいて作りましたが、私の解釈が含まれています。私が分 かったこと、感じたことに価値があると信じてお話します。 4

Slide 5

Slide 5 text

インナーソースとは インナーソース (InnerSource) は、オープンソースソフトウェア開発におけるベストプラクテ ィスを活用し、非オープンソースやプロプライエタリソフトウェアを開発する組織内にオープン ソースの手法を取り入れることである (Wikipediaより) 5

Slide 6

Slide 6 text

インナーソースとは インナーソース (InnerSource) は、オープンソースソフトウェア開発におけるベストプラクテ ィスを活用し、非オープンソースやプロプライエタリソフトウェアを開発する組織内にオープン ソースの手法を取り入れることである (Wikipediaより) 「オープンソースっぽいことを社内でやろうぜ」 (中島意訳) 6

Slide 7

Slide 7 text

7

Slide 8

Slide 8 text

私が感じていた課題① ソースコードのコラボレーション 社員は100名弱→200名超まで増加!! アーキテクチャは各プロジェクト毎に決めている 但しセキュリティの関係もあり、ソースコードは社内でも限定公開 各自今の仕事以外でそれぞれスキルアップしたい技術領域がある...(と思っている) 8

Slide 9

Slide 9 text

私が感じていた課題① 一方でKAGは社内横断施策が活発 毎週金曜1730-1830は全社OST@オンライン 社外の人も巻き込んだコミュニティイベントも多数企画 ソフトウェアエンジニアのコラボ機会少ない...? エンジニアなんだからコード書いて共有する場がもっ とあればいいのに…! 9

Slide 10

Slide 10 text

私が感じていた課題② anycommu Fun Done Learnなどふりかえりを 気軽に楽しく実施できるツール 業務の合間でKDDI本体のメンバー で中島中心に作っていた 10

Slide 11

Slide 11 text

私が感じていた課題② anycommu Fun Done Learnなどふりかえりを気軽に楽しく実施できるツール 業務の合間でKDDI本体のメンバーで中島中心に作っていた 歌を作って宣伝した結果、社内外100チーム近くに使ってもらえるツールになった 色々あってKAGに移管をしたのだが、開発が止まってしまった... (皆使っているのに...) 11

Slide 12

Slide 12 text

RSGT2024にて 私が登壇 Fun Done Learnのうた を作った話 英語でシドロモドロ この時GitHubJapanの服部さんが 来ていた 「インナーソースの人だ!!!」 →廊下で質問責め 別の勉強会で再会 「インナーソースの曲つくりま しょうw」 この時は冗談だと思ってた 12

Slide 13

Slide 13 text

InnerSource Gathering運営への参加 インナーソースについて 「初心者向けのわかりやすいコンテ ンツがない」 という課題があった 13

Slide 14

Slide 14 text

インナーソースとは(再掲) インナーソース (InnerSource) は、オープンソースソフトウェア開発におけるベストプラクテ ィスを活用し、非オープンソースやプロプライエタリソフトウェアを開発する組織内にオープン ソースの手法を取り入れることである (Wikipediaより) 「オープンソースっぽいことを社内でやろうぜ」 (中島意訳) 確かに難しい…イメージしにくいしどこからどうすれば… 14

Slide 15

Slide 15 text

「インナーソースの価値基準を考え る会」 楽曲作りを前提に実施した三回のワークショップ 第一回 miroに書き出して終わる 第二回 Niftyさんのオフィスにて。インナーソース の大切にしている言葉を発散させる 15

Slide 16

Slide 16 text

「インナーソースの価値 基準を考える会」 ワークショップの様子 dot投票で多数あったもの 助ける助かる 開かれたドア positiveなシャドウ 16

Slide 17

Slide 17 text

試しに生成AIで作って みた 早く失敗しよう ふせんをChatGPTに流して歌 詞を作りSunoAIでいっぱい作 る でも俺の心に何にも響かない 良いところを並べただけでは何 も伝わらない 17

Slide 18

Slide 18 text

何故響かない? 18

Slide 19

Slide 19 text

何故響かない? 国内実践者のインナーソース導入の動機は深い組織課題から来ていた 組織のサイロ化、車輪の再発明を防ぐ、組織の硬直化、etc.etc. 19

Slide 20

Slide 20 text

何故響かない? 国内実践者のインナーソース導入の動機は深い組織課題から来ていた 組織のサイロ化、車輪の再発明を防ぐ、組織の硬直化、etc.etc. 良い所並べても課題の深刻さが伝わっていない どんな課題をどう解決するのか?再整理することになった。 20

Slide 21

Slide 21 text

ペルソナを決めよう 21

Slide 22

Slide 22 text

ペルソナを決めよう 30代男性リーダーポジション、プレイングマネージャー的立ち回り。 会社の組織課題を解決する曲に 22

Slide 23

Slide 23 text

ペルソナを決めよう 30代男性リーダーポジション、プレイングマネージャー的立ち回り。 会社の組織課題を解決する曲に 戦隊モノだ!! 23

Slide 24

Slide 24 text

ペルソナを決めよう 30代男性リーダーポジション、プ レイングマネージャー的立ち回り。 会社の組織課題を解決する曲に 戦隊モノだ!! 歌詞は暫定で曲だけ先に作る ペルソナから90-00年代 バンドサウンドにシンセサイザ ーのソロが入る曲 24

Slide 25

Slide 25 text

第三回 価値基準を考える会 KDDI DIGITAL GATEにて 25

Slide 26

Slide 26 text

第三回 価値基準を考える会 ペルソナ:30代男性リーダーポジション、プレイングマネージャー的立ち回り 26

Slide 27

Slide 27 text

第三回 価値基準を考える会 ペルソナ:30代男性リーダーポジション、プレイングマネージャー的立ち回り この人はどういうシチュエーションでインナーソースを広げる? 27

Slide 28

Slide 28 text

第三回 価値基準を考える会 ペルソナ:30代男性リーダーポジション、プレイングマネージャー的立ち回り この人はどういうシチュエーションでインナーソースを広げる? O:起こっていること: 作ったコードはある。しかし、面倒なので積極的に誰か に見せていない 28

Slide 29

Slide 29 text

第三回 価値基準を考える会 ペルソナ:30代男性リーダーポジション、プレイングマネージャー的立ち回り この人はどういうシチュエーションでインナーソースを広げる? O:起こっていること: 作ったコードはある。しかし、面倒なので積極的に誰か に見せていない N:望んでいること: 同じものを二度作りたくない。俺が作ったことを褒められ たい 29

Slide 30

Slide 30 text

第三回 価値基準を考える会 ペルソナ:30代男性リーダーポジション、プレイングマネージャー的立ち回り この人はどういうシチュエーションでインナーソースを広げる? O:起こっていること: 作ったコードはある。しかし、面倒なので積極的に誰か に見せていない N:望んでいること: 同じものを二度作りたくない。俺が作ったことを褒められ たい Y:やってみること: インナーソースの導入!! 30

Slide 31

Slide 31 text

QA (1)(中島の解釈意訳含む) Q.インナーソースを導入するには何を最初にする必要があるの? 31

Slide 32

Slide 32 text

QA (1)(中島の解釈意訳含む) Q.インナーソースを導入するには何を最初にする必要があるの? 作ったコードやドキュメントを勇気を持って社内に公開すること そして、社内で別の社員に貢献して欲しいことを伝えること コードがどのようなコードで、他社が貢献できることを表明する 具体的にはREADME.mdとCONTRIBUTING.mdの整備 32

Slide 33

Slide 33 text

InnerSource Patterns Webにてインナーソースのパターンランゲ ージが掲載されている Standard base documentation README.mdやCONTRIBUTING.mdを提 供することで、新しいコントリビューター に見つけてもらえる 33

Slide 34

Slide 34 text

QA (2)  (中島の解釈意訳含む) Q. インナーソースってなぜ続くの?組織に広げられるの? 34

Slide 35

Slide 35 text

QA (2)  (中島の解釈意訳含む) Q. インナーソースってなぜ続くの?組織に広げられるの? フィードバックが嬉しい。 プログラムを使ったことへの感謝から始まる。 「ありがとう」がほしい。ある種の承認欲求もあるかもしれない。 でももらっ たら嬉しい。 別にPull Requestだけじゃない。使ってもらった。likeをもらえた。Issueが来 た。すべて大事なフィードバック。 35

Slide 36

Slide 36 text

作詞は夜10時にまで及んだ 36

Slide 37

Slide 37 text

できた曲 「共創未来インナーソースマン」 InnerSource Gathering Tokyo 2024にて発表 37

Slide 38

Slide 38 text

歌詞解説 38

Slide 39

Slide 39 text

オレはオレの書いたコードのメンテナー のうのうと生きていたら俺は企業のサイロに閉じ込められてしまった このままでは来年の新入社員もサイロに閉じ込められてしまう 共創未来 インナーソースマン!! オレの作ったレポジトリ みんな使ったらいいのに 色々言われるの嫌だから誰にも言わずに置いとこう だけど隣のチームが同じものをつくる予定らしい これじゃまるで車輪の再発明(思い切って社内に公開してみよう) 39

Slide 40

Slide 40 text

README.md 分かりやすくしたら 「何のコードかがよく分かった」 CONTRIBUTING.md ちゃんと用意したら 「コードに触れても良いと知った」 Starがもらえた! Issueが来た! PR(プルリク)もらえた! 助ける助かる 開かれたドア Feedbackがうれしい (みんなで作って 進化させていこう) この歌の提供は InnerSource Commons コミュニティと KDDIアジャイル開発センターの提供でお送りしました 40

Slide 41

Slide 41 text

KAGの社員で完成 「Feedbackがうれしい」の連鎖で 曲の完成度が上がっていった 詳細はXP祭りをみてください https://speakerdeck.com/pi yonakajima/on-kag-bu- 468185e4-ffc7-457f-ad67- 7eb334ba84c7 これも一つのインナーソースだった 41

Slide 42

Slide 42 text

翌日「俺の作ったレポジトリ」に初めてPRが来た!! 42

Slide 43

Slide 43 text

翌日「俺の作ったレポジトリ」に初めてPRが来た!! 私が作ったSlack botがあった 43

Slide 44

Slide 44 text

翌日「俺の作ったレポジトリ」に初めてPRが来た!! 私が作ったSlack botがあった ちょっとした業務課題解決で約半分の社員が使っている 軽微な不便なちょっとした不具合があった 44

Slide 45

Slide 45 text

翌日「俺の作ったレポジトリ」に初めてPRが来た!! 私が作ったSlack botがあった ちょっとした業務課題解決で約半分の社員が使っている 軽微な不便なちょっとした不具合があった 翌日作詞エピソードをSlackに共有→PRがきた CONTRIBUTING.mdは書いてなかった 45

Slide 46

Slide 46 text

なぜPRが飛んできたのか? 46

Slide 47

Slide 47 text

なぜPRが飛んできたのか? Yやったこと: インナーソースの価値基準を考える会で学んだことをSlackに共有し た 47

Slide 48

Slide 48 text

なぜPRが飛んできたのか? Yやったこと: インナーソースの価値基準を考える会で学んだことをSlackに共有し た Oおこったこと: Pull Requestが飛んできた 48

Slide 49

Slide 49 text

なぜPRが飛んできたのか? Yやったこと: インナーソースの価値基準を考える会で学んだことをSlackに共有し た Oおこったこと: Pull Requestが飛んできた Wわかったこと: 私が、貢献を歓迎するという意思表示をしたから。 49

Slide 50

Slide 50 text

なぜPRが飛んできたのか? Yやったこと: インナーソースの価値基準を考える会で学んだことをSlackに共有し た Oおこったこと: Pull Requestが飛んできた Wわかったこと: 私が、貢献を歓迎するという意思表示をしたから。 そして、フィードバックがとてつもなく嬉しかった 自分が書いたコードで作ったものを使ってくれていた それを大切に思ってくれていた 50

Slide 51

Slide 51 text

なぜPRが飛んできたのか? Yやったこと: インナーソースの価値基準を考える会で学んだことをSlackに共有し た Oおこったこと: Pull Requestが飛んできた Wわかったこと: 私が、貢献を歓迎するという意思表示をしたから。 そして、フィードバックがとてつもなく嬉しかった 自分が書いたコードで作ったものを使ってくれていた それを大切に思ってくれていた こうして最初のインナーソース実践事例が生まれた 51

Slide 52

Slide 52 text

実践する前に思っていた一歩と実践した後の一歩の違 い 実践する前の第一歩(想像) ルールづくりが先。誰かが公開して誰かがPull Requestを送る仕組みが必要。ト ップダウンの理解が最初に必要。 実践した後の第一歩(実際) 自分がレポジトリを作って公開する。それを使った人からのフィードバックを募 集していることを自分が発信する。 組織文化であり、自発的にやるもので自分が実践することが大事。 52

Slide 53

Slide 53 text

二次利用が進む CEDECにてバンダイナムコの八重樫さんご紹介 三菱電機の追立さんご紹介 社内イベントにてインナーソースマンを流す イベントにてNifty芦川さんご紹介 InnerSource Summit 2024 開幕の挨拶にて各国の取組紹介で日本のインナーソー スマンを紹介 & Heros of Monthを受賞する JAWS KAG名古屋オフィス高谷さんご紹介(編曲担当) そして札幌オフィス下川さん...!!! (PFE部) 53

Slide 54

Slide 54 text

ここからバトンタッチ 54

Slide 55

Slide 55 text

55

Slide 56

Slide 56 text

56

Slide 57

Slide 57 text

57

Slide 58

Slide 58 text

58

Slide 59

Slide 59 text

59

Slide 60

Slide 60 text

60

Slide 61

Slide 61 text

61

Slide 62

Slide 62 text

62

Slide 63

Slide 63 text

63

Slide 64

Slide 64 text

64

Slide 65

Slide 65 text

65

Slide 66

Slide 66 text

66

Slide 67

Slide 67 text

67

Slide 68

Slide 68 text

68

Slide 69

Slide 69 text

69

Slide 70

Slide 70 text

70

Slide 71

Slide 71 text

71

Slide 72

Slide 72 text

72

Slide 73

Slide 73 text

73

Slide 74

Slide 74 text

まとめ インナーソースを始めるには「自分が公開すること」 「自分がフィードバックを求め ていることを発信すること」が重要 具体的にはREADME.md/CONTRIBUTING.mdの整備。社内で自分が貢献を求めて いると宣伝することが重要 組織にインナーソースマンを流してインナーソースを始めよう KAGではまだまだ浸透や定着度は低い 巻き込んで広げていきたい 74

Slide 75

Slide 75 text

おまけ 75

Slide 76

Slide 76 text

76

Slide 77

Slide 77 text

77

Slide 78

Slide 78 text

78

Slide 79

Slide 79 text

79