すべてのライブラリに実プロジェクトが必要な理由
多くのライブラリ開発者は間違いを犯します。サンプルがあれば十分だと考えてしまうのです。
サンプルだけでは不十分です。
サンプルは機能が動作することを証明しますが、実プロジェクトはライブラリが機能することを証明します。これらは全く別物です。
私は多くのデモアプリケーションを作成してきました。サンプル用のウェブサイト、API、コンポーネントなどです。デモではすべてが完璧に見えます。デモはハッピーパス(理想的な実行経路)を示すものです。理想的なワークフローを示すのです。
デモは制御された環境です。アーキテクチャはシンプルで、要件も予測可能です。
実プロジェクトは異なります。
実プロジェクトでライブラリを使用する際、ルールは変わります。もはやデモンストレーションをしているのではなく、問題を解決しているのです。
実プロジェクトには以下のような要素が伴います:
- 厳しい納期
- 変化する要件
- 複雑なレイアウト
- エッジケース
- ヒューマンエラー
ここでライブラリの真の強みと弱みが明らかになります。ライブラリの本質が露呈するのは、デモの中ではなく、プレッシャーのかかる場面なのです。
実プロジェクトは、あなたの思い込みを暴き出します。机上の空論としてはエレガントに見えるアイデアも、開発中は理にかなっているように思えるかもしれません。しかし、現実に直面すると話は変わります。
ワークフローに違和感を覚えたり、設定が冗長に感じられたり、APIが不自然に感じられたりします。設計が間違っているわけではなく、まだ現実に即していないだけなのです。
開発者ができる最善のことは、自分自身のソフトウェアのユーザーになることです。単にデモを作るだけでなく、自分のツールを使ってウェブサイトやアプリケーション、さらにはビジネスを構築してください。そのツールに依存するのです。
自分のソフトウェアに依存するようになると、視点が変わります。開発者としての思考を止め、ユーザーとしての思考が始まります。
ユーザーが重視するのは以下の点です:
- 摩擦(使いにくさ)
- 明快さ
- タスクの完遂
本物のものを作ることで、問いが変わります。「どんな機能を追加すべきか?」と問うのをやめ、代わりにこう問いかけるようになります:
- なぜこのワークフローは使いにくいのか?
- なぜ同じことを繰り返しているのか?
- なぜこれに時間がかかりすぎたのか?
これらの問題を解決することは、どんなブレインストーミングよりも優れたソフトウェアを生み出します。
すべてのライブラリには実プロジェクトが必要です。このプロジェクトはマーケティングのためのものではありません。それは「試練の場」なのです。ライブラリに現実の問題を解決させ、ユーザーが気づく前に弱点を見つけ出すためのものです。
目標は、ライブラリが完璧であることを証明することではありません。目標は、ライブラリが改善していくための道筋を作ることなのです。
Source: https://dev.to/stinklewinks/why-every-library-needs-a-real-project-1ae7