12月8日のアドベントカレンダを担当するのは、株式会社 日立製作所の岩田です。Open Chain Japan WGの「役割ごとの教育資料」SWGのリーダを担当しています。宜しくお願いします。
さて、皆さんはOSSを利用する上で、一体何に気を付けていますか。又、社内やチーム内でOSSを利用するための教育を行う場合、どんな構成、内容にするでしょう。OSSを利用するソフトウェア開発者は、どんな事を知っておけば良いのでしょう。こんな疑問に答えるために、OSSに関係する役割ごとにどんな教育資料が良いかを、考えてみる事にしました。下記内容は、もちろんOpen Chainの仕様やカリキュラムを参考にしています。
1.教育事例の収集と分析
Open Chainの設立前から、OSSに関する教育を実施している会社もある様です。そこで4社から、教育の体系、対象者、形態(講演会、集合研修、e-learning、資料閲覧、他)、タイミング、英語版有無、等を調べました。各教育の目次、章/節の概要を分析し、ソフトウェア開発者向けの構成を纏めました。その構成例は下記の通りです。
(1)OSSとは
(2)知的財産権
(3)OSSライセンス
(4)OSSコンプライアンスプログラム
(5)OSS導入時の検討
(6)OSSレビュー
(7)OSS配布
(8)まとめ
(9)問い合わせ先
(10)参考文献・団体
先ずは、ソフトウェア開発者向けをターゲットにしたのは、OSSを社内やチーム内で一番最初に利用するのはソフトウェア開発者であると考えたからです。
2.具体的な教育資料の例の作成
実際に具体的な、ソフトウェア開発者向けの教育資料の例を、「役割ごとの教育資料」SWGで検討してみました。
(1)OSSとは
OSSを一度も利用した事が無いソフトウェア開発者を意識して、一般的なOSSの定義や、対象としているビジネス上でのOSSの利用事例(会社やチームが対象としているビジネス毎に相違)、OSSを利用するメリットやデメリット、他について教えてあげてはいかがでしょう。
(2)知的財産権
特にOSSに関係する知的財産権は、著作権、特許権があります。OSSはソフトウェアなので、それぞれのOSSは著作権で保護されていています。著作権には、改変、配布(頒布)、複製する権利があります。これらの事が、わかり易く説明出来ると良いですね。
(3)OSSライセンス
OSSライセンスを守る事で著作権上で得られる権利(言い換えれば、改変、配布(頒布)するためにはOSSライセンスを守る必要があるという事)、OSSライセンスの例や、パーミッシブなOSSライセンス、コピーレフト・互恵的なOSSライセンスの特徴、等を説明してはどうでしょう。
(4)OSSコンプライアンスプログラム
Open Chainの仕様では、ポリシー、プロセス、トレーニングやツール等から成るOSSコンプライアンスプログラムを作る事を推奨しています。先ずは、社内やチーム内でOSSを利用する上でのポリシーを共有しましょう。(ポリシーは、対象とするビジネスのユースケース毎に異なるかもしれません。)次に、OSSに関係する体制、それぞれのメンバーがOSSに関係する役割を示してあげましょう。それから、自分たちのソフトウェア開発プロセスの中で、OSSに関係するプロセス(OSSリスト作成、OSSレビュー、OSS配布物確認)がどの様に組み込まれているかを説明しましょう。
(5)導入時の検討
ライセンスの特徴で注意すべき点、知的財産権(特許権他)に関して注意すべき点、を説明しましょう。
(6)OSSレビュー
OSSレビューでの収集する情報とレビュー内容、利用可能なツール、他について説明しましょう。
(7)OSS配布
対象とするビジネス形態の中で、その様にOSSが配布されるかを、事例も含めて説明しましょう。又、ソフトウェアサプライチェーンの中で、OSSの不適切な利用やライセンス情報の不足がもたらす影響について、説明しておきましょう。
(8)まとめ
(9)問い合わせ先
(10)参考文献・団体
(9)~(10)は、更に社内やチーム内でOSSに関する理解を深めるために有効だと考えています。
それから、特に(2)、(3)は、社内やチーム内で共通している法律用語の解釈を使うと、よりわかり易くソフトウェア開発者に説明出来るかもしれません。又、(4)~(7)では、社内やチーム内の体制や、実際に使用しているソフトウェア開発工程に当てはめて説明すると、よりソフトウェア開発者の理解を深める事が出来ると思います。工夫して下さい。
実際の教育資料の例を、マークダウン形式で下記URLに示しています。参考にして下さい。
https://github.com/OpenChain-Project/OpenChain-JWG/tree/master/Education_Material/Training/chapters
明日は、tech_nomad_さんが、『論文チーム(スキル標準)』というタイトルで語ってくれます。OSSの利用に関係する役割の中で、それぞれの役割の人がどういうスキルを持っていた方が良いか、ってなかなか難しいテーマですよね。私も大変興味あるテーマで、楽しみにしています。
English overview
Yoshitaka Iwata of Hitachi, Ltd. will be on duty for the Advent calendar on December 8th. I am the leader of the "Educational Materials for Role" SWG of the Open Chain Japan WG. Thank you in advance.
By the way, what are you careful about when using OSS? Also, what kind of structure and content will you use when conducting education for using OSS within the company or team? What should software developers know to use OSS need? In order to answer these questions, I decided to think about what kind of educational materials would be good for each role related to OSS. The following content is, of course, based on the Open Chain specifications and curriculum.
-
Collection and analysis of education cases
It seems that some companies have been educating on OSS even before the establishment of Open Chain. Therefore, we investigated the system, target member, form (lectures, group training, e-learning, material browsing, etc.), timing, and the existence of the English version of four companies. We analyzed the table of contents of each education and the outline of chapters / sections, and summarized the structure for software developers. The structure example is as follows.
(1) What is OSS?
(2) Intellectual property rights
(3) OSS license
(4) OSS compliance program
(5) Examination when introducing OSS
(6) OSS review
(7) OSS distribution
(8) Summary
(9) Contact information
(10) References / organizations
First of all, we targeted software developers because we thought that software developers would be the first to use OSS internally or within a team. -
Development of examples of specific educational materials
Actually specific examples of educational materials for software developers were examined by the "Educational materials for Role" SWG.
(1) What is OSS?
Considering software developers who have never used OSS, how about telling them about general OSS definitions, usage examples of OSS in the target business (different for each business targeted by the company or team), the advantages and disadvantages of using OSS, and others?
(2) Intellectual property rights
In particular, intellectual property rights related to OSS include copyrights and patent rights. Since OSS is software, each OSS is copyrighted. Copyright means the right to modify, distribute, and copy. I hope you can explain these things in an easy-to-understand manner.
(3) OSS license
Why don't you explain copyright rights obtained by the OSS license compliance(in other words, it is necessary to protect the OSS license in order to modify, distribute), examples of OSS licenses, permissive OSS licenses, copyleft and reciprocal OSS licenses, etc?
(4) OSS compliance program
The Open Chain specification recommends creating an OSS compliance program consisting of policies, processes, training, tools, etc. First, let's share the policy for using OSS within the company and within the team. (The policy may differ depending on the use cases of target businesses.) Next, let's show the organization related to OSS and the role of each member related to OSS. Then explain how OSS-related processes (OSS listing, OSS review, OSS distribution review) are incorporated into our software development process.
(5) Examination at the time of introduction
Let's explain the points to be noted in the characteristics of the license and the points to be noted regarding intellectual property rights (patent rights, etc.).
(6) OSS review
Let's explain the information collected in the OSS review, the content of the review, the available tools, and others.
(7) OSS distribution
Let's explain what precess will be applied to distribute OSS in the target business form, including examples. Also, explain the implications of improper use of OSS and lack of license information in the software supply chain.
(8) Summary
(9) Contact information
(10) References / organizations
I think that (9) to (10) are effective for deepening the understanding of OSS within the company and the team.
Then, especially if (2) and (3) are explained to software by using analogy to legal terms that are common within the company and within the team, software developers will understand more easily. Also, in (4) to (7), if you explain by applying it to the system within the company or team and the software development process actually used, I think that you can deepen the understanding of software developers. Please devise.
An example of actual educational materials is shown in the markdown format at the following URL. Please refer to.
Https://github.com/OpenChain-Project/OpenChain-JWG/tree/master/Education_Material/Training/chapters
Tomorrow, tech_nomad_ will talk by the title "Framework for Skill Standards on OSS Compliance". Among the roles related to the use of OSS, what kind of skills each person in each role should have is a difficult theme, isn't it? I am also very interested in this theme and am looking forward to it.