「Open Source Software」を含む日記 RSS

はてなキーワード: Open Source Softwareとは

2023-11-28

ソフトウェア受託開発:使ってるOSS製品説明きちんとやってる?

弊社で受託しているソフトウェア開発プロジェクトが終了間近となり、納品物をまとめる作業をしている。

納品物の一つにはFOSS (Free and Open Source Software)、俗に言うOSS、の説明書がある。

増田はこれまでで受託開発企業を3社ほど転々としてきたが、これをきちんと納品している会社過去には見たことは無かった。道義的責任として、「このソフトウェアはこんなOSSを使ってます」という説明顧客に対して為されるべきだとずっと思ってた。もちろん、納品時ではなくてプロジェクトの初期で実施するのが良いと思うけども。

経済産業省が公開している「情報システムモデル取引契約書(第二版)」という、受託開発の契約書の雛形が存在する。この雛形の中では次のような条項提案されている。

https://www.ipa.go.jp/digital/model/model20201222.html

(FOSSの利用)

第49条 乙は、本件業務遂行過程において、本件ソフトウェア構成する一部としてFOSSを利用しようとするときは、当該FOSSの利用許諾条項機能、開発管理コミュニティ名称・特徴などFOSS性格に関する情報、当該FOSS機能上の制限事項品質レベル等に関して適切な情報を、書面により提供し、甲にFOSSの利用を提案するものとする。

2. 甲は、前項所定の乙の提案を自らの責任検討評価し、FOSSの採否を決定する。

3. 乙は、FOSSに関して、著作権その他の権利侵害がないこと及び契約不適合のないことを保証するものではなく、乙は、第1項所定のFOSS利用の提案時に権利侵害又は契約不適合の存在を知りながら、若しくは重大な過失により知らずに告げなかった場合を除き、何らの責任を負わないものとする。

↑の文中では「甲」は発注者「乙」開発者だ。

開発者は「こんなFOSSを使ってます、それはこんな機能があって、こんだけ人気があって信頼がおけるものです」みたいな説明をする義務を負う代わりに、万が一そのFOSSバグったりしても責任限定される、という話だ。

もしも受託開発の契約書にこのような条項があったとしたら、きちんと利用しているFOSS説明をしよう。しなかったとしたら、後で不利益があるかもしれないし、それ以前にその仕事技術的に真摯ものではないと言える。

もしも契約書にこの手の条項が無かったとしたら…転職した方が良いかもね。知らんけど。

2020-06-22

OSS の持続可能

ここ最近の COVID19Radar https://github.com/Covid-19Radar/Covid19Radar 上でのゴタゴタにより、開発者の @kazumihirose さんが https://twitter.com/kazumihirose/status/1274616019420471296 疲弊してしまいっているのを見て、(今回の揉め事根本的な原因はソフトウェアOSSとして公開されているのが原因ではないと思うが)いたたたまれない気持ちになったので書く。書いてみた結果ただのとりとめもないOSSへの愚痴になってしまった。

増田について

いくつかのOSSプロジェクトのメインコントリビュータとして関わっています

OSS メンテナのバーンアウト

私の周囲のソフトウェアエンジニアOSSに対して以下のような意見を述べているのをよく聞く。

かにOSS特定企業所属していないので特定企業方針運営が捻じ曲げられる心配がなく民主的で、細かい実装が気になったらソースコードを読むことが出来、顔も合わせたこともない優秀なエンジニア議論を交わし共通のゴールに向かってともに開発を進められる。OSS楽しい

しかし一方、OSSメンテナのバーンアウトが近年問題になってきている(なんとなくここ数年で目につく数がなんとなく増えてきている)気がする。

というのも、OSS運用していく上では楽しく優秀なエンジニアと開発をすすめるだけではなく、ドキュメントを読めば分かるようなことを質問してくる人、PR に対して changes required を下すと怒ってくる人、Twitter でこのライブラリは使いにくくて最悪だと罵ってくる人、こういった普通会社ならカスタマーサポートさんがワンクッション挟んでくれる人たちに対しても開発者が直接対応しなければならない。

元々楽しくて始めた/関わり始めたはずのサイドプロジェクトだったのに、いつの間にか日々やってくる頓珍漢で再現環境のないバグレポートや、Issueも立てずに突然提出される意味不明PRに対して、義務感で、就業後や土日の時間を削って、根気よくコメントを続けていると、何で貴重な自由時間をこんな訳のわからない連中のために使っているんだ?という気持ちになってくる。

実際、私の関わっていた一つのプロジェクトでは、もともと6人ほどいたアクティブコントリビュータが徐々にプロジェクトを離れていき、(私を含めて)2人はメンテナンスに疲れてしまったのでしばらく距離を置くと宣言休みを取っている(あまり精神回復したので戻れるのかは不明...)。

こういう現場を見ていると、手放しにオープンソース万歳!透明性最高!と言いながら自分自身は大してOSSに貢献してない人たちに対して苦い気持ちを覚える。

うまく回っているOSS

一方、私の関わっているもう片方のプロジェクトは非常に円滑に運用が回っていた。もうひとつプロジェクトと何が違ったかというと、そちらのプロジェクトはいくつかの企業ソフトウェアエンジニア業務時間の半分/全部をそのプロジェクトメンテナンスに費やしていたのである。(何人かのメインコントリビュータが企業から出向する(?)する形で運用している)。

issueへの一次対応などの日々のつまらないタスク業務メンテナンスしてくれているエンジニアがやってくれるおかげで、他のメンテナが対応する必要のあるissueやPRは減り、みんなが開発やバグ対応に集中できている。業務OSSに取り組んでいるエンジニアストレスはないのかと聞いたところ、多少大変ではあるけれどお金をもらいながら自分仕事オープンにできるし、仕事だと思えば多少のストレス我慢できる。とのことだった。

このプロジェクトに限らず、なんとなく長期間運用がうまくいっている大規模なOSSプロジェクトはだいたいどこかの企業支援しているような印象を受ける(Facebook とか MS とか Google とか(大企業ばっかだな...))。もちろん全てのソフトウェア企業に大してOSSに大して大金をつぎ込めというのは現実的ではないが、open collective や github sponcers なんかに企業として少しずつでも寄付してくれたら、OSSコミュニティはもう少し良くなるんじゃなかろうか。

結局何が言いたかたかというと、エンドユーザー(OSS利用者)がめちゃくちゃ増えてきた昨今、個人レベルでそれなりの規模のプロジェクトメンテナンスしていくのは最早厳しくなってきており、結局企業によるバックアップなんかがないと持続的な開発は難しいんじゃないかと思っている。

2020/06/24 23:00追記

今日になって思ったより多くの方に読んでいただいて驚いています。あまりオープンインターネットで話しにくい話題だけど皆がどう思っているのか気になっていたので嬉しい。増田ブクマされても通知は来ないんですね(そりゃそうか)。

@bouzuya

まず焦点を当てている持続可能性が見出しから思い浮かべるものより狭いんだと思う。「最悪フォークすれば持続可能」みたいなのがぼくだと最初に思い浮かぶ

https://twitter.com/bouzuya/status/1275675654135189504

かにOSSの持続可能性という少し主語の大きいタイトルにしてしまったが、この文章ソフトウェアの持続性というよりかはOSSに携わる人のバーンアウトに対する憂いをつらつらと綴っているもので、ソフトウェアの持続性という意味では他にも色々やりようがある気はする。

また、私が目にしたうまく回っているのが企業による支援を受けたプロジェクトだったので、バーンアウト対策として企業による支援について述べたが、企業による支援がなくともうまく回っているプロジェクトは世の中にはいろいろあるだろうし、今後OSS企業による支援がないとやってけないと決めつけるのは早合点ではあった。反省。(とはいえ問題意識は変わらないし、その一つの解決策が企業による支援だと思っているのも変わりない)。

---

自分記事を読み直してみて、一番問題に感じているのはユーザーサポート工数なんだなと分かったが、@mathane さんがその問題への一つの解答をつぶやいていた。

(このツイートはこの記事へのコメントではないが)

@methane

雑な質問バグレポート(99%レポート者のミス)をする場所は、とにかくメンテナ以外の人が回答しやす場所でしてもらう事が重要だと思う。

Issue Trackerはメンテナ以外が質問気づきにくいし、メンテナはIssue整理したいか疲弊する。

https://twitter.com/methane/status/1275620072669638656


これは確かに。私はまだOSSコミュニティ初心者なので、こういうOSSメンテナンスする上で重要なことをどんどん知りたい。

 
ログイン ユーザー登録
ようこそ ゲスト さん