SmartHR Tech Blog

SmartHR 開発者ブログ

SmartHRのOSSガイドラインを公開しました

こんにちは、エンジニアのkinoppydです。本日は、SmartHRが公開したOSSガイドラインに関してご紹介します。

github.com

SmartHR OSS ガイドライン

SmartHRでは、すべてのサービスでOSSが使用されています。Ruby、Ruby on Rails、React、TypeScriptは必ずすべてのサービスで使われていますし、その他にもたくさんのOSSがSmartHRのサービスを構成しています。これらOSSによってSmartHRのサービスは支えられているので、我々もOSSに対してなにか貢献をすることができると良いなと思っています。しかし、現在社内には業務時間中のOSS活動に関する明示的な文章が存在せず、業務としてOSSにコミットする労務/法務的なルールが不明でした。また、OSS文化に対する経験が浅い人にとっては貢献する方法などもよくわからず、ハードルが高いと感じていました。

SmartHRのOSSガイドラインは、会社としての労務/法務上のルールや、OSSに貢献する際に立ちふさがるライセンス・CLA・著作権などの様々な決まりや慣習など、SmartHR社員がOSSに貢献する際に感じるであろう障壁を可能な限り取り去り、もっと積極的にOSSに貢献できることを目的として作成されています。

ガイドライン公開の目的

SmartHRのOSSガイドラインは、SmartHR社員が業務としてOSS活動へ参加するハードルを下げることを主目的として作成されました。そのため、このガイドラインは、SmartHRの労務/法務のチームをはじめとした社内の技術顧問、マネージャー、メンバー、その他様々な人にアドバイスを求め作成された、実務的なガイドラインとなっています。そこで、このガイドラインの本来の目的に加え、「SmartHRが運用しているOSSガイドライン」として公開することによって、国内のテクノロジー企業にとって「SmartHRのマネをしよう」という形でOSSへの貢献により積極的な流れを作っていけるのではないかと考えました。

SmartHRのOSSガイドラインは、CC0のパブリックドメインとして公開されます。どんな方でも、公開されたガイドラインを自身の運用に合わせた形に改変して再利用していただけます。許可もライセンス表記も必要ありません。SmartHRのOSSガイドラインが、多くの組織によるOSS貢献に良い影響を及ぼすことを願っています。

ガイドラインのポイント

先行する他社のポリシー/ガイドラインと比較して、SmartHRのガイドラインには大きく分けて2つのポイントがあります。著作権の譲渡に関する法務確認、労働時間に関する労務確認です。

著作権の譲渡に関する法務確認

ガイドラインを作り始めた当初から、社内の法務チームにとは密にコミュニケーションをとり、私が作ろうとした理想のガイドラインと、現実的な会社と法律の守りたいラインのすり合わせを行ってきました。特に大きなトピックだったのが、「OSSのコードの著作権は誰に帰属するか」というものでした。

私から提案していたのは、「OSS活動に関する全てのコードの著作権を、書いた本人に帰属させてほしい」というものでした。同様の内容が、サイボウズさんのガイドラインでも定められています。目的としては、開発者本人にコードの扱いを決めることができる自由を得たかったためで、OSSという業界の慣習であったり、CLAへの署名の自由やコントリビュート時の本人の名誉のようなものも含まれていました。

一方で、法務チームはその提案に難色を示しました。法務チームの視点は「会社と従業員を守る」であり、特に訴訟リスクなどを鑑みた際に従業員に著作権を帰属させると会社が彼らを守ることができないのではないか、という点を気にしていました。一方で、慣習や慣例などもとても重要だということも私に対して伝えてくれていて、OSSという環境でのスタンダードに極力合わせることができるように議論を重ねてくれました。

その結果、最終的に「SmartHR社員が、社内のOSSに貢献するときは会社が、外部のOSSに貢献するときは社員本人が著作権を持つ」というルールを定めることで合意できました。訴訟リスクなどの点に関しては、実際に脆弱性を含んだコードを書いた本人に対して訴訟を起こし賠償金命令が出ることが現実的ではないという点を納得していただきました。実際、国内においてはHeartbleedなどの脆弱性に関する訴訟は起きておらず、そもそもOSSは使う側に自己責任を求める免責があるケースがほとんどだというお話をしました。一方で、社内で管理しているOSSに関しては、管理上の簡易さなどの理由で会社に著作権が発生するものとしました。

最終的には、すべての権利を従業員の自由にできるわけではないものの、日本の法律や商習慣と、OSS界隈での習慣の間でバランスの取れたルールに落ち着いたと思っています。

労働時間に関する労務確認

ガイドラインの趣旨は、SmartHRの誰もがOSSに貢献するためのハードルを下げることでした。そのため、どうしても太平洋標準時などの明らかに日本の一般的な勤務時間帯と合わないような時間に必要があり対応しなくてはならない、等の場合でも安心して仕事としてOSS活動をできるようにする必要がありました。労務チームとの主な認識合わせのポイントは、「勤務時間外における仕事としてのOSS活動をどのように扱うか」でした。

労務チームとお話したところ、OSS活動を業務として扱う上で特別大きな懸念を持っていませんでした。ただし、働く上でのルールは確実に守れるようにガイドラインで明言することを重要視していました。労務の観点で重要なことは、「いつ働いているか把握できること」、「労働時間が超過しないこと」、「勤務と勤務の間に休憩を入れること」でした。そのため、ガイドラインでは業務として本来の業務時間外にOSS活動を行う場合、可能であれば事前にマネージャーに申請をすること、もし急に働く必要があった場合は始業時間と終業時間を確実に記録し事後承認を得られること、そしてかならず代休を取得することを明示しました。他にも、SmartHRの就業規則に則り、勤務と勤務の間には必ず9時間のインターバルを入れることも書かれています。

労務の観点では、会社が働いている時間を確実に把握した上で、その働き方に無理がないかなどをきちんと管理できること、つまり従業員を無理な勤務から守れるかどうかを大切にしていました。あとは、働いた分のお給料を確実に払うことも重要とのことです。闇残業とかはダメということですね。そのための事前の申請、働いた時間の記録をしっかり行うことで、OSS活動も業務として許容できるという結論でした。

また、SmartHRでは5時から22時をフレキシブルタイムとして設定しているので、例えば夜の0時から朝の9時までの勤務というフレキシブルタイム外での働き方は現状許容されていません。例えばUS時間で働きたいフルコミッターなどが入社するとなるようなケースでは、現状の雇用制度とは別の勤務制度を新たに創設して適用する、などの対応を実施する必要があるようです。

作成の際に参照した先行事例

SmartHRのOSSガイドラインを作成するに当たって、参考にさせていただいた偉大なる先行事例もご紹介します。

まず最初に、日本のWeb開発の企業がオープンソースソフトウェアポリシーに関して言及している最も古いと思われる事例は、クックパッドさんの記事です。 techlife.cookpad.com

2016年の時点で、社内向けのOSSポリシーを作成し運用されていることが記載されていますが、ガイドラインそのものは非公開のようです。ですが、OSSポリシーを持っているということを世の中に発信し、その後の流れを作ったのではないかと思っています。

次に2018年に、サイボウズさんがオープンソースソフトウェアポリシーを制定し、これをCC0で公開しました。 blog.cybozu.io

これは非常にエポックメイキングな出来事でした。OSSのポリシーを公開し誰でも模倣できるようにすることで、様々な会社が新たにOSSポリシーを作成し公開していく流れができあがっていきました。たとえば、ZOZOテクノロジーズさんや、エイチームさんなどの事例が見つかります。これらは、いずれもサイボウズさんのポリシーを自らのチームにフィットさせたもので、いわばサイボウズ系とも言うべき流れを作り出しました。

techblog.zozo.com prtimes.jp

SmartHRでも、当初はサイボウズ系のポリシー作成を考えており、最初の草案はサイボウズさんのポリシーをSmartHRの環境にフィットした内容に一部変更したものを作成していました。しかし、サイボウズ系の特徴として、ポリシーは公開し、ガイドラインは社内のみという形式がとられているという点があります。そのため、実際の業務に必要な情報などが外部には秘匿されており、ポリシーがどのようなガイドラインによって実務と結び付けられているかは不明です。おそらくこのスタイルには狙いがあり、ポリシーはインターフェイスとして簡単に模倣できるようにし、実務の点は各社が自由に設定できるようにという俊敏さと柔軟性を兼ね備えるためにこうなっていると思います。ですが、先の公開の目的でもお伝えしたとおり、SmartHRが目指すガイドラインは他社に真似されるようなものでありたいと思ったため、ガイドラインを作り込んでいった結果、ポリシーではなくガイドラインそのものを公開する方向に変わり、サイボウズ系からは離れてしまいました。

他にも、独自のポリシーやガイドラインを持っているチームもあります。ガイアックスさんは、可愛いイラストと一緒に「OSSとはなにか? どうやって参加すべきか?」という点にフォーカスしたガイドラインを作成しています。これはSmartHRも影響を受けており、OSSのガイドラインを読むことによってOSS活動へのハードルを下げるというすばらしい内容です。

qiita.com

東京都のオープンソースソフトウェア公開ガイドラインは少し毛色が違い、OSSを公開すること、保守すること、に関して公的機関としての立ち居振る舞いを定めたガイドラインを公開しています。保守フローや開発保守の終了に向けた手順など、あまり他の組織では見ることのない興味深いガイドラインです。

note.com

他にも、RedHatさんがオープンソース参加ガイドラインなどを公開しています。

www.redhat.com

それぞれの特色を楽しみながら、様々な点を参考にさせてもらいました。

SmartHRらしいガイドラインの公開に向けて

SmartHRでは、SmartHR Design System を公開しており、その中にはプロダクトの中で使われている文言をより多くの人にわかりやすく伝えるためのガイドラインも含まれています。

smarthr.design

今回、SmartHRのOSSガイドラインを公開するにあたり、Design System の文言ガイドラインをまとめ上げたUXW(User Experience Writer)チームに最後の仕上げで協力をしていただきました。法務/労務チームのレビューやエンジニア内での確認及び技術顧問のお二人からのチェックを経て、最後にガイドラインをSmartHRらしく伝わりやすいものにするために、文言ガイドラインへの準拠や文章全体の言葉遣いのチェックなどを行っていただきました。普段からUXWチームは社内に向けて様々な文言関連の情報を発信していただいているのである程度は自分で気をつけることができますが、やはり抜け漏れは発生します。最後にUXWチームに見てもらうことによって、より自信を持って世の中に文章を送り出すことができました。

ガイドラインの今後

現在のガイドラインは、バージョン1.0.0の状態です。公開した瞬間から、現実の運用やアップデートされる制度との齟齬が発生するはずなので、今後頻繁に改定していけるようにしたいと思っています。可能な限り変更の内容もきちんと遡れて、理由付きで追えるような透明性を目指していきたいと思っています。

また、改善の提案もお待ちしています。届いた案をすべて取り入れることは、実際には難しいと思いますが、人々がOSSガイドラインに何を求めているのかを知り、よりブラッシュアップしていくための意見を聞きたいです。

繰り返しですが、このガイドラインはCC0のパブリックドメインとして公開しています。人事労務の会社であるSmartHRが作ったものなので、法的にも労務的にも実運用に適した具体的な姿を目指して作られました。ぜひこれを読んだ皆さんの会社にも取り入れられて、業務でのOSS活動への参加ハードルを業界全体で下げていけることができれば、それ以上嬉しいことはありません。

フルタイムコミッターのユーもSmartHRにジョインしてトゥゲザーしようぜ

SmartHRでは、SmartHRのプロダクトが利用しているOSSのフルコミッターも募集しています。採用ページに明示的にポジションなどは公開していませんが、カジュアル面談でお話していただくことで考慮できるかと思います。カジュアル面談の予約時にOSSのフルコミッター募集に興味がある旨お伝えいただくか、もしくはTwitterでリプとかDMとかくれてもよしなにできるんじゃないかなと思います。

hello-world.smarthr.co.jp