Konifar's WIP

親方!空からどらえもんが!

アウトプットは完璧を目指しつつ目指しすぎないようにしたい

今日、初Androidライブラリを作って公開してみました。

github.com

Google I/O 2015で追加された、Floating Action Buttonの動きを簡単に実装できるUIアニメーションライブラリです。MaterialDesign関連かつ、みんな大好きFloating Action Button系だったということもあって、それなりに反応があってよかったです。

今回のライブラリ公開もそうなんですが、最近 アウトプットを出したい時には完璧を目指しすぎない方がいいんじゃないかなぁと感じているのでちょっと考えをまとめておこうと思います。

「アウトプットの内容によるよね」という意見はその通りで、会社の大事なプレゼンとかそういうのは完璧を目指すべきだと思います。今回は、ブログ書いたりとかOSS活動したりとか、個人の活動にフォーカスして考えます。

荒削りで公開したライブラリ

今回公開したライブラリに点数をつけるとすると、50点くらいです。

Lollipop以上/未満それぞれのアニメーション部分の抽象化がうまくできてなくて似たようなコードが多いですし、アニメーション自体もあんまり出来がよくありません。

このライブラリだけを見てたらそこまで気にならないかもしれませんが、ガイドラインの動画と比べると、タップ時のぬるぬるさが全然足りないです。

この原因はわかっていて、アニメーションのカーブと緩急がちゃんと実装できていないんですよね。ガイドラインで言うとこのあたりです。

f:id:konifar:20150804215342p:plain

MaterialDesignでは、機械的な動きよりイキイキとした動きが好ましいとされています。どう緩急をつけるべきかも細かく説明されていますし、実際にその指針に沿って作られたアプリは触っていてすごく気持ちがいいです。

一方、自分のライブラリはそういう細かいアニメーションの調整が全くできてないです。タップした後のボタンの移動は直線的ですし、ボタンのXY軸の移動と移動後のRevealアニメーションの緩急が異なるのでカクつきを感じてしまいます。

f:id:konifar:20150804215801g:plain

自分はガイドラインを見ながら作ったので、 作れば作るほど理想とのギャップにしょんぼりしていきました。

そんな荒削りな状態で公開したのが今回のライブラリだったわけです。

完璧を目指すと挫折しやすい

なぜそんな状態で公開しちゃったかというと、 これ以上色々悩んで改善してたらたぶんめんどくさくなっちゃうなぁと思ったからです。

アニメーションを改善する方法はあって、TransitionSetとInterpolatorをうまく使えばもっといい感じにできそうだなぁとは感じていました。要は時間かけてキャッチアップすればもっとよくできる部分なんですけど、 色々詰まって試行錯誤してるうちにめんどくさくなって公開しなくなってしまうんじゃないかと思ったんですよね。

自分の自爆パターンとして、 完璧を目指して挫折してしまうというのがよくあります。色々悩んでるうちにやってることに意義を見失って途中で飽きちゃうってやつです。一度飽きると復活するのは至難の技で、もうアウトプットできなくなってしまいます。

今までこのパターンにハマることが何度もあったので、 お蔵入りしちゃうくらいなら50点でもいいから世に出そうと考えるようになりました。

完璧じゃなくても意外と大丈夫

一応補足しておくと、完璧を目指すことがダメということではないです。むしろいいことだと思うんですけど、 何かをアウトプットしたい時に完璧を目指すのって結構しんどいと思うんですよね。やってもやっても満たされない気持ちになるというか。

しんどくなった結果、途中で挫折してしまう人も多いんじゃないかと思うわけです。

他の人はどうかはわかりませんが、自分は完成度をあげないとなんだか不安な気持ちになります。 「こんな不完全な状態で出すの恥ずかしいなぁ」とか 「すげぇディスられるんじゃないかな…」とか 「もっと洗練したらすごい流行りそうだし勿体ないなぁ」とか、余計なことを考えてしまいがちです。

公開する前にこういう不安を感じてしまうのは仕方ないと思うんですけど、自分の経験上そういう不安は杞憂に終わることが多い気がします。

公開して色んな人に見られるのが気になるとしても、意外とみんな見てないので大丈夫です。むしろそこまで色んな人に広がっていくのは嬉しい悲鳴かもしれません。

批判されるのが怖いかもしれませんが、意外と優しい反応も多いのでそこまで心配する必要はないです。自分も最初に書いたブログ記事ではめちゃくちゃ批判されるんじゃないかとビクビクしていましたが、色んな人から意見をもらってすごく勉強になりました。

konifar.hatenablog.com

また、OSS開発の場合は、公開することで自分ができないところを開発してくれたりもします。AndroidStudioプラグイン作った時は、自分が作りたいけど手が付けられてなかった機能を実装してくれたりもしました。この時も50点くらいの出来で公開しましたが、公開してよかったなぁとしみじみ思いました。

最近リリースしたKotohaも全然完璧じゃなかったですが、思い切って公開してみたらGIGAZINEで紹介されました。セルフIssueは14個溜まっていたし使い勝手も正直よくない状態だったんですが、リリースしてよかったなぁと思いました。

gigazine.net

結果論に聞こえるかもしれませんが、不完全でも意外と問題ないし、むしろ公開してよかったと思うことが多かったです。

結局意識の問題

「適当に作って満足しちゃう癖がついちゃうんじゃないの?」と思うかもしれませんが、これは意識の問題で個々人の気持ち次第でどうにでもなります。完璧を目指しがちな人であれば、毎回少しずつクオリティを上げようとすると思うので問題ない気もします。

不完全なものをアウトプットして一生後悔するようなことなんてそうそうないし、 とりあえず世に出してみるかみたいな気軽な気持ちで考えられるかどうかが肝なのかもしれません。

完璧を目指して完成できずに後悔するよりも、まだまだだなぁと感じながらアウトプットしてしまう方がいいと思うんですよね。こういう気持ちの切り替えは難しくて自分自身よく悩んでいるわけですが。

これからまた考えが変わっていくかもしれませんが、今は完璧を目指してつつもアウトプットを優先して考える意識を浸透させていきたいと思います。

だいぶ思考整理できたので以上です。