ドキュメントを無料(タダ)だと思っている?

Closed有償ツール v.s. オープンソース(OSS)

オープンソースはドキュメントがなくて使いづらい」

まあ、ドキュメントないと使いづらいのは事実でしょう。

オープンソースはドキュメントがないから使い物にならない」

その意見には賛成できないな。

ソースコードを公開せずお金を取って "商売" として、そのお金でドキュメントを整備して提供する...オープンソースはそれをやめてソースコードを公開し、(大抵は)お金は取らないことを選んでいるわけです。より気軽にユーザーに機能を提供するために。

ソースコードを読めばわかるかもしれない。コミッタやメーリングリストに聞けばわかるかもしれない。有償のものはそれが気軽にできないことが多いわけで。

その行動をせずにオープンソースに対して何かを言うのは、流言飛語と言わざるを得ません。

「そんな行動をしなきゃいけないのか?」

と思うのであれば、オープンソースを使うのを止めて、お金でドキュメント(があるツール)を買えばいい。求めているものが違うだけだから。

オープンソースに寄付だってできる。
 => Eclipseに寄付しました (Donate to Eclipse)

ドキュメント豊富OSS v.s. ドキュメント少なOSS

「このツール、ドキュメントが少なくて使いづらい」

まあ、ドキュメントないと使いづらいのは事実でしょう。

「このツール、ドキュメントが少ないから使い物にならない」

その意見には賛成できないな。

ソースコードを読めばわかるかもしれない。作者やメーリングリストに聞けばわかるかもしれない。その行動をせずに何かを言うのは、流言飛語と言わざるを得ません。

もしかしたら...ソースコードを読むことで、もっと良い機能が見つかるかもしれないし、コミッタやメーリングリストに聞けば、あっさり問題解決するかもしれない。コードは読みやすければ細かいところも発見しやすい。

もしかしたら、トータル的には、その "ドキュメント豊富OSS" よりも、その "ドキュメント少ないOSS" の方が、使いやすいかもしれない。

一概にドキュメントだけで、オープンソースの比較はできない。

オープンソーストレードオフ

OSSの作者がドキュメントを書く時間に対して、誰がお金を払っているのだろう?

ほとんどのOSSでは、お金をもらっていないでしょう。OSSのドキュメントを完全完璧に作るとなると、その作者の人生のすべてを失うでしょう。

「業務仕様書を毎週サービス残業で土日に作ってくれ」

と言う人を尊敬できるでしょうか?

完全完璧なドキュメントがないと使えないのであれば、現実的ではなく誰もツール作りを提供しなくなります。

ソースコードをオープンにし、少量のドキュメントとソースコードと属人性のハイブリッドでユーザーに使い方を伝えることで、やっと無料で提供することができるわけです。

少なくとも個人やコミュニティレベルでやっているオープンソースはそうと言えるでしょう。
(ただし、その分コードは綺麗に書かないと!)

その少量のドキュメントの質は確かに重要です。ユーザーの時間にも限りがありますから、いかに入り(はいり)がわかるドキュメントを書くかは、コミッタの永遠の努めでしょう。

でも、仮にドキュメントが一切なくても文句は言えません。ソースコードがあって自由に使えるだけでありがたいもので、ドキュメントがあったら「ラッキー」的な感じです。実際に、一切ないツールを使うことはよくあることです。

また、自分でドキュメントも書けるわけです。プルリクだって送れる。ないから使えないと言うなら、自分で作ってみればいい。多くのオープンソースは互助的な精神で成り立っている。フリーライダーの割合が多ければ多いほど退廃していく。それができないのであれば、静かに使わなければいいだけ。黙ること。

業務のプログラムでも

共通ライブラリのクラスを作ったり。自分たちの中のクラスだからコードは自由に読める。

ドキュメントがないと使い方がわからない?そこにコードもあるよ。

もちろん、入りがわかるドキュメントは欲しい。あと間違いを防ぐためのドキュメントは欲しい。作者はそれ意識してドキュメント作って欲しい。

でも、丁寧なドキュメントを求めれば求めるほど、お金かかるよ。会社がその勤務時間を払う。

オープンソースの話と似ていると思っています。(大抵)作者も近くにいて聞けるしコードも読める、つまりハイブリッドができるわけで。(ただし、その分コードは綺麗に書かないと!)

聞けばいい読めばいい。その方がお金かからないなら、営利団体である会社としては正しい判断になる。

それをやらずして、ドキュメントを完全完璧に作らないと使えないなら、「コストのかかるディベロッパー」と言わざるを得ない。

...

ただ、コードを読めばってのは程度の話です。

例えば jflute も、MySQL のコードまでは、さすがに読んだことはありません。
(MySQLJDBCドライバは少し読みましたが)

読むのにさすがにコストが掛かりそうなので、すでに存在しているドキュメントや、ブログやメーリングリスト、勉強会などを使って、情報収集をしてうまく乗り切っています。

でも、例えば使っている言語が Java であれば、IDE上でフレームワークソースコードを簡単に辿れます。そして、同じ Java 言語で読むことができます。大抵の知りたいことは奥底まで読む必要はありません。ちょこっとクリックして辿ればわかったりします。それをやるかどうかが分かれ道だとも言えます。完全完璧に読もうと言っているわけじゃない。ほんのちょっとでも全然違う。

伝えていこうと

jfluteも、もちろんドキュメントあれこれ言うことはあります。ドキュメントあった方がもっと良いのは事実だし、ドキュメントないと使いづらいってのも事実だし、ドキュメントを書いて差別化しようって事実だし。

ただ、お金を一銭も払ってないプロダクトに対して、ダメダメ言うことは少なくとも今は恥ずかしく思います。あまりこういうことを深く考えてなかった時代には、なにかそれっぽいことは言ってしまったかもしれませんが、気が引けるイメージはずっと抱えていたように思えます。

気づいたらオープンソースの提供者になってたから、自分を擁護してるように取られてしまうのが怖くて、あんまりこういうことは書きづらかったのですが、最近「もういいや」みたいな感じになってきて(^^、しっかりと伝えていこうと思いました。

だって、jfluteもディベロッパーだもん。良い判断をするディベロッパーと一緒に仕事がしたいから。そういうディベロッパーに育ってほしいから。

...

ちなみに、DBFluteはドキュメント豊富と褒められることが多いです。最近、わりと追いついてないけど...あと、逆にあり過ぎてわからないみたいな...>< 一時期、完全完璧を目指してものすごい頑張っていました。でも、やはり思ったのです。

組織化して会社化して利益化していかない限り、完全完璧なドキュメント作るのは無理だと。このままでは人生が完全に壊れる。自分もオープンソースを少し勘違いしてたなと。もっとオープンソースって意識していかないと。どのような現実的なドキュメントが書けるだろう?どのようなOSSならではな伝え方ができるだろう?

ある意味では、jflute自身の整理整頓のために、書いたエントリかもしれませんね。

(いや、単にDBFlute以外のOSS(LastaFlute)をやり始めちゃったから...かも!?笑)