Upgrade to Pro — share decks privately, control downloads, hide ads and more …

インナーソース入門 ~ 企業におけるコラボレーションと生産性を高める秘訣

インナーソース入門 ~ 企業におけるコラボレーションと生産性を高める秘訣

インナーソースの世界へようこそ。インナーソースは、閉じた組織におけるオープンソースソフトウェアを開発するための原動力であり、プロジェクトの "オープン性" を企業内のチームを超えて広げるものです。この本では、オライリーの編集者兼著者である Andy Oram が、オープンソース開発を成功させる原則を確認するとともに、大手 EC の PayPal でインナーソースがどのように機能したのかを説明することによって、皆様をインナーソースの世界に導きます。

PayPal がインナーソースを採用するまでの過程には企業としての意思決定の積み重ねがあり、その中にはツールと文化の意識的な刷新が含まれています。 インナーソースを通じて、同社はより迅速な開発とより良い品質を達成するだけでなく、プログラマが PayPal のどの開発プロジェクトにも貢献することを奨励し、チーム間の共創を可能にしました。

この本を通して読者の皆様は、以下のようなインナーソース戦略の具体的なメリットを学ぶことができます。

より高速な開発: プログラマーは、ユニットテスト、コードカバレッジ、および継続的インテグレーションを使用して、初期の段階でバグを取り除くことができます。
完全なドキュメント化: コードを説明するドキュメントの質が向上します。コードに併記される公式なコメントの質が上がることと、チャット・チケット・メーリングリストでの議論で公式的な説明を控えることの両方を含みます。
コードの再利用: 組織全体のプログラマーが、他のチームが開発したモジュールのコードとアーキテクチャを理解することができます。
チーム横断的なコラボレーション: チーム外からの貢献には摩擦がなくなり、書き直されることがほとんどなくなります。
GitHub を使った開発: GitHub では、社内用のプライベートリポジトリだけでなく、OSS 用のパブリックリポジトリも合わせて扱うことができます。
この書籍は無償であり、クリエイティブ・コモンズ・ライセンス(CC BY)で提供されています。 原本 (PDF形式3.3 MB)も同じく CC BY ライセンスで提供されており、誰でもダウンロードすることができます。

Yuki Hattori

January 13, 2023
Tweet

More Decks by Yuki Hattori

Other Decks in Technology

Transcript

  1. インナーソース⼊⾨
    企業におけるコラボレーションと
    ⽣産性を⾼める秘訣
    アンディ・オラム 著
    InnerSource Commons Japan 訳
    Getting Started with InnerSource

    View full-size slide

  2. ·͕͖͑
    Πϯφʔιʔεͷੈք΁Α͏ͦ͜ɻ
    Πϯφʔιʔε͸ɺ
    ดͨ͡૊৫ʹ͓͚ΔΦʔϓϯιʔειϑτ
    ΢ΣΞΛ։ൃ͢ΔͨΊͷݪಈྗͰ͋Γɺ
    ϓϩδΣΫτͷ "Φʔϓϯੑ"
    Λاۀ಺ͷνʔϜΛ௒͑
    ͯ޿͛Δ΋ͷͰ͢ɻ
    ͜ͷຊͰ͸ɺ
    ΦϥΠϦʔͷฤूऀ݉ஶऀͰ͋Δ Andy Oram ͕ɺ
    Φʔϓϯι
    ʔε։ൃΛ੒ޭͤ͞ΔݪଇΛ֬ೝ͢Δͱͱ΋ʹɺ
    େख EC ͷ PayPal
    ͰΠϯφʔιʔε͕ͲͷΑ
    ͏ʹػೳͨ͠ͷ͔Λઆ໌͢Δ͜ͱʹΑͬͯɺ
    օ༷ΛΠϯφʔιʔεͷੈքʹಋ͖·͢ɻ
    PayPal ͕ΠϯφʔιʔεΛ࠾༻͢Δ·Ͱͷաఔʹ͸اۀͱͯ͠ͷҙࢥܾఆͷੵΈॏͶ͕͋Γɺ
    ͦͷதʹ͸πʔϧͱจԽͷҙࣝతͳ࡮৽ؚ͕·Ε͍ͯ·͢ɻ

    ΠϯφʔιʔεΛ௨ͯ͡ɺ
    ಉࣾ͸
    ΑΓਝ଎ͳ։ൃͱΑΓྑ͍඼࣭Λୡ੒͢Δ͚ͩͰͳ͘ɺ
    ϓϩάϥϚ͕ PayPal ͷͲͷ։ൃϓϩδ
    ΣΫτʹ΋ߩݙ͢Δ͜ͱΛ঑ྭ͠ɺ
    νʔϜؒͷڞ૑ΛՄೳʹ͠·ͨ͠ɻ
    ͜ͷຊΛ௨ͯ͠ಡऀͷօ༷͸ɺ
    ҎԼͷΑ͏ͳΠϯφʔιʔεઓུͷ۩ମతͳϝϦο
    τΛֶͿ͜ͱ
    ͕Ͱ͖·͢ɻ
    ΑΓߴ଎ͳ։ൃ: ϓϩάϥϚʔ͸ɺ
    Ϣχο
    τςετɺ
    ίʔυΧόϨοδɺ
    ͓ΑͼܧଓతΠϯς
    άϨʔγϣϯΛ࢖༻ͯ͠ɺ
    ॳظͷஈ֊ͰόάΛऔΓআ͘
    ͜ͱ͕Ͱ͖·͢ɻ
    ׬શͳυΩϡϝϯτԽ: ίʔυΛઆ໌͢ΔυΩϡϝϯτͷ࣭͕޲্͠·͢ɻ
    ίʔυʹซه͞
    ΕΔެࣜͳίϝϯτͷ্࣭͕͕Δ͜ͱͱɺ
    νϟο
    τ
    ɾ
    νέοτ
    ɾ
    ϝʔϦϯάϦετͰͷٞ࿦Ͱ
    ެࣜతͳઆ໌Λ߇͑Δ͜ͱͷ྆ํΛؚΈ·͢ɻ
    ίʔυͷ࠶ར༻: ૊৫શମͷϓϩάϥϚʔ͕ɺ
    ଞͷνʔϜ͕։ൃͨ͠Ϟδϡʔϧͷίʔυ
    ͱΞʔΩςΫνϟΛཧղ͢Δ͜ͱ͕Ͱ͖·͢ɻ
    νʔϜԣஅతͳίϥϘϨʔγϣϯ: νʔϜ֎͔Βͷߩݙʹ͸ຎࡲ͕ͳ͘ͳΓɺ
    ॻ͖௚͞Ε
    Δ͜ͱ͕΄ͱΜͲͳ͘ͳΓ·͢ɻ
    GitHub Λ࢖ͬͨ։ൃ: GitHub Ͱ͸ɺ
    ࣾ಺༻ͷϓϥΠϕʔτϦϙδτϦ͚ͩͰͳ͘ɺ
    OSS
    ༻ͷύϒϦοΫϦϙδτϦ΋߹Θͤͯѻ͏͜ͱ͕Ͱ͖·͢ɻ
    ͜ͷॻ੶͸ແঈͰ͋Γɺ
    ΫϦΤΠςΟϒ
    ɾ
    ίϞϯζ
    ɾ
    ϥΠηϯε(CC BY)Ͱఏڙ͞Ε͍ͯ·͢ɻ

    ݪ
    ຊ (PDFܗࣜ3.3 MB)
    ʢhttps://innersourcecommons.org/learn/books/getting-started-with-
    innersource/ ʣ
    ΋ಉ͘͡
    CC BY ϥΠηϯεͰఏڙ͞Ε͓ͯΓɺ
    ୭Ͱ΋μ΢ϯϩʔυ͢Δ͜ͱ͕Ͱ͖
    ·͢ɻ
    1

    View full-size slide

  3. ஶऀΑΓ೔ຊޠ൛ʹدͤͯ
    ஶऀͱͯ͠೔ຊޠ൛ͷൃץΛخ͘͠ࢥ͍·͢ɻ

    O’Reilly Media ͔Βӳޠ൛ͷຊॻ͕ੈʹग़ͨͷ
    ͸ 2015೥7݄ͷ͜ͱͰɺ
    ಉࣾͷϨϙʔτͷதͰ΋τοϓΫϥεͷਓؾ͕Կ೥΋ଓ͖·ͨ͠ɻ

    ຊॻ
    ͷ೔ຊޠ൛͕ఏڙ͞Εͨ͜ͱͰɺ
    ೔ຊͰ΋ιϑτ΢ΣΞ։ൃํ๏Λมֵ͢Δ͜ͱ͸΋ͪΖΜɺ
    ίϛ
    ϡχέʔγϣϯ͕ࠜຊ͔ΒڧԽ͞Εɺ
    ࣾ಺ͷͲ͜ʹͰ΋ߴ඼࣭ͳߩݙΛͰ͖ΔΦʔϓϯͳମ࣭
    ͷ࣮ݱ͕༰қʹͳΓ·ͨ͠ɻ

    ೔ຊͷଟ͘ͷେاۀ͕ຊॻͰޠΒΕ͍ͯΔڠಇతͳϓϩάϥϛϯ
    άͷԸܙΛड͚ΒΕΔͷͰ͸ͳ͍͔ɺ
    ͱࢲ͸ظ଴͍ͯ͠·͢ɻ

    ڠಇͱݸਓͷଚॏΛཧ೦ͱͨ͠
    اۀจԽͱ͸ɺ
    ༷ʑͳνʔϜͷਓࡐͱ࠽ೳΛ߹Θͤɺ
    ଞͷνʔϜͱڞʹιϑτ΢ΣΞ։ൃΛ৐Γ
    ӽ͑ͯΏ͘
    ͜ͱ͔Βੜ·ΕΔͷͰ͢ɻ

    Πϯφʔιʔεͱ͍͏ಇ͖ํΛֶͿ͜ͱ͸ɺ
    ։ൃऀ΋اۀ
    ΋Φʔϓϯιʔειϑτ΢ΣΞͷՁ஋Λཧղ͢Δͷʹ໾ཱͪ·͢ɻ

    ͜ͷཧղ͕ͦ͜Πϯφʔιʔ
    εͷਪਐऀ͕ৗʹ໨ࢦ͖ͯͨ֩͠ͱͳΔ໨ඪͳͷͰ͢ɻ
    As the author of Getting Started with InnerSource, I’m very happy to see a Japanese
    translation.
    O’Reilly Media released Getting Started with InnerSource in English in July
    2015, and for several years it held
    top spot among our reports in attracting readers.
    Now
    it can play a role in Japan, not only to transform software practices, but to put
    communications on a firmer
    ground and open up organizations to high-quality
    contributions from all over the company.
    I think that a lot of large companies in Japan
    would benefit from instituting the type of collaborative
    programming described in the
    report.
    A business culture so oriented toward collaboration and personal respect can
    thrive by bringing talent from each
    team to improve the software managed by other
    teams.
    Learning the InnerSource way of working also helps programmers and companies
    appreciate the value of open source
    software, which has always been a key goal of the
    promoters of InnerSource.
    Andy Oram, author and editor, https://www.praxagora.com/
    ʢhttps://www.praxagora.com/ ʣ
    2

    View full-size slide

  4. License
    ݪ୊: Getting Started with
    InnerSource
    ʢhttps://innersourcecommons.org/learn/books/getting-
    started-with-innersource/ ʣ
    ஶऀ: Andy Oram
    ൃߦ೔: 2015೥7݄
    ൃߦݩ: O’Reilly Media
    ຋༁: InnerSource Commons Japan
    ຊॻ͸ O'Reilly Media, Inc. ΑΓਖ਼ࣜʹ຋༁ڐՄΛड͚ɺ
    CC-BY-NC-SA
    4.0
    ʢhttps://creativecommons.org/licenses/by-nc-sa/4.0/ ʣ
    ͷϥΠηϯεͷ΋ͱެ։͞Ε͍ͯ·͢ɻ
    3

    View full-size slide

  5. ໨࣍
    ɿ
    ୈ1ষ νʔϜؒίϥϘϨʔγϣϯ΁ͷڧྗͳΞϓϩʔν
    1.1 OSS ͷݪଇ͕ػೳ͢Δ৔
    ૊৫ԣஅతͳίϥϘϨʔγϣϯ
    ஍ཧతʹ෼ࢄͨ͠։ൃͱΞδϟΠϧͳϓϩάϥϛϯάͷҧ͍
    ܧଓతͳςετͱ։ൃ
    ໌จԽͷॏཁੑ
    ΠϯϑϥͷͨΊͷՁ஋
    OSS ʹ૬Ԡ͍͠Ϩϕϧͷൃݟ
    1.2 PayPal ͕ΠϯφʔιʔεΛ࠾༻͢Δ·Ͱ
    ຤୺͔Β࢝ΊΔ
    ΑΓεϐʔσΟͳ։ൃϓϩηε
    OSS ͱͷௐ࿨
    GitHub ίϥϘϨʔγϣϯ
    ඼࣭ͷ޲্
    จԽͷมԽ
    1.3 ஶऀ঺հ
    4

    View full-size slide

  6. ୈ1ষ νʔϜؒίϥϘϨʔγϣϯ΁ͷڧྗͳΞϓϩʔν
    ۙ೥ɺ
    ΦϖϨʔςΟϯάγεςϜɺ
    Ϋϥ΢υίϯϐϡʔςΟϯάɺ
    JavaScript ϑϨʔϜϫʔΫΛ͸͡Ίͱ͢Δ͞·͟
    ·ͳ OSS(Open Source Software: Φʔϓϯιʔειϑτ΢ΣΞ)
    ͷීٴʹ৮ൃ͞Εɺ
    Πϯφʔιʔε ͱ͍͏ඪ
    ޠͷ΋ͱɺ
    ͦͷڧྗͳ OSS ༝དྷͷϓϥΫςΟεΛ໛฿ͯ͠಺෦ͷίϥϘϨʔγϣϯʹऔΓೖΕΑ͏ͱ͢Δاۀ
    ͕૿͍͑ͯ·͢ɻ

    ͜ͷϖʔδͰ͸ɺ
    Πϯλʔωο
    τ঎औҾͷେखͰ͋Δ PayPal ͷܦݧ͔Βɺ
    Πϯφʔιʔε͕Τ
    ϯδχΞɺ
    ܦӦऀɺ
    ϚʔέςΟϯά/PR ෦໳ʹͲͷΑ͏ͳརӹΛ΋ͨΒ͔͢Λݟ͍͖ͯ·͢ɻ
    ΠϯφʔιʔεʹΑΔϓϩδΣΫτϚωδϝϯτͷັྗΛཧղ͢ΔͨΊʹɺ
    ͦ΋ͦ΋ OSS ։ൃ͕ͳͥ͜͜·Ͱ੒
    ޭ͖ͯͨ͠ͷ͔ɺ
    ͦͷཁҼΛߟ͑ͯΈ·͠ΐ͏ɻ
    ϓϩάϥϚʔ͸ɺ
    Ϛωʔδϟʔ΍νʔϜ͚ͩͰͳ͘ɺ
    Ϣʔβʔ΍ίϯτϦϏϡʔλʔͱ͍ͬͨ෯޿͍ਓʑͱ
    ࣗ෼ͷ࢓ࣄΛڞ༗͠·͢ɻ
    ΄ͱΜͲͷ OSS
    ϓϩδΣΫτͰ͸ɺ
    ੈքதͷ୭΋͕ࣗ༝ʹίʔυΛΈΔ͜ͱ͕
    Ͱ͖ɺ
    ίϝϯτΛ࢒͠ɺ
    ݕূ͢Δ͜ͱʹΑΓ৽͍͠εΩϧΛֶͿ͜ͱ͕Ͱ͖·͢ɻ
    ·ͨɺ
    χʔζʹ߹ΘͤͯΧ
    ελϚΠζͨ͠Γɺ
    վળͨ͠ίʔυͷมߋΛఏग़Ͱ͖·͢ɻ
    ֘౰ϓϩδΣΫτΛ΋ͱʹͨ͠৽͍͠ίʔυϦϙδτϦ(ϒϥϯν)Λࣗ༝ʹ࡞੒Ͱ͖ΔͨΊɺ
    ίʔυ͕ݩʑʹ
    ࡞ΒΕͨ໨తҎ֎ͷ࢖༻ʹ΋ରԠͰ͖·͢ɻ
    ௨ৗɺ
    ͞·͟·ͳϒϥϯνΛݩͷϚελʔϒϥϯνʹϚʔδ
    ͢ΔͨΊͷϧʔϧͱɺ
    ͦΕΛࢧԉ͢Δٕज़͕͋Γ·͢ɻ
    ஍ཧతʹ཭Εͨ৔ॴʹ͍Δਓʑ͕ɺ
    ผʑͷ࣌ؒʹɺ
    ಉ͡ίʔυͰ࡞ۀͨ͠Γɺ
    ಉ͡ϓϩδΣΫτʹҟͳΔί
    ʔυͷϑΝΠϧΛఏڙͰ͖·͢ɻ
    ίϛϡχέʔγϣϯ͸ɺ
    ޱ಄Ͱඇެࣜʹڞ༗͞ΕΔͷͰ͸ͳ͘ɺ
    υΩϡϝϯτԽ͞Εͯެͷ৔ʹ౤ߘ͞ΕΔ
    ܏޲͕͋Γɺ
    ͦΕ͸ϓϩδΣΫτͷཤྺΛ࢒͢͜ͱʹͳΓɺ
    ·ͨ৽͍͠ϓϩδΣΫτϝϯόʔʹֶशͷػձ
    Λఏڙ͢Δ͜ͱʹͳΓ·͢ɻ
    Ϣχο
    τςετͷ࡞੒͸ɺ
    ॏཁͳϓϩάϥϛϯάλεΫʹͳΓ·͢ɻ
    ʮϢχοτςετʯ
    ͸ɺ
    ޡͬͨೖྗΛڋ൱
    ͨ͠Γɺ
    ಛఆͷ৚݅ԼͰద੾ͳ෼ذΛ͢ΔͳͲɺ
    ಛఆͷݽཱͨ͠ಈ࡞ΛνΣοΫ͢Δখ͞ͳςετͰ͢ɻ
    Φ
    ʔϓϯιʔεͱΠϯφʔιʔεͰ͸ɺ
    ຊ൪Քಇதͷো֐͔ΒͷอޢͷͨΊʹɺ
    มߋ͕νΣοΫΠϯ͞ΕΔ
    ࡍɺ
    ςετ͕ৗʹ࣮ߦ͞Ε·͢ɻ
    ୯Ұͷ૊৫ʹ͓͚Δݟ஍ͱ੍ޚͷൣғ಺ʹͱͲ·Δͱ͍͏఺Ͱɺ
    Πϯφʔιʔε͸ैདྷͷΦʔϓϯιʔεͱ͸ҟ
    ͳΓ·͢ɻ

    ϓϩδΣΫτͷ"Φʔϓϯੑ"͸૊৫಺ʹݶఆ͞Ε·͕͢ଟ͘ͷνʔϜʹ·͕ͨΓ·͢ɻ

    ͜ΕʹΑΓɺ

    ৫͸෦֎ऀʹίʔυ͕ެ։͞ΕΔ͜ͱΛڪΕΔ͜ͱͳ͘ɺ
    ڝ૪ͷݯઘͰ͋ΔاۀൿີΛίʔυʹຒΊࠐΉ͜ͱ͕
    Ͱ͖·͢ɻ

    ಉ࣌ʹɺ
    ૊৫શମʹΘͨΔਓʑʹΑͬͯఏڙ͞ΕΔଟ༷ͳࢹ఺΍ΫϦΤΠςΟϏςΟͷԸܙΛड͚Δ
    ͜ͱ͕Ͱ͖·͢ɻ
    ૊৫͕ΠϯφʔιʔεϓϩδΣΫτͷҰ෦ΛҰൠʹެ։͠ɺ
    ͦΕΒΛޮՌతʹ OSS ʹม͑Δ͜ͱΛબ୒͢Δέ
    ʔε΋Α͋͘Γ·͢ɻ

    OSS ͷٕज़ͱ؅ཧख๏͕ࣾ಺Ͱ࢖༻͞Ε͍ͯΕ͹ɺ
    ϓϩδΣΫτΛެͷ৔ʹҠ͢͜ͱ͸ඇ
    ৗʹ༰қʹͳΓ·͢ɻ
    ΠϯφʔιʔεઓུΛ࠾༻͢Δར఺͸ҎԼͷ௨ΓͰ͢ɻ
    5

    View full-size slide

  7. ૊৫ԣஅతͳίʔυͷ࠶ར༻͕ඈ༂తʹਐΈ·͢ɻ
    ֤νʔϜͷϓϩάϥϚʔ͸ɺ
    ଞͷνʔϜʹΑͬͯ։ൃ
    ͞ΕͨϞδϡʔϧͷίʔυͱΞʔΩςΫνϟΛཧղ͠ɺ
    ίʔυΛίϯτϦϏϡʔτͰ͖·͢ɻ
    ͜ͷΑ͏ͳνʔϜؒͷίϥϘϨʔγϣϯ͕ɺ
    ൺֱతຎࡲͷগͳ͍΋ͷʹͳΓ·͢ɻ
    ड͚औͬͨνʔϜ͕ίϯ
    τϦϏϡʔτ͞ΕͨίʔυΛॻ͖௚͢͜ͱ͸΄ͱΜͲͳ͘ͳΓɺ
    ্૚෦ʹ͓͚Δٞ࿦΋ඞཁͳ͘ͳΓ·͢ɻ
    ϓϩάϥϚʔ͸Ϣχο
    τςετɺ
    ίʔυΧόϨοδɺ
    ܧଓతΠϯςάϨʔγϣϯΛ࢖͍ɺ
    ։ൃͷॳظஈ֊Ͱ
    όάΛऔΓআ͘
    ͜ͱΛֶͿ͜ͱ͕Ͱ͖ΔͨΊɺ
    ։ൃ͸ΑΓ଎͘ͳΓ·͢ɻ
    νʔϜϝϯόʔؒͰަΘ͞ΕΔί
    ϝϯτͷ΍ΓऔΓʹ͸͕͔͔࣌ؒΓ·͕͢ɺ
    ৽͍͠ϓϩάϥϚʔ͕γεςϜʹ͍ͭͯૣֶ͘Ϳ͜ͱ͕Ͱ͖Δ
    Α͏ʹͳΔͨΊɺ
    ͦΕҎ্ͷޮՌ͕͋Γ·͢ɻ
    ϓϩάϥϚʔ͸ࣗ෼ͷίʔυΛΑΓྑ͘
    υΩϡϝϯτԽ͢Δ͜ͱΛֶͿΑ͏ʹͳΓɺ
    ͦΕ͸ެࣜͳυΩϡϝ
    ϯτ(ίʔυ಺ͷίϝϯτ΍υΩϡϝϯτ)΍ɺ
    ඇެࣜͳυΩϡϝϯτ(σΟεΧογϣϯϦετ)
    ʹରͯ͠΋ޮՌ
    ͕͋Γ·͢ɻ
    υΩϡϝϯτ͸ϓϩδΣΫτͷཤྺΛఏڙͯ͠֎෦ͷਓ͕ؒཧղ͢Δॿ͚ͱͳΔͨΊɺ
    ΑΓଟ
    ͘ͷਓ͕ϓϩδΣΫτ΁ίϯτϦϏϡʔτͰ͖ΔΑ͏ʹͳΓ·͢ɻ
    6

    View full-size slide

  8. 1.1 OSS ͷݪଇ͕ػೳ͢Δ৔
    Πϯφʔιʔε͕͋ͳͨͷ૊৫ʹରͯ͠ԿΛ΋ͨΒ͔͢Λߟ͑Δલʹɺ
    ͜ΕΒͷϓϥΫςΟεͷݯઘͰ͋ΔͰ͋
    ΔϑϦʔͰΦʔϓϯιʔεͷιϑτ΢ΣΞϜʔϒϝϯτ͕͏·͘ػೳ͍ͯ͠Δ৔ॴͱɺ
    ྺ࢙తʹ͋·Γ੒ޭ͍ͯ͠
    ͳ͍৔ॴʹ͍ͭͯߟ࡯͢Δ͜ͱ͕ॏཁͰ͢ɻ
    7

    View full-size slide

  9. ૊৫ԣஅతͳίϥϘϨʔγϣϯ
    OSS ͷ։ൃ͸ɺ
    νʔϜ
    ɾ
    اۀ
    ɾ
    ࠃͷڥքΛӽ͑ͯɺ
    ੈքதͷݸਓ͕ Linux ΍ Apache ͷΑ͏ͳओཁͳίϯϐϡʔ
    ςΟϯάγεςϜͷਐาʹڠྗ͢Δ͜ͱΛՄೳʹ͠·͢ɻ

    ແࠎͳϋοΧʔ͕Ͳ͔͜ͷ஍ԼࣨͰίʔυΛॻ͘
    ͱ͍
    ͏εςϨΦλΠϓ͸(͔ͭͯͦΕ͕ద੾ͩͬͨͱͯ͠΋)࣌୅஗ΕͰ͢ɻ

    Linux ͷΑ͏ͳ OSS ϓϩδΣΫτʹ͓͚
    Δத৺తͳίϯτϦϏϡʔλʔ͸ɺ
    ࠓ΍େاۀʹۈΊ͍ͯ·͢ɻ
    ଟ͘ͷॏཁͳ OSS ϓϩδΣΫτ͸ɺ
    ݸʑͷϓϩάϥϚʔʹΑΔൃҊ͔Β࢝·Γ·͕ͨ͠ɺ
    ͦΕ͸Α͘େاۀʹ࠾
    ༻͞Ε͍͖ͯ·͢ɻ

    ·ͨɺ
    PayPal Λ͸͡Ίͱͯ͠ɺ
    େاۀͷத͔Β OSS ϓϩδΣΫτ͕ੜ·ΕΔέʔε΋͋Γ·
    ͢ɻ

    ͲͷΑ͏ͳ૊৫Ͱ͋ͬͯ΋ OSS
    ͷ੒ޭʹ͔ܽͤͳ͍ͷ͸ɺ
    ಺෦ͷਓʑ͕ɺ
    ֎෦ͷਓʑʹιϑτ΢ΣΞʹ͓͚
    Δ։ൃ
    ɾ
    ςετ
    ɾ
    υΩϡϝϯτԽ
    ɾ
    ϓϩϞʔγϣϯͷओཁͳ໾ׂΛͤ͞Δ͜ͱͱɺ
    ͢΂ͯͷίϯτϦϏϡʔλʔʹՄ
    ೳͳݶΓެฏͳڝ૪ͷ৔Λఏڙ͢Δ͜ͱͰ͢ɻ
    8

    View full-size slide

  10. ஍ཧతʹ෼ࢄͨ͠։ൃͱΞδϟΠϧͳϓϩάϥϛϯάͷҧ͍
    OSS ͷࠃڥΛӽ͑ͨ׆ಈ͸ɺ
    ΞδϟΠϧ΍εΫϥϜͷΑ͏ͳҰൠతͳاۀͷ։ൃΞϓϩʔνͱڧ͘ରরతͰ
    ͢ɻ

    ޙऀͷ։ൃख๏͸ɺ
    1 ͭͷΦϑΟεͰإΛ߹Θͤͯ࢓ࣄΛ͢ΔνʔϜͷͨΊʹઃܭ͞Εͨ΋ͷͰ͋Δ͜ͱ͸
    ໌Β͔Ͱ͢ɻ

    ΞδϟΠϧ΍εΫϥϜͷ޻෉͸ɺ
    ΦϑΟεͰ࢓ࣄΛ͢Δ஥ؒΛ։ൃऀ͚ͩʹͤͣɺ
    ιϑτ΢ΣΞͷϢ
    ʔβʔ΍ͦͷଞͷεςʔΫϗϧμʔͨͪͱ΋ఆظతͰΧδϡΞϧͳ৘ใڞ༗Λ͢Δ͜ͱͰ͢ɻ

    ͜ͷ޻෉ʹΑΓɺ
    ཁٻ࢓༷ॻ΍ઃܭॻͱ͍ͬͨυΩϡϝϯτͷඞཁੑΛݮΒ͢͜ͱ͕Ͱ͖·͢ɻ

    ͔͠͠ɺ
    ͜ͷΑ͏ͳ։ൃख๏͸ɺ

    Ұͷ࡞ۀݱ৔Ͱ͸ͳ͍Α͏ͳΑΓେ͖ͳ؀ڥʹ͓͍ͯ͸ɺ
    ͋·Γ্ख͍͖͘·ͤΜɻ
    ΞδϟΠϧ΍εΫϥϜ͕֦ுੑͱ͍͏୅ঈΛ෷͏ͱ͢Ε͹ɺ
    OSS ։ൃ͸εϐʔυͱ͍͏୅ঈΛ෷͏͜ͱʹͳΓ·
    ͢ɻ

    OSS ϓϩδΣΫτ͸ɺ
    1 ͭͷΦϑΟεͰಇ͘ઐ໳νʔϜ΄Ͳ଎͘ಈ͘
    ͜ͱ͕Ͱ͖·ͤΜɻ

    కΊ੾Γ͕(࣌ʹ͸
    ڰؾతͳ΄Ͳ)ݫ͍͠ελʔτΞοϓ
    ɾ
    ϕϯνϟʔʹͱͬͯɺ
    ͜ͷ୅ঈ͸໌Β͔ʹେ͖ͳҧ͍ͱͳΓ·͢ɻ

    ͜ͷҧ͍
    ͸ɺ
    ΠϯϑϥͷͨΊͷՁ஋Ͱઆ໌͢ΔΑ͏ʹɺ
    ͦΕͧΕͷ։ൃϞσϧʹదͨ͠ιϑτ΢ΣΞͷछྨʹ΋ඍࡉͳӨ
    ڹΛٴ΅͠·͢ɻ
    ਐߦ଎౓ʹ੍ݶ͕͋Δʹ΋͔͔ΘΒͣɺ
    ଟ͘ͷ OSS ϓϩδΣΫτ͸ɺ
    ݫ͍͠ೲظΛकΓɺ
    ༧ଌՄೳͳϦϦʔεΛ
    ͍ͯ͠·͢ɻ

    ͔͠͠ɺ
    ༧ଌՄೳੑΛߴΊΔͨΊʹػೳΛ٘ਜ਼ʹ͢Δ͜ͱ΋গͳ͋͘Γ·ͤΜɻ

    ಛఆͷϦϦʔεͰܭ
    ը͞Ε͍ͯΔػೳΛ֦ு͢Δ͜ͱͷதʹ͸ɺ
    ظݶΛա͗ͳ͍Α͏ʹޙճ͠ʹ͠ͳ͚Ε͹ͳΒͳ͍΋ͷ΋ؚ·Εͯ
    ͍Δ͔΋͠Ε·ͤΜɻ
    ࣮Λݴ͏ͱɺ
    ΞδϟΠϧͳϓϩάϥϛϯά͸ඞͣ͠΋ OSS ։ൃͷఢͰ͸͋Γ·ͤΜɻ

    ࣮ࡍɺ
    จݙʹ͓͍ͯ͜ͷ2
    ͭΛ૊Έ߹ΘͤͨνʔϜ͕ใࠂ͞Ε͍ͯ·͢ [1]ɻ

    ͔͠͠ɺ
    ൴Βʹ͓͍ͯ͸ཁ݅ͱલఏ͕ҟͳΔͱ͍͏͜ͱΛཧղ
    ͢Δ͜ͱ͕ɺ
    OSS ΛΑΓΑ͘ཧղ͢Δ͜ͱʹܨ͕ΔͰ͠ΐ͏ɻ
    [1]: Stol, KJ, P. Avgeriou et al. “Key Factors for
    Adopting Inner Source.”
    ʢhttp://www.brian-
    fitzgerald.com/wp-content/uploads/2014/05/TOSEM-2014-stol.pdf ʣ ACM Transactions on Software
    Engineering Methodology (TOSEM) (2014): Vol
    23, No 2.
    9

    View full-size slide

  11. ܧଓతͳςετͱ։ൃ
    େ൒ͷ OSS ϓϩδΣΫτͰ͸ɺ
    دͤΒΕΔίϯτϦϏϡʔγϣϯͷҰͭͻͱͭΛݫ͘͠٬؍తʹςετ͢Δ࢓૊
    ΈΛઃ͚͍ͯ·͢ɻ

    ͜ΕʹΑΓ඼࣭͸อͨΕɺ
    ڠྗऀؒͷ৴པ΋ৢ੒͞Ε·͢ɻ

    ྫ͑͹ɺ
    Ϣχοτςετ΍ܧଓత
    ΠϯςάϨʔγϣϯͱ͍ͬͨඪ४తͳٕज़͕࠾༻͞Ε͓ͯΓɺ
    ͦΕΒͷٕज़Λਖ਼͘͠࢖͏ͨΊͷنൣ΋పఈ͞Ε
    ͍ͯ·͢ɻ

    OSS ։ൃऀ͸඼࣭؅ཧΛΑΓՊֶతʹ͍ͯ͠ΔͷͰ͢ɻ
    OSS ʹ͓͍ͯςετۦಈ։ൃ͸ٻΊΒΕͳ͍΋ͷͷɺ
    Ϣχοτςετ͸ඇৗʹॏࢹ͞Ε͍ͯ·͢ɻ

    ίϯτϦϏϡ
    ʔγϣϯର৅ͷ OSS ϓϩδΣΫτʹ͓͚Δ඼࣭อূνʔϜͷ༗ແʹ͔͔ΘΒͣɺ
    ίϯτϦϏϡʔλʔ͸ࣗ਎ͷ
    ॻ͍ͨίʔυΛอূ͢ΔͨΊͷϢχοτςετ΋߹Θͤͯॻ͘
    ͜ͱ͕ٻΊΒΕ·͢ɻ

    ίʔυΛมߋ͢Δʹ͸ςετ
    ࣮ߦπʔϧͱॴఆͷखଓ͖͕ඞཁͰ͋Γɺ
    มߋ͕ϦϙδτϦʹऔΓࠐ·ΕΔͨΊʹ͸ܿനͰ͋Δςετ݁Ռ͕ٻ
    ΊΒΕ·͢ɻ

    ͜͏͢Δ͜ͱʹΑΓɺ
    มߋ͞Εͨίʔυ͕ҙਤ௨Γʹಈ͘
    ͜ͱ͚ͩͰͳ͘ɺ
    ͦΕҎ֎ͷίʔυʹѱӨ
    ڹ͕ͳ͍͜ͱ΋͔֬ΊΒΕΔͷͰ͢ɻ
    ίʔυΧόϨοδͷଌఆ΍੩తίʔυղੳͱ͍ͬͨݱ୅తͳٕज़͸ɺ
    OSS ͷੈքͰ͸͞΄Ͳݟ͔͚·ͤΜ͕ɺ
    PayPal Ͱ͸ੵۃతʹ࢖ΘΕ͍ͯ·͢ɻ
    ·ͱΊΔͱɺ
    ςετͱܧଓతΠϯςάϨʔγϣϯ͸ 2 ͭͷॏཁͳ໾ׂΛ୲͍ͬͯ·͢ɻ

    ·ͣͻͱͭ͸໪࿦ͷ͜ͱɺ
    ϓϩμΫτ͕յΕͳ͍Α͏ʹ͢Δ͜ͱͰ͢ɻ

    Ͱ͕͢ɺ
    ͦΕ͚ͩͰ͸ͳ͘ɺ
    େ͖ͳ੹೚Λ࣋ͭʹ૬Ԡ͍͠։ൃऀΛݟ
    ͚ͭΔͷʹ΋໾ཱͭͷͰ͢ɻ

    ྫ͑͹ɺ
    τϥεςουίϛολʔ [2] ͱ͍͏ಌΕͷশ߸ʹ૬Ԡ͍͠։ൃऀΛݟ͚ͭΔ
    ʹ͸ɺ
    ड͚ೖΕΒΕͨίϛο
    τͷ਺Ͱ൑அ͢Δ͜ͱ͕௨ྫͰ͢ɻ

    τϥεςουίϛολʔ͸ɺ
    ଞͷ։ൃऀͷ੒ՌΛ
    ϨϏϡʔͯ͠࠾൱Λ൑ఆ͢Δ໾ׂΛ࣋ͪ·͢ɻ

    ·ͨɺ
    ࣗ਎͸ͦ͏ͨ͠ϨϏϡʔϓϩηεΛܦΔ͜ͱͳ͘มߋ͢Δݖ
    ݶΛ࣋ͪ·͢ɻ

    ͞Βʹɺ
    ඼࣭ج४Λຬͨ͞ͳ͍ίʔυΛఏग़ͨ͠৳ͼ੝Γͷ։ൃऀΛҭͯΔ໾ׂ΋୲͍·͢ɻ
    [2]: (༁஫) OSS
    ʹ͓͍ͯɺ
    ίϛολʔ͸։ൃํ਑΍ίʔυมߋͷ࠷ऴ൑அΛ୲͏த৺తଘࡏͰ͢ɻ
    Πϯφ
    ʔιʔεͰ͸ɺ
    ͋Δ૊৫಺ͷιϑτ΢ΣΞʹରͯ͠ҰఆҎ্ͷίϯτϦϏϡʔγϣϯΛͨ͠ͱ৴པ͞Εͨਓ
    ͸ɺ
    ͦͷ૊৫಺ͷॴଐ෦ॺʹؔΘΒͣτϥεςουίϛολʔͱݺ͹Ε·͢ɻ
    ͓๽෇͖ίϛολʔͱݴͬͯ
    ΋Α͍͔΋͠Ε·ͤΜɻ
    10

    View full-size slide

  12. ໌จԽͷॏཁੑ
    ͞ΒͳΔ OSS ͷ৴೦͸పఈతͳ໌จԽͰ͢ [3]ɻ

    ͜Ε͸ɺ
    ؔ܎ऀͷ஍ཧతͳҐஔͱλΠϜκʔϯ͕ଟ༷Ͱ͋Δ
    ͜ͱʹىҼ͍ͯ͠·͢ɻ

    Ϣʔβʔ޲͚υΩϡϝϯτ͸ଟ͘ͷ OSS ϓϩδΣΫτͰखബʹͳΓ͕ͪͳͷͰ͕͢(࣮
    ͸ϓϩϓϥΠΤλϦϓϩδΣΫτͰ΋ಉ༷ʹखബͰ͢)ɺ
    ։ൃऀͷߟ͑Δ૝ఆɺ
    ҙࢤܾఆɺ
    ࣮૷ʹ͍ͭͯ͸ੵۃత
    ʹه͞Ε·͢ɻ
    ͜͏࣮ͨ͠ঢ়͸
    ʮแׅతͳυΩϡϝϯτΑΓ΋ಈ͘
    ιϑτ΢ΣΞΛʯ
    ༏ઌ͢ΔΞδϟΠϧιϑτ΢ΣΞ։ൃએݴ
    ʢhttps://agilemanifesto.org/iso/ja/manifesto.html ʣ
    ͱ͸ରরతͰ͢ɻ

    OSS ίϛϡχςΟ(ͱ͍͏։ൃऀத৺ͷੈք)Ͱ
    ΋ಈ͘
    ιϑτ΢ΣΞ͕ਖ਼ٛͱ͞ΕΔ΋ͷͷɺ
    ࣮ݱͰ͖ͨࣄฑʹ͍ͭͯ͸υΩϡϝϯτʹ࢒͢͜ͱ͕ґવͱͯ͠ॏࢹ
    ͞Ε͍ͯ·͢ɻ

    ͜Ε͸ҰൠతͳΞδϟΠϧʹର͢Δಛ௃ͱ͓֮ͯ͑ͯ͘͠΂͖͜ͱͰ͢ɻ
    OSSʹ͓͚Δٞ࿦΍ঢ়گઆ໌ͱ͍ͬͨ͋ΒΏΔίϛϡχέʔγϣϯ͸໌จԽ͞Ε·͢ɻ

    ྫ͑͹ɺ
    ଟ͘ͷϓϩδΣ
    ΫτͰ GitHub ʹॻ͖ࠐ·ΕΔίϝϯτ͕։ൃΛࠨӈ͍ͯ͠Δ͜ͱͰ͠ΐ͏ɻ

    ϝʔϦϯάϦετ͸ٞ࿦ʹΑΔҙࢥ
    ܾఆʹ͔ܽͤͳ͍πʔϧͱͳ͍ͬͯΔͰ͠ΐ͏ [4]ɻ


    ʮϝʔϦϯάϦετʹॻ͔Ε͍ͯΔ͜ͱ͚͕ͩࣄ࣮ͩʯ
    ͱ͍͏
    ݴ͍ճ͠Λฉ͍ͨ͜ͱͷ͋Δಡऀ΋ଟ͍ͷͰ͸ͳ͍Ͱ͠ΐ͏͔ɻ
    ҙࢥܾఆͱ࣮૷ͷৄࡉΛ໌จԽ͢Δ͜ͱͷՁ஋ͱͯ͠ɺ
    ৽ͨʹࢀՃ͠Α͏ͱ͢ΔਓʑͷͨΊʹϓϩδΣΫτͷྺ
    ࢙Λ௲Δ͜ͱ͕ڍ͛ΒΕ·͢ɻ

    ࣌ؒΛ͔͚ͯܦҢΛಡΈղ͚͹ɺ
    ϓϩδΣΫτͷจԽ΍ֶͼͷ͋ΔܦݧΛ୭Ͱ΋
    ஌Δ͜ͱ͕Ͱ͖ΔͷͰ͢ɻ
    ͦͯ͠ɺ
    ڠಇ͢Δʹ͸ಉ͡ݴޠΛ༻͍Δඞཁ͕͋Δ͜ͱʹ΋஫ҙ͕ඞཁͰ͢ɻ

    ؔΘΔਓʑ͕஍ཧతʹ͹Β͹ΒͰ
    ͋Δ OSS ϓϩδΣΫτͰ͸ɺ
    ͝ଘ஌ͷ௨Γӳޠ͕ڞ௨ݴޠͱͳ͍ͬͯ·͢(ଞͷݴޠΛ༻͍ΔॏཁͳϓϩδΣΫ
    τ΋͋Γ·͕͢)ɻ

    ಡΈॻ͖ͷํ͕ձ࿩ΑΓ΋ຽओతͳίϛϡχέʔγϣϯΛଅ͠·͢ɻ

    ͳͥͳΒ֎ࠃޠΛྲྀெʹ
    ࿩ͤΔΑ͏ʹͳΔΑΓ΋ɺ
    ॻ͚ΔΑ͏ʹͳΔํ͕؆୯͔ͩΒͰ͢ɻ

    Αͬͯɺ
    ଟ͘ͷਓʑ͸ɺ
    ݁ଋྗ͸ߴ͍΋ͷͷೃ
    છΈͷͳ͍ݴޠΛ࢖͏νʔϜΑΓ΋ɺ
    OSS ϓϩδΣΫτʹࢀՃͰ͖ΔͷͰ͢ɻ
    [3]: (༁஫) ݪจͰͷઅ໊͸ The Importance of Documentation Ͱ͢ɻ
    ͜͜Ͱͷ documentation
    ͱ͸υΩ
    ϡϝϯτʹ͢Δ͜ͱ͚ͩͰͳ͘ɺ
    νϟο
    τ΍νέοτͷίϝϯτ΋ؚΉͨΊɺ
    ໌จԽͱදݱ͠·ͨ͠ɻ
    [4]: (༁஫) 2022 ೥ݱࡏͰ͸ Gitter ΍ Slack ͱ͍ͬͨνϟοτπʔϧ͕ϝʔϦϯάϦετʹ୅Θͬͯར༻
    ͞ΕΔ৔߹΋૿͍͑ͯΔͰ͠ΐ͏ɻ
    11

    View full-size slide

  13. ΠϯϑϥͷͨΊͷՁ஋
    OSS ͸௿ϨΠϠʔͰ੒ޭ͖ͯ͠·ͨ͠ɻ

    ͜͜Ͱݴ͏௿ϨΠϠʔͱ͸ɺ
    OSɺ
    ϋΠύʔόΠβʔɺ
    ίϯύΠϥʔ΍Τ
    σΟλʔͱ͍ͬͨ։ൃऀ͕࢖͏πʔϧɺ
    ίʔυͷ੬ऑੑΛݟ͚ͭΔͨΊͷηΩϡϦςΟπʔϧɺ
    ͦͷଞϢʔβʔ
    ʹ͸ݟ͑ͳ͍৔ॴʹஔ͔Ε͍ͯΔ΋ͷ͕֘౰͠·͢ɻ
    Ұํɺ
    ϢʔβʔΠϯλʔϑΣʔε(UI)͸ OSS ͱͯ͠։ൃ͢Δ͜ͱʹࠜڧ͍൓ൃ͕͋Δͱ͍͏͜ͱ͕Θ͔͍ͬͯ·
    ͢ɻ

    ΤϯυϢʔβʔ޲͚ͷ OSS ͱͯ͠޿͘ීٴͨ͠΋ͷ͸ͳ͔ͳ͔͋Γ·ͤΜɻ

    Mozilla Firefox ͸௝͍͠ྫͳ
    ͷͰ͢ɻ
    ͦͷཧ༝Λ஌Δώϯτ͸ɺ
    OSS
    ։ൃͱΞδϟΠϧ։ൃͷൺֱΛಡΈฦ͢ͱΘ͔ΔͰ͠ΐ͏ɻ

    ΞδϟΠϧ։ൃ͕޿
    ͘࠾༻͞Ε͍ͯΔཧ༝͸ɺ
    ։ൃऀ͕Ϣʔβʔͱͷີ઀ͳର࿩Λଓ͚ΒΕΔํ๏͔ͩΒͰ͢ɻ

    ର࿩Λ௨ͨ͡ϑΟ
    ʔυόοΫΛಘ͔ͯΒ਺೔ͷ͏ͪʹ࡞ۀΛ࢝ΊΒΕ·͢ɻ

    Ұํɺ
    ΄ͱΜͲͷ OSS ϓϩδΣΫτͰ͸ɺ
    α ൛΍ β Ϧ
    Ϧʔεͱ͍ͬͨੲͳ͕Βͷํ๏ͰϢʔβʔͷ൓ԠΛಘ͍ͯ·͢ɻ
    Ϣχοτςετʹॏ఺Λஔ͍͍ͯΔ͜ͱ΋ɺ
    OSS ͕Πϯϑϥʹ޲͍͍ͯΔ͜ͱΛද͍ͯ͠ΔͰ͠ΐ͏ɻ

    ΞδϟΠϧ
    ͷઐ໳ՈͰ͋Δ Mike Cohn ͸ɺ
    2009೥ʹςετϐϥϛου [5] ͱ͍͏֓೦Λఏএ͠·ͨ͠ɻ

    ͜ͷ֓೦Ͱ͸ɺ
    UI ͷ
    ςετΛ࠷্Ґɺ
    ϢχοτςετΛ࠷ԼҐͱͨ͠ෳ਺ͷ֊૚͕ઃ͚ΒΕɺ
    ϢχοτςετΛ࠷΋ॏࢹͯ͠ػೳςε
    τͱͷґଘΛݮΒ͢͜ͱ͕આ໌͞Ε͍ͯ·͢ɻ
    UI ΛϢχο
    τςετͰ֬ೝ͢Δ͜ͱ͸ࠔ೉Ͱ͋Γɺ
    Ͱ͖ͨͱͯ͠΋ͦͷ৴པੑͱՁ஋͸௿͍΋ͷʹͳͬͯ͠·͍
    ·͢ɻ

    ͦ͜Ͱɺ
    γεςϜશମͷಈ࡞ͱɺ
    Ϣʔβʔͷૢ࡞͕ظ଴͢Δ݁ՌΛੜΉ͜ͱΛ֬ೝͰ͖Δػೳςετͷग़
    ൪ͱ͍͏Θ͚Ͱ͢ɻ
    ཁ͢Δʹɺ
    OSS ͷ඼࣭ͱ৴པΛ൫ੴͳ΋ͷͱ͢Δςετϓϩηεʹ͓͍ͯɺ
    UI ͷςετ͸ऑ͍ͷͰ͢ɻ

    ͜ͷ͜ͱ
    ΋ɺ
    UI Λ࣋ͭ OSS ͕গͳ͍ཧ༝͔΋͠Ε·ͤΜɻ
    [5]: (༁஫) ͜ͷจ຺Ͱखಈςετ͸ؚ·Εͳ͍͜ͱʹ஫ҙ͍ͯͩ͘͠͞ɻ
    Mike Cohn ͸ Succeeding
    with
    Agile
    ʢhttps://www.mountaingoatsoftware.com/books/succeeding-with-agile-software-development-using-
    scrum ʣ
    ·ͨ͸ The
    Forgotten Layer of the Test Automation Pyramid
    ʢhttps://www.mountaingoatsoftware.com/blog/the-forgotten-layer-of-the-test-automation-pyramid ʣ
    ͷதͰ
    Test Automation Pyramid ͱه͍ͯ͠·͢ɻ
    "ࣗಈςετϐϥϛου"
    ͷํ͕ਖ਼֬ͳ༁Ͱ͕͢ɺ
    ೔ຊͰ͸ "ς
    ετϐϥϛου" ͱ͍͏ݺশ͕ීٴ͍ͯ͠·͢ɻ
    12

    View full-size slide

  14. OSS ʹ૬Ԡ͍͠Ϩϕϧͷൃݟ
    OSS ͱϑϦʔιϑτ΢ΣΞ͸ɺ
    Microsoft ͷ Windows ΍ Oracle ͷ Database ͱ͍ͬͨϓϩϓϥΠΤλϦιϑτ
    ΢ΣΞ [6] ͱൺֱ͞Ε͖ͯ·ͨ͠ɻ

    ݱࡏͰ͸ɺ
    SaaS(Software as a Service)ͱ͍͏ఏڙϞσϧ͕ϓϩϓϥΠΤλϦ
    ιϑτ΢ΣΞͷ։ൃͰҰൠతʹͳ͖ͬͯ·ͨ͠ɻ

    SaaS Ͱ͸ [7]ɺ
    Ͳͷ෦෼ΛԿͷํ๏Ͱ։ൃ͢Δ͔ΛܾΊΔ͜ͱ
    ʹͳΓ·͢ɻ

    Πϯφʔιʔε ͔ɺ
    Φʔϓϯιʔε͔ɺ
    ͋Δ͍͸ΞδϟΠϧͷΑ͏ͳؔ܎ऀΛݶఆ͢ΔνʔϜࢤ޲
    ͷํ๏ͳͷ͔ͱ͍͏બ୒Ͱ͢ɻ

    ͜ͷબ୒ʹ͸ຊষ͕ΨΠυϥΠϯͱͯ͠໾ཱͭͰ͠ΐ͏ɻ
    ଟ͘ͷاۀͰ͸ɺ
    ͍͔ͭ͘Λ૊Έ߹Θͤͨબ୒Λ͍ͯ͠·͢ɻ

    ͦ͏ͨ͠اۀ͸ɺ
    ϏδωεͷίΞͱͳΔιϑτ΢Σ
    ΞΛ SaaS ͷഎޙʹӅ͓ͯ͘͠ҰํͰɺ
    Πϯϑϥʹ૬౰͢Διϑτ΢ΣΞΛࣗ༝ʹެ։
    ɾ
    ڞ༗͍ͯ͠·͢ɻ

    ·ͨɺ
    ͦ
    ͷΑ͏ͳاۀ͸ΫϩʔζυίΞ
    ʢhttp://radar.oreilly.com/2011/12/could-closed-core-prove-a-more.html ʣ
    ͱݺ͹ΕΔ
    ͜ͱ͕͋Γ·͢
    [8]ɻ

    Πϯϑϥ෦෼Λ OSS ʹ͢Δ͜ͱʹΑΓɺ
    ϓϩάϥϛϯάʹؔΘΔ਺ଟͷਓʑ͕རӹΛड͚ɺ
    ࣾһͷ࠾༻ͱڭҭ͕ޮ཰తʹͳΓɺ
    اۀ͸֎͔ΒͷίϯτϦϏϡʔγϣϯΛड͚औΔ͜ͱ͕Ͱ͖ΔΑ͏ʹͳΔͷ
    Ͱ͢ɻ
    [6]: (༁஫) ϓϩϓϥΠΤλϦ(proprietary)ͱ͸ɺ
    "ಠ઎త"ɺ
    "ઐച"
    Λҙຯ͢Δܗ༰ࢺͰ͢ɻ
    ϓϩϓϥΠΤλϦ
    ιϑτ΢ΣΞͱ͸ɺ
    1͕ࣾಠ઎తʹఏڙ͠ɺ
    ιʔείʔυ΍ͦͷଞͷதؒ੒Ռ෺͕ඇެ։Ͱ͋Διϑτ΢Σ
    ΞΛओʹҙຯ͠·͢ɻ
    ຊจͷΑ͏ʹɺ
    OSS ͷରٛޠͱͯ͠࢖ΘΕΔ৔߹͕΄ͱΜͲͰ͢ɻ
    [7]: (༁஫) SaaS ʹݶΒͣɺ
    σεΫτοϓΞϓϦ΍૊ࠐΈιϑτ΢ΣΞͰ΋ಉ༷ͷબ୒Λ͢Δ͜ͱ͕͋ΔͰ
    ͠ΐ͏ɻ
    [8]: (༁஫)
    Φʔϓϯ
    ɾ
    Ϋϩʔζઓུͷํ͕೔ຊͷاۀਓʹͱͬͯೃછΈ͕͋ΔͷͰ͸ͳ͍Ͱ͠ΐ͏͔ɻ
    ͨͩ
    ͠ɺ
    Φʔϓϯ
    ɾ
    Ϋϩʔζઓུ͸ιϑτ΢ΣΞͷ։ൃ΍ఏڙͷํ๏Ͱ͸ͳ͘஌ࡒϚωδϝϯτͷจ຺ͰޠΒΕ
    Δ͜ͱʹ஫ҙ͕ඞཁͰ͢ɻ
    ڵຯͷ͋Δಡऀ͸ܦࡁ࢈ۀলൃߦͷ2013೥൛΋ͷͮ͘Γനॻ
    ʢhttps://www.meti.go.jp/report/whitepaper/mono/2013 ʣ
    ୈ3અ ͦͷ3Λࢀর͢ΔͱΑ͍Ͱ͠ΐ͏ɻ
    13

    View full-size slide

  15. 1.2 PayPal ͕ΠϯφʔιʔεΛ࠾༻͢Δ·Ͱ
    PayPal ͕ΠϯφʔιʔεΛ࠾༻͢Δ·Ͱͷաఔʹ͸اۀͱͯ͠ͷҙࢤܾఆͷੵΈॏͶ͕͋Γɺ
    ྺ࢙తͰେن
    ໛ͳ΋ͷͰ͢ɻ

    Πϯφʔιʔε ͷ࠾༻͸ɺ
    ͦΕ·ͰʹԿ౓͔͋ͬͨاۀมֵͱಉ༷ʹɺ
    πʔϧͱاۀจԽͷઓ
    ུతมߋͱͯ͠ਐΊΒΕ·ͨ͠ɻ
    PayPal ͕ΠϯφʔιʔεΛ࠾༻͢ΔҎલʹߦΘΕͨมֵͱͦͷ݁Ռ͸࣍ͷ௨ΓͰ͢ɻ
    ։ൃ଎౓Λ޲্ͤ͞Δٕज़ͷௐࠪͱద༻ (ྫ
    ɿ
    ଟ͘ͷϓϩδΣΫτ͕ Java ͔Β JavaScript ·ͨ͸
    Node.js ʹҠߦͨ͠)
    ࠾༻ͨ͠৽ٕज़ʹؔ܎͢Δ OSS ίϛϡχςΟͱ։ൃϞσϧ΁ͷڵຯ͕ৢ੒͞Εͨ
    ࣾ಺ͱࣾ֎ͲͪΒͷڠಇͰ΋ GitHub ͕࢖ΘΕΔΑ͏ʹͳͬͨ
    ඼࣭ʹߴ͍ؔ৺͕෷ΘΕΔΑ͏ʹͳͬͨ
    ͭ·Γɺ
    PayPal Ͱ͸ΠϯφʔιʔεΛ࠾༻͢Δલ͔ΒΦʔϓϯιʔεʹΏ͔Γͷ͋Δٕज़Λ෦෼తʹ࠾༻ͯ͠
    ͍ͨͱ͍͏͜ͱͰ͢ɻ

    ·ͨɺ
    Ұ෦ͷࣾ಺༻ίʔυΛ OSS Խ͢Δ͜ͱʹ΋औΓ૊Έ·ͨ͠ɻ

    ٯͷॱংɺ
    ͢ͳΘͪࣾ
    ಺ͱ͍͏ݶΒΕۭͨؒͰ OSS ༝དྷͷํ๏Λ࣮ફ͔ͯ͠Β OSS Λެ։͢Δͱ͍͏ಓΛḷΔاۀ΋͍Δ͜ͱͰ͠
    ΐ͏ɻ

    ͨͩɺ
    ͦͷํ͕Ұൠతʹ೉͍͠ͱߟ͑ΒΕ͍ͯ·͢ɻ

    ͲͪΒͷॱংʹͯ͠΋ɺ
    OSS ͷπʔϧͱɺ
    ڠಇతͳ։
    ൃϓϩηεΛଅਐ͢Δ GitHub ͷΑ͏ͳπʔϧΛख़஌͍ͯ͠Δ͜ͱ͕ॏཁͰ͢ɻ
    PayPal ʹ͓͚Δ༷ʑͳมԽ͸ಉ࣌ʹൃੜ͠ɺ
    ໌Β͔ʹ૬ޓʹӨڹ͍ͯ͠·͢ɻ

    Ҏ߱ͷઅͰ͸ͦΕΒΛඥղ͖ɺ
    ֤มԽΛݸผʹઆ໌ͯ͠Ώ͖·͢ɻ
    14

    View full-size slide

  16. ຤୺͔Β࢝ΊΔ
    PayPal ͷΠϯφʔιʔε͸ɺ
    ถࠃ֎ͷ༷ʑͳࢧࣾͰಇ͘ηʔϧεΤϯδχΞ͔Β࢝·Γ·ͨ͠ [9]ɻ

    ൴Β͸ɺ
    ֤஍
    Ҭͷར༻ऀͷ޷Έʹ߹ΘͤͨΓɺ
    ஍Ҭ޲͚ͷϓϩϞʔγϣϯ΁ͱ໾ཱͯΔͨΊʹϢʔβʔ޲͚ͷίʔυΛमਖ਼
    ͠·ͨ͠ɻ

    ͔͠͠ɺ
    ͦ͏ͨ͠ϓϩάϥϚʔ͕ͨͪߦͬͨมߋ͸ɺ
    ͙͢ʹίΞνʔϜʹड͚ೖΕΒΕΔΘ͚Ͱ͸͋Γ
    ·ͤΜͰͨ͠ɻ

    όΠεϓϨδσϯτͳͲ͕հೖͯ͠ϚʔδΛٻΊɺ
    ͦͷ͋ͱͰ൓ର͢ΔίΞΤϯδχΞ͕Ϛʔδ
    લʹมߋΛॻ͖໭͢͜ͱ΋͋Γ·ͨ͠ɻ
    ͜Εͱಉ࣌ʹυΩϡϝϯτ͕ෆे෼Ͱ͋Δͱ͍͏໰୊΋͋Γɺ
    ଞͷνʔϜͷ։ൃऀͱͷؒͰඈͼަ͏ۓٸͷ Eϝ
    ʔϧͷ΍ΓऔΓͰΧόʔ͍ͯ͠·ͨ͠ɻ

    ͜ΕΒͷϝʔϧʹ͸ॏཁͳ৘ใؚ͕·Ε͍ͯ·͕ͨ͠ɺ
    ͦͷଞͷଟ͘ͷ
    ։ൃऀ͕໨ʹ͢Δ͜ͱ͸͋Γ·ͤΜͰͨ͠ɻ

    ଟ͘ͷࢧࣾͰ͸ɺ
    ͦ͏ͨ͠ϝοηʔδΛͦΕͧΕಠࣗͷ Wiki ʹΧο
    τˍϖʔετ͢ΔࢼΈΛ࢝ΊΔ࢝຤Ͱͨ͠ɻ
    ίΞνʔϜͷίʔυʹର͢ΔυΩϡϝϯτ͕ෆे෼Ͱ͋ΔͨΊʹ֤஍ҬͷΤϯδχΞ͕ίʔυΛे෼ʹཧղͰ͖
    ͣɺ
    ίΞνʔϜ͕ड͚ೖΕ΍͍͢มߋʹ࢓্͛ΒΕͳ͔ͬͨͷͰ͢ [10]ɻ
    ͦ͜Ͱɺ
    ֤ࢧࣾͷΤϯδχΞ͸αϯϊθͷຊࣾʹඈͼɺ
    1ϲ݄ؒίΞνʔϜ͔Β௚઀ڭ͑Λड͚·ͨ͠ɻ

    ͔͠͠ɺ
    ଟ͘ͷτϥεςο
    υίϛολʔΛҭͯΒΕΔ΄Ͳ஌ࣝΛे෼ʹ޿ΊΒΕͨͱ͸͍͑ͣɺ
    ౤ࢿʹݟ߹͏΋ͷͰ͸͋Γ
    ·ͤΜͰͨ͠ɻ

    υΩϡϝϯτͷ֦ॆ΋શ͘ਐΈ·ͤΜͰͨ͠ɻ

    ΤϯδχΞ͕ͨͪ฼ࠃʹؼࠃͨ͠ޙ͸ɺ
    จ໘ʹΑΔ
    ໰͍߹ΘͤΛ௨ͯ͡ɺ
    ϝϯλʔͱͳͬͯ͘ΕΔίΞνʔϜͷ։ൃऀΛ୳͢͜ͱΛ༨ّͳ͘͞Ε·ͨ͠ɻ
    ͜ͷΑ͏ʹଟେͳ࿑ྗΛ෷ͬͨ݁Ռɺ
    Πϯφʔιʔεͷ΄͏͕ྑ͍ํ๏͔΋͠Εͳ͍ͱߟ͑ΒΕɺ
    ࠾༻͞ΕΔ͜ͱ
    ʹͳΓ·ͨ͠ɻ

    ͦͯ͠ɺ
    ֤νʔϜ͸ΠϯφʔιʔεʹΑͬͯϓϩδΣΫτ͕ຊ౰ʹޮ཰Խ͢Δ͜ͱʹؾ͖ͮ·͠
    ͨɻ

    ίΞνʔϜͷτϥεςουίϛολʔ΋ɺ
    ͦͷϓϩηε͕͸Δ͔ʹ༏Ε͍ͯΔ͜ͱʹؾ͖ͮ·ͨ͠ɻ

    ཭Εͨ஍
    Ҭʹ͍ΔΤϯδχΞͰ͋ͬͯ΋ GitHub ͔ΒίʔυΛϓϧͰ͖ΔΑ͏ʹͳΓ·ͨ͠ɻ
    ίΞνʔϜ͸ɺ
    ΑΓ্खʹ֤஍ҬͷίϥϘϨʔλʔͨͪͱ࿈ܞ͢Δํ๏Λֶ΂͚ͨͩͰͳ͘ɺ
    ஍ҬͷίϯτϦϏϡ
    ʔλʔͨͪ΁ͷࢦಋΛ௨ͯ͡ɺ
    Ϟδϡʔϧੑͱཧղ͠΍͢͞ΛߴΊΔͨΊʹίΞίʔυͷͲ͜ΛϦϑΝΫλϦϯά
    ͢Ε͹Α͍͔ͷώϯτΛಘΔΑ͏ʹͳΓ·ͨ͠ɻ

    ·ͨɺ
    ҟͳΔ஍ҬͰߦΘΕͨ࡞ۀͷύλʔϯʹؾͮ͘
    ͜ͱ͕Ͱ͖
    ͨͨΊɺ
    ܦݧ๛෋ͳ஍ҬͷΤϯδχΞΛɺ
    ଞͷ஍Ҭͷ஥ؒͷϝϯλʔʹ࠾༻Ͱ͖·ͨ͠ɻ
    [9]: (༁஫) PayPal ʹ͸ถࠃͷ΄͔ʹ༷ʑͳڌ఺͕͋Γ
    ʢhttps://careers.pypl.com/locations/default.aspx ʣ
    ɺ
    ͞Βʹ޿͍ࠃʑΛࢢ৔ͱ͍ͯ͠·͢
    ʢhttps://www.paypal.com/en/webapps/mpp/country-worldwide ʣ
    ɻ
    [10]: (༁஫) ͜Ε͸ݪஶʹ͸ͳ͍จͰ͕͢ɺ
    PayPal ͷഎܠΛཧղ͢ΔͨΊʹ͸ඞཁͱ൑அͯ͠௥Ճ͠·͠
    ͨɻ
    15

    View full-size slide

  17. ΑΓεϐʔσΟͳ։ൃϓϩηε
    PayPal ͷᴈ໌ظ͸ൺֱతϞϊϦγοΫͳ C++ ϓϥοτϑΥʔϜͰελʔτ͠·ͨ͠ɻ

    ͦͷޙɺ
    ϨΨγʔͳཁૉ
    ͸ C++ ͕࢒Γͳ͕Β΋ɺ
    ৽ن։ൃʹ͍ͭͯ͸ Java ͷ Spring Λ࢖ͬͯɺ
    ΑΓϞδϡʔϧԽ͞Εͨํ๏ͰߦΘΕ
    ΔΑ͏ʹͳΓ·ͨ͠ɻ

    ͦͷҠߦޙ΋ɺ
    ։ൃऀͷ Jeff Harrell ͕ݴ͏ʹ͸ɺ
    ֤੡඼ͷίʔυʹ͸
    ʮ෦଒಺஌ࣝʯ
    ͱ͍
    ͏ࣾ಺ͷҰ෦Ͱ͔͠௨༻͠ͳ͍஌͕ࣝଟ͘ຒΊࠐ·Ε͍ͯ·ͨ͠ɻ

    ͦͷͨΊɺ
    খ͞ͳมߋΛऔΓࠐΉʹ΋਺िؒ
    ͕ඞཁͰɺ
    ৽ೖࣾһʹ͸6िؒͷτϨʔχϯάظ͕ؒඞཁͩͬͨͷͰ͢ɻ
    3೥લɺ
    PayPal ͸ Node.js Λ࠾༻͠ɺ
    େ͖ͳมԽΛ਱͛·ͨ͠ɻ

    PayPal ͷ Node.js ։ൃऀͰ͋Δ Poornima
    Venkatakrishnan ʹΑΔͱɺ
    Node.js ͷϓϥο
    τϑΥʔϜ͸·ͣϓϩτλΠϐϯάͷͨΊʹ࢖༻͞Ε·ͨ͠ɻ

    ͦͷ
    ݁Ռʹຬ଍ͨ͠։ൃऀͨͪ͸ɺ
    ຊ൪؀ڥʹಋೖ͍ͨ͠ͱߟ͑·ͨ͠ɻ

    ·ͣ͸ Spring ϓϥοτϑΥʔϜͱ
    Node.js Ͱಉ͡ػೳΛฒߦͯ͠։ൃ͢Δ࣮ݧΛࢼΈ·ͨ͠ɻ

    ։ൃ࣌ؒ
    ɾ
    ίʔυߦ਺
    ɾ
    ։ൃʹඞཁͳΤϯδχΞͷ
    ਺ͳͲΛج४ʹɺ
    2ͭͷϓϥο
    τϑΥʔϜΛൺֱͨ͠ͷͰ͢ɻ

    Node.js ͸໌Β͔ʹউ͍ͬͯ·ͨ͠ɻ
    PayPal ͕ Node.js Λ࠾༻͢Δͱ͍͏ൃද͸ɺ
    ଟ͘ͷϓϩάϥϚʔΛɺ
    ಛʹ C++ ͔Β Java ΁ͷҠߦ͕௕ͯ͘େ
    มͩͬͨ͜ͱΛهԱ͍ͯ͠ΔϓϩάϥϚʔΛ৺഑ͤ͞·ͨ͠ɻ

    ͔͠͠ɺ
    PayPal ͸ɺ
    Node.js ΁ͷҠߦ͕·ͬͨ͘
    ҧ͏΋ͷͰ͋Δ͜ͱΛࣔ͠·ͨ͠ɻ

    PayPal ͸ɺ
    ҠߦτϨʔχϯάʹΘ͔ͣ 2೔ؒͷεέδϡʔϧΛ૊Έ·ͨ͠ɻ
    Harrell ʹΑΔͱɺ
    τϨʔχϯάͷࢀՃऀ͸ɺ
    ৽͘͠׆ؾ͕͋ͬͯΤΩαΠςΟϯάͳੈքʹೖͬͨ͜ͱΛ͙͢ʹ࣮
    ײͨͦ͠͏Ͱ͢ɻ

    ͞Βʹɺ
    JavaScript ͷ෼໺ͷϦʔμʔͰ͋Δ Douglas Crockford ΛτϨʔχϯάͷελοϑͱ
    ܴͯ͑͠ΒΕͨ͜ͱ΋޾ӡͰͨ͠(Crockford ͸ɺ
    ඇৗʹਓؾͷߴ͍ॻ੶ JavaScript: The Good Parts
    ʢhttp://shop.oreilly.com/product/9780596517748.do ʣ
    ͷஶऀͰ͋Γɺ
    ΦϥΠϦʔͷ
    JavaScript Master ClassϏ
    σΦ
    ʢhttp://shop.oreilly.com/product/9780596809614.do ʣ
    ͷ੍࡞ऀͰ΋͋Γ·͢)ɻ
    ݱࡏɺ
    PayPal ͷ৽ػೳ։ൃνʔϜͷେ൒͸ Java Λར༻͍ͯ͠·͕͢ɺ
    ͦͷҰํͰɺ
    Node.js νʔϜ͕։୓͠
    ͨΠϯφʔιʔεͷϓϥΫςΟεΛ࠾༻͍ͯ͠ΔνʔϜ͕ଘࡏ͠·͢ɻ
    16

    View full-size slide

  18. OSS ͱͷௐ࿨
    Node.js ʹҠߦ͢ΔͨΊͷτϨʔχϯά͸ɺ
    ଟ͘ͷڭࡐ͕ΦϯϥΠϯͰར༻Ͱ͖ͨ͜ͱͱɺ
    Node.js ͸લճͷ
    Java ΁ͷҠߦʹൺ΂ͯΧελϚΠζͷඞཁੑ͕গͳ͔ͬͨ͜ͱ͔Βɺ
    ؆୯ʹ୹࣌ؒͰ࣮ࢪͰ͖·ͨ͠ɻ

    ·ͨɺ
    ε
    λοϑ͕ࣗ෼ࣗ਎ͷֶशϓϩηεΛܧଓͰ͖ΔΑ͏४උ͢Δʹ͸ɺ
    جຊతʹ2೔ؒͷτϨʔχϯάͰे෼Ͱͨ͠ɻ
    Harrell ʹΑΔͱɺ
    جຊతͳ৘ใ͸ࣾ಺ͷϝʔϦϯάϦετͰγχΞϓϩάϥϚʔʹਘͶΔͷͰ͸ͳ͘ɺ
    ୯ʹ
    StackOverflow ͳͲͷαΠτ (͋Δ͍͸ݕࡧΤϯδϯͳͲ) Ͱݕࡧ͢Ε͹ྑ͍ͱ͍͏͜ͱΛ PayPal
    ͷϓϩάϥϚ
    ʔ΁఻͑Δͷʹ͕͔͔࣌ؒͬͨͦ͏Ͱ͢ɻ

    ͔͠͠ɺ
    ΍͕ͯ৘ใͷ໰͍߹Θͤ͸ OSS ίϛϡχςΟ΁ͷͻͨΉ͖
    ͳऔΓ૊Έʹ·Ͱ޿͕Γ·ͨ͠ɻ
    ଟ͘ͷاۀ͸ɺ
    OSS ͱ͍͏ٕज़͕७ਮʹߴ඼࣭ͰແঈͰ͋Δ͜ͱΛັྗͱΈͳ͓ͯ͠Γɺ
    ͦΕΛ͖͔͚ͬʹͨ͠
    OSS ͷ࠾༻͸ίϛϡχςΟ΁ͷܧଓతͳࢀೖʹͭͳ͕Δͱߟ͍͑ͯ·͢ɻ
    ͜Ε͕ PayPal ͕ Node.js Λ࠾༻ͨ͠ͱ͖ʹىͬͨ͜͜ͱͰ͢ɻ

    ͍·Ͱͦ͜
    ʮJavaScript ϓϩάϥϚʔ͸
    Node.js ʹ୅ΘΔٕज़Λ୳͍ͯ͠Δʯ
    ͱࢦఠ͢Δίϝϯςʔλʔ΋͍Δ΄ͲϐʔΫΛա͗ͯ੒ख़ͨ͠ Node.js Ͱ
    ͕͢ɺ
    PayPal ͕ Node.js
    ίϛϡχςΟʹࢀೖͨ࣌͠ظ͸·ͩॳظͰͨ͠ɻ

    ͦͷͨΊे෼ʹίϯτϦϏϡʔγϣϯ
    ͢Δ༨஍͕͋ͬͨͷͰ͢(ຊઅͷޙ൒Ͱઆ໌͢ΔΑ͏ʹɺ
    OSS ͷมԽ͢Δ଎౓͕࠾༻͢Δٕज़Λࠨӈ͠·͢)ɻ
    PayPal ͸ɺ
    Node.js Foundation ͱ ECMAScript Technical Committee 39 ͷձһͱͳΓɺ
    ඇৗʹੵۃతͳ׆
    ಈΛ͠·ͨ͠ɻ
    ϓϩάϥϚʔͷࣗݾֶशͱ৽ن࠾༻ࣾһͷଈઓྗԽͱ͍͏2ͭͷ໨ඪΛଅਐ͢ΔͨΊɺ
    PayPal ͸ JavaScript ͱ
    Node.js ΁Ҡߦ͢Δࡍʹɺ
    ଞͷਓؾͷ OSS ͷπʔϧΛੵۃతʹಋೖ͠·ͨ͠ɻ

    ྫ͑͹ɺ
    ςετʹ͸޿͘࢖ΘΕ
    ͍ͯΔ Seleniumɺ
    ܧଓతΠϯςάϨʔγϣϯʹ͸ Jenkinsɺ
    Java ͷςετʹ͸ TestNGɺ
    JUnitɺ
    Mockito ͱ͍ͬ
    ͨ۩߹Ͱ͢ɻ

    ͦͷաఔͰ PayPal ͸ɺ
    Nemo
    ʢhttps://github.com/paypal/nemo ʣ (౰ॳ͸ Matt Edelman ʹΑͬͯ։
    ൃ͞Ε·ͨ͠)΍ɺ
    SeLion
    ʢhttp://selion.io ʣ
    ɺ
    ͦͯ͠ Illuminator
    ʢhttps://github.com/paypal/Illuminator ʣ
    ͱ͍ͬͨ
    OSS
    ͷίϯϙʔωϯτͱޓ׵ੑͷ͋ΔπʔϧΛ͍͔ͭ͘։ൃ͠ OSS Ͱఏڙ͠·ͨ͠ɻ
    PayPal ͕ Node.js Λ࠾༻ͨ͠ͷ͸։ൃॳظͰ͋ͬͨͨΊɺ
    ͍͔ͭ͘ͷπʔϧ͕ෆ଍͍ͯ͠·ͨ͠ɻ

    ͦ͜Ͱ
    PayPal ͸͜ͷػೳෆ଍Λղফ͢ΔͨΊʹ Node.js ΞʔΩςΫνϟΛ੍ޚ͢ΔϑϨʔϜϫʔΫͰ͋Δ Kraken
    ʢhttp://krakenjs.com/ ʣ
    Λ։ൃ͠·ͨ͠ɻ

    Kraken ͷ։ൃཧ༝͸ɺ
    ࣾ಺ͷ͋ΒΏΔίʔυʹݟΒΕΔ
    ʮ෦଒಺஌ࣝʯ
    ͱ͍͏ࣾ಺ͷҰ෦Ͱ͔͠௨༻͠ͳ͍஌ࣝΛɺ
    Ұൠతʹ֮͑ΔՁ஋ͷ͋Δ஌ࣝʹঢ՚ͤ͞Δ͜ͱͰͨ͠ɻ

    ͦͷͨ
    Ίɺ
    Harrell ͷνʔϜ͸ Kraken Λ OSS ͱͯ͠։ൃ͢Δ͜ͱʹͨͦ͠͏Ͱ͢ɻ

    ͜͏ͯ͠ɺ
    Kraken ͸͓ͦΒ͘൴Βͷ
    ࠷΋੒ޭͨ͠ OSS ϓϩδΣΫτʹͳΓ·ͨ͠ɻ
    Venkatakrishnan ͸ɺ
    ͜ͷ࣌ PayPal ʹಋೖͨ͠ OSS ༝དྷͷϓϥΫςΟεΛ࣍ͷΑ͏ʹڍ͍͛ͯ·͢ɻ
    17

    View full-size slide

  19. ߴ͍඼࣭ج४Λઃఆ͢Δ͜ͱɻ
    ίʔυΛίϛο
    τ͢ΔલʹίʔυΧόϨοδςετ͕࣮ߦ͞Εɺ
    ΧόϨοδ
    ͕গͳ͘
    ͱ΋ 90%
    Ҏ্Ͱͳ͚Ε͹ͳΒͳ͍ɻ
    ίʔυͷϓογϡʹରͯࣗ͠ಈϏϧυ͕࣮ߦ͞Εɺ
    ͦͷίʔ
    υ͕Ϛʔδ͞ΕΔͷʹे෼ͳ඼࣭͕͋Δ͔֬ೝ͞ΕΔඞཁ͕͋Δɻ
    ϦϙδτϦʹ͋Δ͢΂ͯͷίʔυʹରͯ͠ɺ
    υΩϡϝϯτΛඞਢͱ͢Δ͜ͱɻ
    ͢΂ͯͷσΟεΧογϣϯΛ GitHub ্Ͱߦ͏͜ͱɻ
    ͜ΕʹΑΓɺ
    νʔϜ֎ͷਓʑ͔Βͷҙݟऩू͕ଅਐ͞
    Εɺ
    ίϥϘϨʔγϣϯ͕ՄೳʹͳΔɻ
    ࣾ಺ϓϩδΣΫτ༻ͷϓϥΠϕʔτͳ GitHub ϦϙδτϦͱɺ
    OSS

    ͷύϒϦοΫͳ GitHub ϦϙδτϦΛઃ͚Δɻ
    ͢΂ͯͷઐ໳஌ࣝΛ୯ҰͷνʔϜ͔ΒಘΔඞཁ͸ͳ͍ͱΤϯδχΞʹڭ͑Δ͜ͱɻ
    ੈքதͷͲ͔͜ΒͰ΋
    ࢧԉΛड͚Δ͜ͱ͕Ͱ͖Δͷ͕ OSS Ͱ͋Δɻ
    OSS
    ϓϩδΣΫτʹίϯτϦϏϡʔτ͢Δ͜ͱͰձࣾͷ஌໊
    ౓্͕͕Γɺ
    ੵۃతʹऔΓ૊Ή࢟੎ΛίϛϡχςΟʹࣔ͢͜ͱ͕Ͱ͖Δɻ
    νʔϜͰߦͬͨ࢓ࣄʹର͢ΔތΓΛҭΈɺ
    ͦͷ੒ՌΛΧϯϑΝϨϯεͰ࿩ͨ͠Γɺ
    PayPal ͷٕज़ϒϩάʹ
    ॻ͍ͨΓ͢ΔΑ͏঑ྭ͢Δ͜ͱɻ
    Harrell ͸ιϑτ΢ΣΞελοΫͷ্Ґʹߦ͚͹ߦ͘΄Ͳɺ
    ٕज़ͷมԽ͕ܹ͍͠ͱࢦఠ͍ͯ͠·͢ɻ

    ͜ͷٕज़ͷม
    Խ͸ιϑτ΢ΣΞ։ൃʹ͓͍ͯ͸ৗʹ෇͖·ͱ͏΋ͷͰ͋Γɺ
    OSS Ͱ͋Ε͹ͳ͓͞ΒͰ͢ɻ

    ͦͷͨΊ PayPal ͸
    νʔϜʹର͠ɺ
    ઈ͑ͣࣗ෼ͨͪͷεΩϧΛධՁ͢Δ͜ͱΛਪ঑͍ͯ͠·͢ɻ

    ։ൃऀͨͪʹ͸ܧଓతʹֶश͢Δ͜
    ͱ͕ظ଴͞Ε͍ͯΔͷͰ͢ɻ
    ୅ସπʔϧͷධՁ͸ɺ
    ඞવతʹνʔϜ͝ͱʹ࠾༻͢Δπʔϧ͕ҟͳΔͱ͍͏ଟ༷ੑΛ΋ͨΒ͠·͢ɻ

    ։ൃऀͷ
    Matt Edelman ͸ɺ
    ͜ͷݱ৅͸ OSS ʹಛʹΑ͘ݟΒΕΔͱࢦఠ͍ͯ͠·͢ɻ

    ͳͥͳΒϓϩάϥϚʔ͸ɺ
    Unix ͷ෕
    Ͱ͋Δ Ken Thompson ͕ఏҊͨ͠
    ʮଟ͘ͷখ͞ͳϓϩάϥϜ͕Ұॹʹಈ͘ʯ
    ͱ͍͏ݴ༿ʹԊͬͯπʔϧΛ։ൃ
    ͢Δͷ͕޷͖͔ͩΒͰ͢ɻ
    ͦͷͨΊ PayPal ͷνʔϜͰ͸ React ΍ Angular ͳͲɺ
    ͞·͟·ͳ࠷৽ٕज़͕࢖༻͞Ε͍ͯ·͢ɻ

    ͨͩϓϩά
    ϥϚʔʹ͸ɺ
    ϥΠϒϥϦΛਪ঑͢ΔલʹύΠϩο
    τϓϩδΣΫτͰࢼ͠ɺ
    ୅ସҊΛΑ͘ൺ্ֱͨ͠Ͱબ୒͢Δ͜ͱ
    ͕ٻΊΒΕ·͢ɻ
    OSS ͷΞʔΩςΫνϟ͸ɺ
    ػೳͷ֦ுΛՄೳʹ͢ΔϓϥάΠϯΛඋ͍͑ͯΔ͜ͱ͕Α͋͘Γ·͢ɻ

    Edelman ʹΑ
    Δͱɺ
    PayPal ͸ Kraken ͷϓϥάΠϯͷҰ෦Λࣾ಺Ͱ (ΠϯφʔιʔεϞσϧΛ௨ͯ͡) ։ൃ͠ɺ
    ͦͷଞΛ OSS
    ͱͯ͠։ൃ͍ͯ͠Δͦ͏Ͱ͢ɻ
    18

    View full-size slide

  20. GitHub ίϥϘϨʔγϣϯ
    ͋Δاۀ͕Ϟμϯͳίʔυ։ൃʹ͓͍ͯಛघͳॏཁੑΛ࣋ͭ஍ҐΛங͍͍ͯ·͢ɻ

    ͦΕ͸ GitHub Ͱ͢ɻ

    ΋ͱ
    ΋ͱ͸։ൃΛ༰қʹ͢ΔͨΊͷόʔδϣϯ؅ཧιϑτ΢ΣΞͰ͋ΔGitΛ༻͍ͨSaaSϓϥοτϑΥʔϜͰ͕ͨ͠ɺ
    ݱࡏͰ͸։ൃऀ͕͔ܽͤͳ͍ͱײ͡ΔػೳΛඋ͑ɺ
    ඇৗʹચ࿅͞ΕͨίϥϘϨʔγϣϯϓϥοτϑΥʔϜ΁ͱਐ
    Խ͠·ͨ͠ɻ

    ৄࡉʹ͍ͭͯ͸࣍ͷ2఺͕ࢀߟʹͳΓ·͢ Git for Teams
    ʢhttp://shop.oreilly.com/product/0636920034520.do ʣ
    ͱ Collaborating with Git video
    ʢhttp://shop.oreilly.com/product/0636920034872.do ʣ
    Ͱ͢ɻ
    PayPal Ͱ͸ɺ
    Kraken ͷΑ͏ʹ OSS ϓϩδΣΫτͷίʔυΛ GitHub ʹஔ͚ͩ͘Ͱͳ͘ɺ
    ࣾ಺ʹ GitHub
    Enterprise Λઃஔ͢Δ͜ͱͰɺ
    ࣾ಺ͷϓϩάϥϚʔ͕ύϒϦοΫͷ GitHub
    ͷϢʔβʔͱಉ͡Α͏ʹίϥϘϨʔ
    γϣϯͰ͖ΔΑ͏ʹ͍ͯ͠·͢ɻ

    ίʔυϨϏϡʔ΍ίϛοτɺ
    ςετ͸ OSS ͱಉ͡Α͏ʹߦΘΕ·͕͢ɺ
    ࣾ಺Ϧϙ
    δτϦͷ্ͰߦΘΕ͍ͯ·͢ɻ

    ࠷΋ॏཁͳ͜ͱ͸ɺ
    PayPal ͷ֤νʔϜϝϯόʔ͕νʔϜ֎෦ͷϓϩάϥϚʔ͔
    Β΋৽͍͠ίʔυΛड͚औΔͱ͍͏ࣄ͕श׳Խ͞Ε͍ͯΔͱ͍͏ࣄͰ͢ɻ
    Edelman ʹΑΔͱɺ
    GitHub ͱΠϯφʔιʔεʹҠߦ͢Δલ͸ɺ
    PayPal ͷϓϩάϥϚʔ͸ଞͷνʔϜʹରͯ͠͸
    খ͞ͳόάमਖ਼Λఏڙ͢Δ͘
    Β͍͔͠Ͱ͖ͳ͔ͬͨͱݴ͍·͢ɻ

    ΋͠൴Β͕ΑΓେ͖ͳ·ͱ·ΓͷίʔυΛఏڙ
    Λ͢Δ৔߹ɺ
    ड͚औͬͨνʔϜ͸ίʔυΛਫ਼ࠪ͠ɺ
    ৔߹ʹΑͬͯ͸θϩ͔ΒίʔυΛॻ͍ͨ৔߹ͱൺ΂ͯมΘΒ
    ͳ͍Α͏ͳࣄ͕ͨ·ʹى͖͍ͯ·ͨ͠ɻ

    νʔϜؒͰͷίʔυͷ΍ΓͱΓʹ͍ͭͯ͸ɺ
    ߴ͍ϨϕϧͷϚωʔδϟ͕ؔ
    ༩͠ͳ͚Ε͹ͳΒͳ͍͜ͱ΋͠͹͠͹Ͱͨ͠ɻ
    ͔͠͠࠷ۙͰ͸ɺ
    ৽ػೳʹରͯ͠େ෯ʹॻ͖׵͑Δࣄͳ͘νΣοΫΠϯͰ͖ΔΑ͏ʹͳΓ·ͨ͠ɻ

    ͦͷཧ༝ͷ1ͭ
    ͸ɺ
    υΩϡϝϯτʹର͢Δ৽͍͠ߟ͑Ͱ͢ɻ

    ΠϯφʔιʔεͷϓϩδΣΫτ͸ɺ
    γεςϜΛਂ͘ཧղ͢Δগ਺ͷಛ
    ݖΛ࣋ͭϓϩάϥϚʔ͚ͩͰͳ͘ɺ
    ΑΓଟ͘ͷࣾ಺ϓϩάϥϚͷ্ʹ੒Γཱ͍ͬͯͳ͚Ε͹ͳΒͳ͍ͱ Edelman
    ͸ڧௐ͍ͯ͠·͢ɻ

    ୭΋͕ϓϩδΣΫτΛֶश͠ɺ
    େ͖ͳ࢓༷มߋ͕ൃੜ͢ΔΑ͏ͳఏҊ΋Ͱ͖ΔͷͰ͢ɻ
    ·ͨɺ
    υΩϡϝϯτ(ίʔυͱ GitHub ͷίϝϯτͷ྆ํ)ʹΑͬͯɺ
    ։ൃऀ͸ΞʔΩςΫνϟมߋͷඞཁੑΛཧղ
    ͢ΔΑ͏ʹͳΓ·͢ɻ

    Ծʹ͋ͳͨ΋΋͠4ճʹ෼͚༷ͯʑͳਓʹɺ
    ͳͥͦΕ͕ෳࡶʹͳ͍ͬͯͯ௚ײతͰ͸ͳͷ
    ͔Λઆ໌͠ͳ͚Ε͹ͳΒͳ͍ͱͨ͠Βɺ
    ߟ͑ํ͕มΘΔͰ͠ΐ͏ɻ
    ·ͨɺ
    ϓϩάϥϚʔ͕ࠃΛ௒͑ͯྗΛൃش͢Δ͜ͱͰɺ
    ஌తͳ੒௕΍࢓ࣄͷ΍Γ͕͍Λײ͡ΔΑ͏ʹͳΓ·͢ɻ

    ϓ
    ϩάϥϚʔ͸ɺ
    ίʔυͷઃܭʹ͍ͭͯΑΓแׅతʹߟ͑ΔΑ͏ʹͳΓɺ
    ಉ࣌ʹίʔυϨϏϡʔ΍ςετɺ
    υΩϡϝϯ
    τͷॻ͖ํͳͲͷ৽͍͠εΩϧ΋਎ʹ͚ͭΔ͜ͱ͕Ͱ͖·͢ɻ

    Πϯφʔιʔε͸ "શһͷύϑΥʔϚϯεΛఈ্
    ͛͢Δ" ͱɺ
    Edelman ͸ݴ͍ͬͯ·͢ɻ
    Edelman ͸ɺ
    ίΞΠϯϑϥετϥΫνϟ಺ͷϞδϡʔϧͰݟ͔ͭͬͨ͋ΔηΩϡϦςΟؔ࿈ͷόάʹ͍ͭͯݴٴ
    ͍ͯ͠·͢ɻ

    ͋Δػೳ͕ɺ
    ࢓༷ॻ(RFC)ʹਖ਼֬ʹԊ͍ͬͯͳ͔ͬͨͷͰ͢ɻ

    ౰ॳɺ
    Πϯϑϥ
    ɾ
    νʔϜͷ֎͔Β൴Β
    ʹରͯ͠मਖ਼͢ΔΑ͏ʹѹྗ͕͔͔Γɺ
    ଟ͘ͷϝʔϧ͕ඈͼަ͍·ͨ͠ɻ

    ͔͠͠ɺ
    ͋Δ֎෦ͷϝϯόʔ(ηΩϡϦς
    19

    View full-size slide

  21. Ο͸ઐ໳֎)͕ RFC Λݟͯɺ
    ࣗ෼Ͱ΋मਖ਼Ͱ͖Δ͜ͱʹؾ͍ͮͨͷͰ͢ɻ

    ͦͯ͠ɺ
    ͦͷमਖ਼ҊΛఏग़ͨ͠ͱ͜Ζɺ
    ίΞΠϯϑϥνʔϜ͕͙͢ʹͦΕΛϚʔδͯ͘͠Ε·ͨ͠ɻ

    ͜ͷҳ࿩͸ɺ
    ϓϩάϥϚʔ͕ࣗൃతʹߦಈ͢Δ͜ͱͷ
    ॏཁੑͱɺ
    ͖ͪΜͱυΩϡϝϯτԽ͞Εͨඪ४ʹै͏͜ͱͷՁ஋ͱ͍͏ɺ
    2ͭͷݪଇΛ͍ࣔͯ͠·͢ɻ
    20

    View full-size slide

  22. ඼࣭ͷ޲্
    ಉ࣌ظʹɺ
    PayPal ͸ϓϥο
    τϑΥʔϜͷେ෦෼Λ Node.js ʹҠߦ͠ɺ
    OSS ͷϓϥΫςΟεΛ࠾༻ͭͭ͠ɺ
    ඼࣭޲
    ্΁ͷऔΓ૊ΈΛ։࢝͠·ͨ͠ɻ

    ඼࣭อূͷϦʔμʔͰ͋Δ Doug Simmons ʹΑΔͱɺ
    PayPal ͷ͜ͷ໨ඪʹ
    ޲͚ͨεςοϓ͸ҎԼͷ௨ΓͰͨ͠ɻ
    ΑΓଟ͘ͷϢχοτςετ
    ܧଓతΠϯςάϨʔγϣϯ
    ίʔυϨϏϡʔ
    ΑΓଟ͘ͷίʔυΧόϨοδϨϙʔτ
    ੩తղੳ
    ͢΂ͯͷձ࿩͕ެͷ৔ͰߦΘΕΔඞཁ͸͋Γ·ͤΜ͕ɺ
    GitHub ͷίϝϯτϓϩηε͸͍͔ͭ͘ͷ఺Ͱ඼࣭Λ޲
    ্͍ͤͯ͞·͢ɻ

    τϥεςουίϛολʔ͸ɺ
    ࣗ෼ͷίʔυΛϦϙδτϦʹड͚ೖΕ͍ͨͱئ͍ͬͯΔ৽ਓϓϩά
    ϥϚʔͷϝϯλʔͱͯ͠΋ޮՌతʹػೳ͠·͢ɻ

    ౤ߘऀͱτϥεςουίϛολʔͷؒͰަΘ͞ΕΔίϝϯτͷ΍
    ΓͱΓ͸ɺ
    ౤ߘऀʹͱͬͯ΋ଞͷϓϩάϥϚʔʹͱͬͯ΋ϦΞϧλΠϜʹֶशͰ͖Δྑ͍ڭࡐͱͳΓ·͢ɻ
    21

    View full-size slide

  23. จԽͷมԽ
    Πϯφʔιʔεͷ࠾༻ͱ͍͏اۀมֵʹ͸ɺ
    ैۀһͷෆ҆ͱظ଴΁ͷ৻ॏͳରԠ͕ٻΊΒΕ·͢ɻ

    PayPal ͸͜
    ͷมֵΛࢧԉ͢ΔͨΊʹɺ
    ֎෦ͷ OSS ։ൃઐ໳ՈΛޏ༻͠·ͨ͠ɻ
    ଟ͘ͷاۀͷऔక໾΍ϕςϥϯ͸ [11]ɺ
    ʮ࠷΋ॏཁͳจԽతมԽͱ͸ɺ
    ैۀһ͕ଞνʔϜʹίʔυΛఏڙ͢Δࣄ
    ΁ͷࣗ৴Λ༩͑Δ͜ͱͩʯ
    ͱߟ͑ΔʹࢸΔܦݧΛ͖ͯͨ͠Α͏Ͱ͢ɻ

    ͦͷͨΊʹ͸ɺ
    పఈతͳυΩϡϝϯςʔγϣ
    ϯͱஸೡͳݸਓࢦಋ͕͔ܽͤ·ͤΜɻ

    ಛʹ
    ʮόάʹۤ৘Λݴ͏ࣾһͷश׳Λमਖ਼͢Δश׳΁ม͑ͳ͚Ε͹ͳΒ
    ͳ͍ʯ
    ͱ Edelman ͸ࢦఠ͍ͯ͠·͢ɻ
    Harrell ͸ɺ
    νʔϜϝϯόʔΛઆಘͯ͠ɺ
    νʔϜ֎ͷ PayPal ϓϩάϥϚʔ͕ίϯτϦϏϡʔγϣϯͰ͖ΔΑ͏ʹ͠
    ͨ͜ͱΛ͍֮͑ͯ·͢ɻ

    νʔϜϝϯόʔ͸ɺ
    ֎෦ͷίʔυͷνΣοΫʹ͹͔Γ࣌ؒΛͱΒΕɺ
    ࣗ෼͕ͨͪίʔυΛ
    ॻ͚ͳ͘ͳΔͷͰ͸ͳ͍͔ͱɺ
    Α͘൓ର͍ͯ͠·ͨ͠ɻ

    ผͷاۀͷௐࠪͰ͸ɺ
    ৽͍͠ίϯτϦϏϡʔγϣϯ͸ࣗ෼
    ͷϝϯςφϯεͷखؒΛ૿΍͢͜ͱʹͳΔͱɺ
    ϓϩάϥϚʔ͕৺഑͍ͯ͠·ͨ͠ [12]ɻ
    ͔͠͠ɺ
    ݫີͳςετͱϏϧυϓϩηεͰίϯτϦϏϡʔγϣϯͷ࣭Λ֬อ͍ͯͨͨ͠Ίɺ
    ͜ΕΒͷܽ఺͸༧૝Α
    Γগͳ͔ͬͨ͜ͱ͸͝ঝ஌ͷͱ͓ΓͰ͢ɻ

    ͍ͣΕʹͯ͠΋ɺ
    ίϯτϦϏϡʔγϣϯͷνΣοΫʹ͸ߴ͍εΩϧ͕ඞ
    ཁͩͱɺ
    Harrell ͸ड़΂͍ͯ·͢ɻ

    ͦͯ͠ɺ
    ίϯτϦϏϡʔγϣϯ͸νʔϜ͕࡞੒ͨ͠ίʔυͷՁ஋ΛߴΊ͍͖ͯ·
    ͨ͠ɻ
    Edelman ͸ɺ
    ʮϞδϡʔϧͷ࡞ऀʹ͸ɺ
    ඼࣭ͱҰ؏ੑͷج४Λҡ࣋ͭͭ͠ɺ
    ίϛϡχςΟ͔ΒͷϑΟʔυόοΫ΍
    มߋʹରͯ͠ΦʔϓϯͰ͋Δ͜ͱͰɺ
    ιϑτ΢ΣΞͷՁ஋ΛߴΊ͍ͯ͘
    ͜ͱ͕ظ଴͞Ε·͢ʯ
    ͱड़΂͍ͯ·͢ɻ


    ʹΑΔͱɺ
    ։ൃऀ͸ςετΛॻ͍ͨΓίʔυϨϏϡʔΛͨ͠Γ͢Δ͜ͱ΁ͷෆຬ͔Βɺ
    ͦΕΛओு͢ΔΑ͏ʹͳͬ
    ͨͦ͏Ͱ͢ɻ
    ඼࣭໘Ͱ͸ɺ
    ϓϩάϥϚʔ͕ΠϯφʔιʔεͷόάϨϙʔτΛఏग़͢Δͱɺ
    ·ͣ͸Ϟδϡʔϧͷ୲౰ऀʹૹΒΕ
    ·͢ɻ

    ͜ͷϓϩάϥϚʔ͸ɺ
    ͦͷόάϨϙʔτΛӨڹΛड͚ΔίʔυͷίϯτϦϏϡʔλʔʹ౉͢͜ͱ͕Ͱ͖·
    ͢ɻ
    ϞδϡϥʔΞʔΩςΫνϟͱ໌֬ͳ API ఆٛ͸ɺ
    νʔϜ֎͔ΒͷίϯτϦϏϡʔγϣϯΛଅਐ͢ΔͨΊʹෆՄܽ
    ͩͱ͍͏͜ͱ͕ɺ
    ଟ͘ͷϓϩάϥϛϯάνʔϜʹΑΓ֬ೝ͞Ε͍ͯ·͢ɻ
    Πϯφʔιʔεͷ։ൃϓϥΫςΟε͸ɺ
    ຊ࣭తʹ OSS ͷ։ൃϓϥΫςΟεͱಉ͡ͳͷͰɺ
    ࣾ಺Ͱ։ൃ͞Εͨϓϩ
    δΣΫτΛ OSS Խ͢Δͷ͸ඇৗʹ؆୯Ͱ͢ɻ

    ίʔυΛҰൠެ։༻ͷϦϙδτϦʹҠಈ͠ɺ
    ࣾ಺Ͱ΍͍ͬͯͨό
    άใࠂ΍ίʔυฤूͱ͍ͬͨίϯτϦϏϡʔγϣϯΛࣾ֎Ͱ΋ಉ༷ͷํ๏Ͱ΍Δ͚ͩͳͷͰ͢ɻ
    ͨͩ͠ɺ
    ͍͔ͭ͘๏తͳนʹ௚໘͢ΔՄೳੑ͕͋Γ·͢ɻ

    ϓϩάϥϚʔ͕֎෦ͷίʔυΛϓϩδΣΫτʹ૊Έࠐ
    Μͩ৔߹Λྫʹڍ͛·͢ɻ

    ͜ͷͱ͖๏຿෦໳͸ɺ
    ͢΂ͯͷϥΠηϯεΛௐࠪͯ͠ɺ
    ൴Β͕ίʔυΛΦʔϓϯԽ͢Δ
    ݖརΛ͔࣋ͭɺ
    ͦΕΒͷίʔυͷϥΠηϯεͱ૊ΈࠐΜͩίʔυͷϥΠηϯεͱͷؒʹޓ׵ੑ͕͋Δ͔Λ֬ೝ͠
    22

    View full-size slide

  24. ͳ͚Ε͹ͳΓ·ͤΜɻ

    ·ͨɺ
    ϒϥϯυϨϏϡʔ͕ඞཁͳ৔߹΋͋Γ·͢ɻ

    PayPal Ͱ͸ɺ
    ๏຿νʔϜ͕ OSS ઐ໳
    Ոͱ૬ஊ͠ɺ
    ඞཁͳखॱΛ΢ΣϒϕʔεͰߦ͑ΔΑ͏ʹ͠·ͨ͠ɻ
    ݱ୅ͷϓϩάϥϚʔ͸ɺ
    มԽ͕੒௕ʹͭͳ͕Δ͜ͱΛֶͼ·͢ɻ

    ৽͍ٕ͠ज़΍πʔϧ͸͓͖ͯ͞ɺ
    จԽΛม͑Δ
    ͜ͱͰɺ
    ػහʹߦಈ͠ɺ
    ࠷৽ͷεΩϧΛ਎ʹ͚ͭଓ͚Δ͜ͱ͕Ͱ͖ΔͷͰ͢ɻ

    Πϯφʔιʔε͸ɺ
    ͜ΕΒ͢΂ͯͷ
    ੒Ռ΁ͷୈҰาͰ͢ɻ
    [11]: (༁஫) ݪจͰ͸ Observers from many company
    Observers from many company
    Observers from many company
    Observers from many company
    ͱॻ͔Ε͍ͯ·͢ɻ
    ͜ͷ؍ଌऀ(observers)ͱ
    ͸ɺ
    औక໾ձʹࢀՃ͢Δ΋ͷͷܾٞݖͷͳ͍ϘʔυΦϒβʔόʔͱݺ͹ΕΔਓ͔ɺ
    اۀͷมભΛ؍ଌ͠
    ͖ͯͨ௨ৗͷऔక໾͔ϕςϥϯࣾһΛҙຯ͢Δͱߟ͑ɺ
    ͜ͷΑ͏ʹ༁͠·ͨ͠ɻ
    ·ͨɺ
    ݪจʹ͸໌ࣔ͞Εͯ
    ͍·ͤΜ͕ɺ
    ΠϯφʔιʔεʹΑΔจԽతมԽΛܦݧͨ͠ਓʑΛࢦ͍ͯ͠ΔͰ͠ΐ͏ɻ
    [12]: Stol, KJ, AB Muhammad, et al. “A comparative study
    of challenges in integrating Open
    Source Software and Inner Source Software.”
    ʢhttp://www.cs.rug.nl/paris/papers/IST11.pdf ʣ Information
    and Software Technology 53 (2011): 1319–1336.
    23

    View full-size slide

  25. 1.3 ஶऀ঺հ
    Andy Oram ͸ɺ
    O'Reilly Media ͷฤूऀͰ͢ɻ

    1992 ೥͔Βಉࣾʹۈ຿͓ͯ͠Γɺ
    ݱࡏ͸Φʔϓϯιʔεٕज़
    ͱιϑτ΢ΣΞΤϯδχΞϦϯάΛઐ໳ͱ͍ͯ͠·͢ɻ

    O'Reilly Ͱͷ൴ͷஶ࡞ʹ͸ɺ
    ถࠃͰॳΊͯग़൛͞Εͨ
    Linux ͷॻ੶΍ɺ
    2001 ೥ʹग़൛͞Εͨ Peer-to-Peer ɺ
    2007೥ͷϕετηϥʔ Beautiful Code
    ͳͲ͕͋Γ·͢ɻ
    24

    View full-size slide

  26. ͓ΘΓʹ
    ຊॻ੶ͷ຋༁࣌ɺ
    ೔ຊͰ͸
    ʮσδλϧτϥϯεϑΥʔϝʔγϣϯ(DX)ʯ
    ͕όζϫʔυͱͯ͠஫໨͞
    Ε͍ͯ·͢ɻ

    ͔͠͠σδλϧτϥϯεϑΥʔϝʔγϣϯΛମݱ͠Α͏ͱ͢Δاۀ͸ຊ࣭తʹιϑ
    τ΢ΣΞاۀͱͳΔඞཁ͕͋Γɺ
    ࣾ಺Ͱιϑτ΢ΣΞΤϯδχΞΛ͔͔͑Δ಺੡Խʹ଩Λ੾Δ͜
    ͱʹͳΓ·͢ɻ
    ҰํͰσδλϧτϥϯεϑΥʔϝʔγϣϯΛ੠ߴʹڣͿ૊৫͕ɺ
    ͦͷΑ͏ͳΤϯδ
    χΞϦϯάͷࠜຊతͳ՝୊ʹऔΓ૊ΜͰ͍Δ͔ʹ͍ͭͯ͸ɺ
    ٙ໰ͷ༨஍͕͋ΔͰ͠ΐ͏ɻ
    Πϯφʔιʔε͸ΦʔϓϯιʔεͷจԽ΍ϓϥΫςΟεΛاۀʹ࣋ͪࠐΉ͜ͱͰɺ
    ࣾ಺ͷαΠϩ
    Λյ͠ίϥϘϨʔγϣϯΛՃ଎ͤ͞Δ͜ͱ͕ओͳ໨తͰ͢ɻ
    ·ͨɺ
    Πϯφʔιʔε͸ࣾ಺Ͱίʔυ
    Λҭͯͯڞ༗͢ΔจԽΛ࡞Δ͜ͱʹΑΓɺ
    ΤϯδχΞ͕ΑΓޮ཰తʹɺ
    ͦͯ͠޾ͤʹಇ͚ΔΑ͏ʹ
    ͳΔ͜ͱʹ΋ߩݙ͠·͢ɻ
    ΤϯδχΞ͕޾ͤʹͳΕΔ෩௨͠ͷྑ͍ίϥϘϨʔγϣϯ͕ࣾ಺ʹଘ
    ࡏ͢Ε͹ɺ
    ૊৫ͱΤϯδχΞͷؔ܎΋ྑ޷ʹͳΔͰ͠ΐ͏ɻ
    ίϩφՒ͸ΤϯδχΞͷಇ͖ํΛม͑·ͨ͠ɻ
    ϦϞʔτͰͷ։ൃ͕૿͑ͨ݁Ռɺ
    ࠓ·ͰҎ্ʹඇ
    ಉظͰίϛϡχέʔγϣϯΛߦ͏ඞཁੑ͕ߴ·͍ͬͯ·͢ɻ
    ࣌ؒ΍৔ॴΛҟʹ͢Δϝϯόʔ͕ί
    ϥϘϨʔγϣϯ͢Δ࣌୅ʹٻΊΒΕ͍ͯΔͷ͸ɺ
    ੵۃతͳυΩϡϝϯςʔγϣϯจԽͰ͢ɻ
    ΋ͱ΋
    ͱ͕ࠃͱ࣌ؒΛ௒͑ͨίϥϘϨʔγϣϯͰ͋ΔΦʔϓϯιʔεͷߟ͑ํΛ૊৫ʹ౷߹ͨ͠Πϯ
    φʔιʔε͸ɺ
    ࠓޙͷ෼ࢄԽͨ͠૊৫ʹΑΔ։ൃʹ΋ߩݙͯ͘͠ΕΔ͜ͱͰ͠ΐ͏ɻ
    ͨͩ͠ɺ
    Πϯφʔιʔε͸Ұ໷ʹͯҭͭ͜ͱ͸͋Γ·ͤΜɻ
    Πϯφʔιʔε͸ଟ͘ͷݸਓ͕Ռͨ͠
    ͨ༗ࢤͷߩݙʹΑͬͯৢ੒͞Ε·͢ɻ
    ΤϯδχΞͷಇ͘؀ڥΛվળ͠ɺ
    ڞ૑͕ੜ·ΕΔ૊৫Λ࣮
    ݱ͢ΔͨΊʹΠϯφʔιʔε͸શͯͷਓʹ։͔Ε͍ͯ·͢ɻ
    InnerSource
    Commons
    ͸Πϯφ
    ʔιʔεͷཧղɺ
    ద༻ɺ
    ࣮ફΛਪਐ͢ΔެӹஂମͰ͢ɻ
    ஌ࣝͱܦݧΛ஝ੵɺ
    ڞ༗͠ɺ
    ϕετϓϥΫ
    ςΟεΛݟ͚ͭɺ
    ීٴ׆ಈΛ͢Δɺ
    ͦͷ࣮ଶ͸ੈքதͷ༗ࢤϝϯόʔͷߩݙʹΑΔ΋ͷͰ͢ɻ

    ॻͷ຋༁΋༗ࢤͷߩݙʹΑΓ࣮ݱ͠·ͨ͠ɻ
    ͜ͷ຋༁ʹ͸࿨༁Ҏ্ʹɺ
    େมେ͖ͳ΋ͷؚ͕·Ε͍ͯ·͢ɻ
    ຊॻͷ຋༁͸Πϯφʔιʔεʹ
    ؔ͢ΔॳظͷϓϩδΣΫτͰɺ
    ͦ΋ͦ΋Πϯφʔιʔεʹ͍ͭͯͷ೔ຊޠʹ͓͚Δڞ௨ཧղ͕ଘ
    ࡏ͠ͳ͍ͱ͜Ζ͕ελʔτϥΠϯͰͨ͠ɻ
    Πϯφʔιʔεͷ୅දతͳϩʔϧͰ͋Δ
    "τϥεςου
    ίϛολʔ" ͷଘࡏ΍ɺ
    ਖ਼͍͠จষͷଊ͑ํͳͲɺ
    ίϛϡχςΟͰଟ͘ͷҙݟަ׵͕͞Εɺ
    ຋༁ʹ
    ࢸ͍ͬͯ·͢ɻ
    ࢲΛؚΊͨίϛϡχςΟϝϯόʔʹͱͬͯ΋ɺ
    ຊॻͷ຋༁׆ಈ͸ΠϯφʔιʔεΛ
    ਖ਼ֶ͘͠Ϳྑ͍ػձʹͳΓ·ͨ͠ɻ
    ͜ͷຊΛಡΜͩ͋ͳͨ͸ɺ
    ΠϯφʔιʔεΛཧղ͢ΔୈҰาΛ౿Έग़͠·ͨ͠ɻ
    ͜ͷཱྀ͸จԽม
    ֵͷཱྀͰ͋Γɺ
    ऴΘΔ͜ͱ͸͋Γ·ͤΜɻ

    ͔͠͠ɺ
    ৺഑͝ແ༻! ͜ͷཱྀʹ͸ InnerSource
    Commons Λ͸͡Ίͱͨ͠ੈքதͷڧྗͳ஥͕͍ؒ·͢ɻ
    ͦΕʹՃ͑ɺ
    ΠϯφʔιʔεΛ࣮ݱ͢
    ΔͨΊͷύλʔϯूͰ͋Δ Πϯφʔιʔε ύλʔϯϒοΫ
    25

    View full-size slide

  27. ʢhttps://patterns.innersourcecommons.org/v/jp/ ʣ
    ͱɺ
    ॱΛ௥ֶͬͯ΂Δڭࡐͷ Πϯφʔιʔε
    ϥʔχϯάύε
    ʢhttps://innersourcecommons.org/ja/learn/learning-path/ ʣ

    ΋ఏڙ͞Ε͍ͯ·͢ɻ
    ੋඇҰॹʹΠϯφʔιʔεͷཱྀΛָ͠Έ·͠ΐ͏!
    ෰෦ ༎थ
    ༁ऀҰཡ (GitHub ΞΧ΢ϯτ໊)
    @yuhattor (୅දऀ)
    @amixedcolor
    @bory-kb
    @kawaguti
    @masskaneko
    @shrimp78
    @ystk
    26

    View full-size slide