$30 off During Our Annual Pro Sale. View Details »

オープンソースのベストプラクティスを企業内で実践/How to implement InnerSource

Yuichi Tanaka
February 18, 2021
10k

オープンソースのベストプラクティスを企業内で実践/How to implement InnerSource

Developers Summit 2021の「オープンソースのベストプラクティスを企業内で実践 ~インナーソースのすすめ」というセッションの発表資料です。
https://event.shoeisha.jp/devsumi/20210218/session/3044/

Yuichi Tanaka

February 18, 2021
Tweet

Transcript

  1. 田中裕一 (@yuichielectric), 2021/02/18
    Developers Summit 2021
    オープンソースのベストプラクティスを企業内で実践
    〜インナーソースのすすめ
    服部佑樹 (@yuhattor) 2021/02/18

    View Slide

  2. Developers Summit 2021
    • Microsoft における InnerSource – Open Source プラクティスの社内実装
    • GitHubを使ってどのようにInnerSourceを実践するか
    Agenda

    View Slide

  3. Developers Summit 2021
    どのようにインナーソースを実践するか
    服部 佑樹
    @yuhattor
    Azure AppDev Specialist, Microsoft

    View Slide

  4. Azure DevOps と GitHub は
    同じチームが開発しています。
    Microsoft にいる10万⼈以上の
    エンジニアの標準ツールです
    GitHub Actions をはじめとす
    る機能開発と認証連携

    View Slide

  5. 田中裕一 (@yuichielectric), 2021/02/18
    Developers Summit 2021
    InnerSource とは

    View Slide

  6. InnerSource is ...
    “Applying the concepts and lessons
    of successful open source ecosystems to how
    a company develops software internally”
    “成功したオープンソース・エコシステムのコンセプトと学びを、
    企業が社内でソフトウェアを開発する⽅法に適⽤する"
    GitHub
    innersourcecommons.org

    View Slide

  7. InnerSourceは、企業⽂化や企業の制限を尊重しつつ、オープンソースに似た内部の
    シェアリングエコノミー に向けて⽂化的に変⾰していく旅です。
    à 開発効率を上げ、より良い顧客満⾜度と成果につなげることが⽬的です。

    View Slide

  8. 田中裕一 (@yuichielectric), 2021/02/18
    Developers Summit 2021
    Microsoft が InnerSource を始めた背景と
    InnerSource の効果
    服部 佑樹 (@yuhattr), 2021/02/18

    View Slide

  9. http://www.bonkersworld.net/images/2011.06.27_organizational_charts.png
    柔軟でない組織
    - 規模拡⼤に伴う官僚制組織化
    コラボレーションの低下
    - 部⾨間の競争激化や政治
    モノリシックで、⼤きくなりすぎたソースコード
    - コンウェイの法則により、ソースコードも⼀枚岩に
    - コンポーネントの共有も難しく開発の難易度があがる

    View Slide

  10. Mission
    Our mission is to enable the world's best engineering
    teams with world-class tools and systems that help
    them ship products their customer love.
    私たちの使命は、世界最⾼のエンジニアリングチームが顧客に愛される製品を出荷するための
    ワールドクラスのツールとシステムを利⽤できるようにすることです。
    #開発基盤の整備
    #開発者のサポート
    #GitHub 推進 #社内StackOverflowの整備
    #OpenSourceの促進 #Inclusiveデザインの適⽤(アクセシビリティ) #プラクティスの社内共有
    #インナーソースの適⽤

    View Slide

  11. コントリビューションの可視化
    • 63,000 Pull Request
    • 3,000 Repository
    • 11,000 Contributor
    • 35,000 Reviewer
    *FY18時点
    コラボレーションの増加
    オープンソースコミュニティと同じプロセス
    とプラクティスを使⽤して、組織内でチーム
    が共同作業します
    サイロを壊す
    チーム間でのコラボレーションの簡素化、知
    識の共有、コードの再利⽤の改善、安全な
    ワークフロー
    開発者の満⾜度向上
    インナーソースとオープンソースのプラクティ
    スを活⽤することで、開発者の満⾜度が⾼まり、
    興味のあるプロジェクトに取り組み、スキルを
    向上させることができます

    View Slide

  12. InnerSource を実現する 4 ポイント
    発⾒可能性
    パートナーチームがコードベース、ドキュメント、およびその他の関連資料を
    すべて検索し、事前のドメイン知識なしでプロジェクトを探索すること
    実⾏可能性
    パートナーチームがソースコードを迅速かつ簡単にコンパイルおよび実⾏できる、または別プロ
    ジェクトの⼀部としてソースコードを簡単に使⽤できること。カプセル化されており、即実⾏で
    きる。
    貢献性
    パートナーチームが問題を簡単に報告し、質問し、新しい機能を提案し、障壁なく前向きな⽅法
    でコミットをアップストリームすること
    継続性
    すべてのチームがコードをメンテナンスし続けること

    View Slide

  13. InnerSource をドライブするということは
    GitHub
    • コラボレーションを妨げたり、
    遅らせたりする障壁を取り除く/減らす
    • オープン/協⼒的な⾏動を奨励する
    • 客観的な尺度で現状を評価し、伝える
    • ステータスと進捗状況を測定するための
    データを提供する
    • ⽂化的変化を促進する
    • ⼈の働き⽅を決める
    • 新しい統制プロセスの追加
    • 活動を抑制する
    • コードベースのキュレーション
    • 新しいツールを⾃前で構築
    • 新しいタイプのリポジトリを作成
    以下である。 以下でない。

    View Slide

  14. InnerSource をドライブするということは
    GitHub
    • 特定の⽬的のための、複雑なソリューション
    • 貢献 = 気晴らし
    • ⾃分のコード
    • ⾞輪の再発明
    • 製品 = コード
    • よりシンプルなモジュール式コンポーネント
    • 貢献 = コラボレーションとコミュニティへの投資
    • 私たちのコード
    • 再利⽤し構築
    • 製品 != コード
    Product
    Product
    Product
    Product
    インナーソースの狙い
    Product
    Product
    Product
    Product
    最⼤化を狙う
    少ない共有部分
    かつての運⽤

    View Slide

  15. 田中裕一 (@yuichielectric), 2021/02/18
    Developers Summit 2021
    Microsoft の InnerSource プラクティス

    View Slide

  16. 1. 発⾒ 2. デザイン 3. 開発 4. デプロイ 5. メンテナンス
    • PMが新機能のリクエストを持ち込

    • PMが要件の検証(顧客インタ
    ビュー、既存のバックログに対す
    る機能の検証)を⾏い、
    InnerSourcing のための機能の優
    先順位を決定
    • PMが要件ドキュメントを作成
    • PMは、製品の⼀貫性(ユーザーエ
    クスペリエンス、ルック&フィー
    ル、製品ロードマップの整合性な
    ど)を確保するための要件をレ
    ビューします。
    • Dev/PM が要件をレビューし、設
    計ソリューションを議論します。
    • PMは、必要に応じてさらなる顧
    客検証を実施します。
    • Dev は、作業を開始する前に、サ
    ポートしている開発者と設計計画
    を議論します。
    • 開発者は、開発チームの延⻑線
    上で働きます (すなわち、該当
    プロダクトのコードベースで機
    能を構築、PR をチェック、機
    能をテスト、バグバッシュをホ
    スト、デモ、ドキュメントの作
    成を⾏います)。
    • Dev は必要に応じてガイダンス
    を提供し、ブロッカーを取り除
    きますます。
    • PMが機能を有効にする前にコ
    ミュニティに新機能のリリース
    を送信します。
    • 顧客に影響を与える機能は、混
    乱を防ぐために Feature Flag を
    ⽤います。
    • コードは通常、プルリクエスト
    を完了してから 4 時間以内に本
    番環境にデプロイされます。
    • インナーソース中は、開発
    者が開発した機能を⽀援し
    たり、デバッグしたりしま
    す。
    • 最終的には、開発チームが
    製品の責任者となり、開発
    終了後も機能のメンテナン
    スを⾏います。
    • Weekly PM シンク • Weekly Dev/PM シンク
    PM toolkit
    • インタビューのテンプレート
    • サンプル要件テンプレート
    • 製品ビジョン - スライド7
    • 機能バックログ
    PM toolkit
    • 新機能リリーステンプレート
    早めに、オープンに、書⾯でコミュニケーションをとる
    貢献者をチームの
    ⼀員として扱う
    ⽂書化して実験を簡単に
    ex: 共通の要件 ex: 30⽇間保証
    メンターシップ
    貢献の Recognition
    Best Practices
    Microsoft の InnerSource フレームワーク

    View Slide

  17. 役割
    タスク

    View Slide

  18. Microsoft の収集する Customer Metrics
    (Customer = 社内ユーザー)
    メトリクスの収集をし、社内での InnerSource 促進の管理をします。
    • Contributor が複数いるリポジトリ
    • CONTRIBUTING.md が存在するリポジトリ
    • README.md が存在するリポジトリ
    • Fork の数
    例)
    1ヶ⽉の開発状況の変化: (+3%) (+0.1%) (+0.9%)
    Contributor が複数いるリポジトリ CONTRIBUTING.md ファイルが存在するリポジトリ README.md ファイルが存在するリポジトリ

    View Slide

  19. Microsoft の収集する Customer Metrics
    (Customer = 社内ユーザー)
    期中のプルリクエストの数と、チームを越えたプルリクエストの数をトラックします
    プルリクエスト チームを越えたPR %
    Q1 FY19 852k 37k 5.6%
    Q2 FY19 810k 35k 4.2%
    Q3 FY19 912K 39k 4.8%
    Q4 FY19 1.0M 46k 4.1%
    Q1 FY20 1.2M 43k 3.6%

    View Slide

  20. Microsoft 開発チームの OKRs の例
    Object
    コードオーナーが、⾃分たちのソフトウェアがどのよう
    に使われているかを理解し、コントリビューターを募集
    する⽅法を理解している
    Key Result
    • InnerSourceの貢献パイプラインのメトリクスを定義
    し、消費しやすい⽅法で提供する
    (使⽤状況、インタラクション、および貢献の追跡)
    • InnerSourceの貢献パイプラインMVPが、関連する2
    つのチームで採⽤されていること
    Action Item
    • チームが使⽤できるInnerSourceモデルとダッシュ
    ボードMVPの開発
    • モデルとダッシュボードを公開
    • ファネルを改善するためのアクション指向のガイダン
    スとワークフローを開発し、提供します。
    InnerSource OKR
    Object
    マイクロソフトのエンジニアがコードの共同作業を可能
    にする
    Key Result
    • Microsoftのすべてのアクティブなアカウントで、
    InnerSourceガイドラインが導⼊されたForksプロ
    ジェクトがある(〇〇%から◯ポイント増加)
    Action Item
    • アカウント所有者のために Fork プロジェクトを作成
    するためのワークフローを作成する
    • Fork プロジェクトをまだ持っていない関連するすべて
    のMicrosoftアカウントにバナーを作成/ロールアウト
    する
    InnerSource OKR

    View Slide

  21. 田中裕一 (@yuichielectric), 2021/02/18
    Developers Summit 2021
    プロダクト開発チーム以外の InnerSource

    View Slide

  22. ⾃社プロダクト以外の InnerSource
    Practice: Microsoft サービス部⾨

    View Slide

  23. プロダクト開発と同⼀の開発フロー
    Azure Boards
    UserVoice
    IdeaFarm
    IP Council
    SI Field
    BP Field
    Component
    Library
    IPKit
    1801
    1804
    1807
    1808 Aka.ms Link
    Publish Content
    Update Library
    Portfolio
    IPForum
    1804
    1807
    1808
    vNext
    1801
    Offering
    Sales Content
    Scoping Content
    Delivery Content
    Aka.ms Link

    View Slide

  24. ここまでのまとめ
    GitHub
    InnerSource は⽂化変⾰の旅。
    継続的に社内で⽂化を育てましょう。
    発⾒可能性 / 実⾏可能性 / 貢献性 / 継続性 が重要。
    InnerSource のメトリクスをとってみましょう。
    Fun!
    InnerSource の活動は社内統制や標準化の活動の⼀環としてでは
    なく、“投資” として⾏いましょう。
    そして、何よりも楽しんでコラボレーションをしよう。

    View Slide

  25. ాத ༟Ұ (@yuichielectric), 2021/02/18
    Developers Summit 2021
    (JU)VCΛ࢖ͬͯͲͷΑ͏ʹ
    ΠϯφʔιʔεΛ࣮ફ͢Δ͔

    View Slide

  26. Developers Summit 2021
    ͲͷΑ͏ʹΠϯφʔιʔεΛ࣮ફ͢Δ͔
    ాத ༟Ұ
    γχΞιϦϡʔγϣϯζΤϯδχΞ
    yuichielectric
    yuichielectric

    View Slide

  27. Developers Summit 2021
    ͲͷΑ͏ʹΠϯφʔιʔεΛ࣮ફ͢Δ͔
    ͲͷϓϩδΣΫτΛ
    ΠϯφʔιʔεԽ
    ͢Δ͔ʁ
    ϓϩδΣΫτΛ
    Ͳ͏ݟ͚ͭͯ΋Β͏͔ʁ
    Ͳ͏΍ͬͯ
    ίϯτϦϏϡʔτ
    ͯ͠΋Β͏͔ʁ
    ͏·͍͍ͬͯ͘Δ͔Λ
    Ͳ͏ଌΔʁ

    View Slide

  28. Developers Summit 2021
    ͲͷΑ͏ʹΠϯφʔιʔεΛ࣮ફ͢Δ͔
    ͲͷϓϩδΣΫτΛ
    ΠϯφʔιʔεԽ
    ͢Δ͔ʁ
    ϓϩδΣΫτΛ
    Ͳ͏ݟ͚ͭͯ΋Β͏͔ʁ
    Ͳ͏΍ͬͯ
    ίϯτϦϏϡʔτ
    ͯ͠΋Β͏͔ʁ
    ͏·͍͍ͬͯ͘Δ͔Λ
    Ͳ͏ଌΔʁ

    View Slide

  29. Developers Summit 2021
    ͲͷΑ͏ʹΠϯφʔιʔεΛ࣮ફ͢Δ͔
    ͍͖ͳΓΈΜͳ͓ޓ͍ίϯτϦϏϡʔτ͠߹͍·͠ΐ͏ʂ
    ͱݴͬͯ΋޿·Βͳ͍
    ͲͷϓϩδΣΫτΛΠϯφʔιʔεԽ͢Δ͔ʁ

    View Slide

  30. Developers Summit 2021
    ͲͷΑ͏ʹΠϯφʔιʔεΛ࣮ફ͢Δ͔
    Ϣʔβʔ
    ίϯτϦϏϡʔλʔ
    ϝϯςφʔ

    View Slide

  31. Developers Summit 2021
    ͲͷΑ͏ʹΠϯφʔιʔεΛ࣮ફ͢Δ͔
    wطଘͷϓϩδΣΫτͰࣾ಺Ͱ޿͘࢖ΘΕ͍ͯΔ࢖ΘΕΔ΋ͷ
    w ϓϥοτϑΥʔϜɺϥΠϒϥϦɺϑϨʔϜϫʔΫɺ4%,ͳͲ
    w Ϗϧυɺ$*ج൫౳ͷ։ൃπʔϧ
    w શࣾతͳ'"2
    w ࣾ಺ن໿౳ͷυΩϡϝϯτ
    ͲͷϓϩδΣΫτΛΠϯφʔιʔεԽ͢Δ͔ʁ

    View Slide

  32. Developers Summit 2021
    ͲͷΑ͏ʹΠϯφʔιʔεΛ࣮ફ͢Δ͔
    ͲͷϓϩδΣΫτΛ
    ΠϯφʔιʔεԽ
    ͢Δ͔ʁ
    ϓϩδΣΫτΛ
    Ͳ͏ݟ͚ͭͯ΋Β͏͔ʁ
    Ͳ͏΍ͬͯ
    ίϯτϦϏϡʔτ
    ͯ͠΋Β͏͔ʁ
    ͏·͍͍ͬͯ͘Δ͔Λ
    Ͳ͏ଌΔʁ

    View Slide

  33. Developers Summit 2021
    ͲͷΑ͏ʹΠϯφʔιʔεΛ࣮ફ͢Δ͔
    Enterprise
    Organization
    Repository
    Repository
    Organization
    Repository
    ϓϩδΣΫτΛͲ͏ݟ͚ͭͯ΋Β͏͔ʁ
    wࣾ಺ϝϯόʔ͕ϦϙδτϦʹΞΫηε
    Ͱ͖Δඞཁ͕͋Δ
    w*OUFSOBMϦϙδτϦ&OUFSQSJTF಺શମ͔Β
    3FBEͰ͖ΔϦϙδτϦ

    View Slide

  34. https://github.com/sap/project-portal-for-InnerSource

    View Slide

  35. https://github.com/helaili/enterprise-showcase

    View Slide

  36. Developers Summit 2021
    ͲͷΑ͏ʹΠϯφʔιʔεΛ࣮ફ͢Δ͔
    w1SJWBUF(JU)VC1BHFT(JU)VC"DUJPOTͰɺ(JU)VC͚ͩͰࣾ಺ݶఆͷ
    ΠϯφʔιʔεϙʔλϧαΠτΛߏங͢Δ͜ͱ΋Մೳ
    w දࣔ͢ΔϦϙδτϦͷ৘ใ͸"DUJPOTͰఆظతʹߋ৽
    w ͦͷ಺༰Λ(JU)VC1BHFTʹσϓϩΠ
    ϙʔλϧαΠτͷσϓϩΠઌ

    View Slide

  37. Developers Summit 2021
    ͲͷΑ͏ʹΠϯφʔιʔεΛ࣮ફ͢Δ͔
    ͲͷϓϩδΣΫτΛ
    ΠϯφʔιʔεԽ
    ͢Δ͔ʁ
    ϓϩδΣΫτΛ
    Ͳ͏ݟ͚ͭͯ΋Β͏͔ʁ
    Ͳ͏΍ͬͯ
    ίϯτϦϏϡʔτ
    ͯ͠΋Β͏͔ʁ
    ͏·͍͍ͬͯ͘Δ͔Λ
    Ͳ͏ଌΔʁ

    View Slide

  38. Developers Summit 2021
    ͲͷΑ͏ʹΠϯφʔιʔεΛ࣮ફ͢Δ͔
    ॳΊͯίϯτϦϏϡʔτ
    ͢Δਓͷෆ҆Λ
    औΓআ͘͜ͱ͕େࣄ
    w Ͳ͏͍͏ίϯτϦϏϡʔτ͕
    ड͚ೖΕΒΕΔͷ͔ʁ
    w Ͳ͏͍͏ྲྀΕͰίϯτϦϏϡʔτ
    ͨ͠Βྑ͍ͷ͔ʁ
    w Θ͔Βͳ͍͜ͱ͕͋ͬͨΒ୭ʹ
    ฉ͚͹Α͍ͷ͔ʁ
    w ԿΛຬͨͨ͠ΒϓϧϦΫΤετ͕
    Ϛʔδ͞ΕΔͷ͔ʁ

    View Slide

  39. Developers Summit 2021
    ͲͷΑ͏ʹΠϯφʔιʔεΛ࣮ફ͢Δ͔
    3&"%.&NE
    νʔϜ֎͔ΒͷίϯτϦϏϡʔτΛ
    ׻ܴ͍ͯ͠Δ͜ͱ
    Ͳ͏͍͏छྨͷίϯτϦϏϡʔτΛ
    ड͚෇͚͍ͯΔͷ͔
    ίϯτϦϏϡʔτͷ۩ମతͳखॱ
    https://github.com/asciidwango/js-primer

    View Slide

  40. Developers Summit 2021
    ͲͷΑ͏ʹΠϯφʔιʔεΛ࣮ફ͢Δ͔
    $0/53*#65*/(NE
    όάใࠂͷ࢓ํ
    ػೳཁ๬ͷใࠂͷ࢓ํ
    ϓϧϦΫΤετͷ࡞Γํ
    ϓϧϦΫΤετͷϚʔδ৚݅
    ϨϏϡʔϓϩηε

    View Slide

  41. https://github.com/asciidwango/js-primer/blob/master/CONTRIBUTING.md

    View Slide

  42. Developers Summit 2021
    ͲͷΑ͏ʹΠϯφʔιʔεΛ࣮ફ͢Δ͔
    ΠγϡʔɾϓϧϦΫΤετ
    ςϯϓϨʔτ
    ొ࿥͢ΔΠγϡʔ΍ϓϧϦΫΤετ
    ͷछྨ͝ͱʹඞཁͳ৘ใͷ߲໨Λ
    ςϯϓϨʔτʹؚΊ͓ͯ͘ɻ

    View Slide

  43. Developers Summit 2021
    ͲͷΑ͏ʹΠϯφʔιʔεΛ࣮ફ͢Δ͔
    $0%&08/&34
    ϑΝΠϧͷछྨ΍ύεຖʹΦʔφʔ
    Λࢦఆ
    ϓϧϦΫΤετ࡞੒࣌ʹ
    มߋ͞ΕͨϑΝΠϧͷΦʔφʔʹ
    ϨϏϡΞʔΛࣗಈઃఆ͢Δ͜ͱ͕
    Մೳ
    # Φʔφʔ͸ݸਓͰ΋νʔϜͰ΋ྑ͍
    * @global-owner1 @global-owner2
    *.js @frontend-team
    *.go @backend-team
    *.css @design-team
    /build/logs/ @infra-team
    docs/* @mr-document

    View Slide

  44. Developers Summit 2021
    ͲͷΑ͏ʹΠϯφʔιʔεΛ࣮ફ͢Δ͔
    Ϛʔδ͞ΕΔ৚݅ͷ໌֬Խ
    $0%&08/&34ʹΑΔϨϏϡʔඞਢ
    $*δϣϒ͕੒ޭ͍ͯ͠Δ͜ͱ
    ʜ

    View Slide

  45. https://github.com/todogroup/repolinter

    View Slide

  46. Developers Summit 2021
    ͲͷΑ͏ʹΠϯφʔιʔεΛ࣮ફ͢Δ͔
    ͲͷϓϩδΣΫτΛ
    ΠϯφʔιʔεԽ
    ͢Δ͔ʁ
    ϓϩδΣΫτΛ
    Ͳ͏ݟ͚ͭͯ΋Β͏͔ʁ
    Ͳ͏΍ͬͯ
    ίϯτϦϏϡʔτ
    ͯ͠΋Β͏͔ʁ
    ͏·͍͍ͬͯ͘Δ͔Λ
    Ͳ͏ଌΔʁ

    View Slide

  47. Developers Summit 2021
    ͲͷΑ͏ʹΠϯφʔιʔεΛ࣮ફ͢Δ͔
    wνʔϜ֎ͷϝϯόʔ͕࡞੒ͨ͠Πγϡʔͷׂ߹
    w࡞੒͞ΕͨΠγϡʔʹฦ౴͢Δ·Ͱͷ࣌ؒ
    wνʔϜ֎ͷϝϯόʔ͕࡞੒ͨ͠ϓϧϦΫΤετͷׂ߹
    wνʔϜ֎ͷϝϯόʔ͕࡞੒ͨ͠ϓϧϦΫΤετ͕Ϛʔδ͞Εׂͨ߹
    wνʔϜ֎ͷϝϯόʔ͕ϨϏϡʔͨ͠ϓϧϦΫΤετͷׂ߹
    wύοέʔδͷμ΢ϯϩʔυ਺
    ɾɾɾ
    ͏·͘ߦ͍ͬͯΔ͔Ͳ͏͔ΛͲ͏΍ͬͯ೺Ѳ͢Δʁ

    View Slide

  48. https://github.com/Autodesk/hubble

    View Slide

  49. Developers Summit 2021
    ͲͷΑ͏ʹΠϯφʔιʔεΛ࣮ફ͢Δ͔
    ͲͷϓϩδΣΫτΛ
    ΠϯφʔιʔεԽ
    ͢Δ͔ʁ
    ϓϩδΣΫτΛ
    Ͳ͏ݟ͚ͭͯ΋Β͏͔ʁ
    Ͳ͏΍ͬͯ
    ίϯτϦϏϡʔτ
    ͯ͠΋Β͏͔ʁ
    ͏·͍͍ͬͯ͘Δ͔Λ
    Ͳ͏ଌΔʁ

    View Slide

  50. Developers Summit 2021
    ͲͷΑ͏ʹΠϯφʔιʔεΛ࣮ફ͢Δ͔
    πʔϧ͸จԽΛม͑Δ৮ഔ
    Πϯφʔιʔε
    ͸จԽ
    จԽΛม͑Δ
    ͷ͸ͱͯ΋େม
    Ͱ΋ɺπʔϧͷ
    ಋೖͰਓͷߦಈ
    ͕มΘΔ
    ߦಈͷมԽ͕
    จԽ͕มΘΔ
    ͖͔͚ͬͱͳΔ

    View Slide

  51. Developers Summit 2021
    ͲͷΑ͏ʹΠϯφʔιʔεΛ࣮ફ͢Δ͔
    w*OOFS4PVSDF$PNNPOT*OOFS4PVSDFͷίϛϡχςΟ
    w IUUQTJOOFSTPVSDFDPNNPOTPSH
    w*OOFS4PVSDF1BUUFOT*OOFS4PVSDFΛ࣮ફ͢Δ্Ͱͷύλʔϯू
    w IUUQTHJUIVCDPN*OOFS4PVSDF$PNNPOT
    *OOFS4PVSDF1BUUFSOT
    wΠϯφʔιʔε༻ϙʔλϧαΠτ࣮૷
    w IUUQTHJUIVCDPNPDUPEFNPQSPKFDUQPSUBMGPS
    JOOFSTPVSDF
    w IUUQTHJUIVCDPNIFMBJMJFOUFSQSJTFTIPXDBTF
    ࢀߟ৘ใ
    wSFQPMJOUFSϦϙδτϦʹඞཁͳ৘ใ͕ஔ͔Ε͍ͯΔ͔Ͳ͏͔ͷ
    νΣοΫπʔϧ
    w IUUQTHJUIVCDPNUPEPHSPVQSFQPMJOUFS
    w֤ϦϙδτϦͷΞΫςΟϏςΟͷՄࢹԽπʔϧ
    w IUUQTHJUIVCDPN"VUPEFTLIVCCMF
    w IUUQTHJUIVCDPNDIBPTTHSJNPJSFMBC

    View Slide

  52. View Slide