こんにちは。てぃろです。
“Done is better than perfect“は私の好きな言葉です。
もともとはMeta社のマーク・ザッカーバーグさんの言葉だということですが、非常に共感します。
この2ヶ月ほどは何もないところでのプロダクト開発を続けて来ていたのですが、常にこの言葉を思い出しながら開発しています。
プロダクトはない。人はいない。時間はない。
そんなないない尽くしの環境で、スタートアップとしてランウェイが枯渇する前にプロダクトをリリースしなくてはなりません。
以前いた大手SIerでは品質を非常に重視されていたことから、過剰とも言える品質管理をして完璧を目指すプロジェクト管理が行われていたことをよく覚えています。
ミッションクリティカルなシステムを担うSIerとしては当然の動きであり、その中に身をおいていた自分としてはシステム開発における品質保証とはなにか?ということを学ぶ非常によい機会だったと思います。
ただしそれは顧客から頂いた対価と優秀な多くのエンジニアや厳格な管理体制があるからこそ目指すことができる完璧なのだと思います。
今の私はないない尽くし。
それでも完璧は目指します。今のプロダクトは金融系ですから規制にも対応しセキュリティもきちんとなければなりません。でも時間はないのでどんどん完了させて前に進めるしかありません。
時間もなく人もいない中でどうやって完了させていくのか、ということが重要です。
私がこの開発で最も意識しているのは、「キリよく終わらせて残課題を明確にすること」です。
実際開発していくと「いまはこれまだやらなくてもこっちさきにやったほうがいいよね」ということはちらほら出てきます。ここで「いまはまだやらなくてもいい」と思ったことをいますぐやるのが完璧を目指す開発だとすると、それを「いまはやらずに残課題として明確に書き残すこと」が完了することです。
「いまはまだやらなくてもいい」ものは、分類すると「できればやったほうがいいこと」と「いつか必ずやらなければならないこと」に分けることができます。残課題がもし前者なら放置してよいです。しかし、後者であるなら必ずどこかでやる必要があります。
つまり、残課題を書き残すとはやらなければならないことを細かな粒度で書き残しつつも、現状の優先度に合わせてタスクを組み替えることをやっていることになります。
このようにしてやるべきことを忘れないようにしていかに完璧を目指すかが大事だと思うのです。
完璧より完了が大事ですが、完璧を目指す必要がないとは言っていないのです。
プロダクト開発をしているエンジニアは、ユーザ体験やメンテナンス性の高い実装など、より完璧な何かを目指して開発をしているはずです。
プロダクト全体を見る立場としては、金融サービスに求められるセキュリティや、新たな価値としてのユーザ体験など多くの視点での完璧を目指しています。
それなら完璧に近づくために必要なタスクは忘れてはいけないのです。
日々のタスクをしっかり完了させつつ、残課題は書き残して、少しでも完璧に近いプロダクトを作りましょう。