自分主導で行う技術的なプロジェクトについて注意するべきこと

どうもyapattaです。

最近、自分がオーナーシップを持って複数のプロジェクトに関わらせて頂いている。

非常に楽しくやらせてもらっているが、同時にこれに取り組むにあたって注意するべきことに注意しないと、健康を害したり、完成物ができなかったり、タスクばかりが増えてしまったり、非常に辛いお気持ちになるので、今回は自分への自戒も込めて、所感をまとめておこうと思う。

 

期限と何が目的なのかは最初に明記しておく

自分の場合、プロジェクト内のある詳細に取り組むことが楽しくなってしまい、締め切り、本来の目的というのを忘れがちである。そしてズルズルと締め切りを伸ばしてしまい、結局完成を待たず放置してしまったということもある。それを防ぐために本来の目的に対して、定期的に自分の進捗が適切に進んでいるのかを確認するのが大事なように思える。これによりタスクを無限に感じることなくリラックスして取り組めるようになる気もする。

確認事項として、実装する機能について優先順位を付けられているか?*1、今取り組んでいる実装が細かすぎないか? *2、新しい課題を見つけてそっちに引っ張られていないか?*3、全体的なスケジュールに対して余裕を持てているか?*4等と問いかけるのが重要だ。

誰かが自分の代わりにここら辺を管理してくれることもあるが、自分で管理できるに越したことはない*5。段々年を取るにつれて、周りの誰かが管理してくれる状況はどんどん減る気がしている。それでも一人で溜め込んで間違った方向に進むこともあるので、人に相談したり、外部へ公開したり、発表したりするのを忘れないよう意識したい。

 

技術の使い方について

プロジェクトの目的が何であれ、それを実現するために既存の技術を組み合わせる必要が出てくる。本当に何もないところからそれ自体を実現することは殆ど無いし、難しいだろう。そのため、自身のプロジェクトの目的に近いユースケースを探したり、自身のプロジェクトの他との立ち位置を客観的に見つめることが大切になってくる。拝借できる部分もあるだろうし、先人が簡単だ、難しいと感じていることを理解することで、どこまで自身のプロジェクトで行えるかのスコープを決められる。欠点を補完するために、他の技術と組み合わせたり代わりに使ってみようと思えるかもしれない。

ただ技術を比較することに終始し過ぎて全く完成物ができないみたいなことにも陥りがちなので、期限を決めて技術を選定できると良いのだろう。実際に動くものを作るにはそれなりに時間もかかる。

 

技術に関わる説得について

多くのプロジェクトにおいて、技術はプロジェクトの目的を満たすための道具である。プロジェクトの目的がビジネス的なものなら、例えばプロジェクトでその技術を使って得られること、選定の理由を会社のOKRと照らし合わせて説明できるようにすることが求められる。また、研究などであったら他の手法に対する優位性を多角的に評価を取って説明することが求められる。これらの説明をするに当たっても、過去の先例というのは役に立つ。自分の理論に説得力を持たせるために何を証拠として利用したか説明するときの根拠としても役に立つ。具体的な評価自体はセンシティブで公開できなくとも、評価指標を公開するというのは後進にとって非常に役に立つだろう。今我々が、利用する根拠を知らなくても安全だ、便利だと思って使っているものは沢山ある*6

 

まとめ

最近の自分主導で行うプロジェクトについて意識したいことをまとめてみた。誰かにおんぶで抱っこしてもらうことも前より減ったが、段々と自分のオリジナリティを持って取り組めることも増えてきた気がしている。

リラックスして楽しみながら取り組めたらと思う。

 

続く。。

 

*1:目の前の面白そうな機能に目移りしがち

*2:丁寧な実装は将来の自分に返ってくることもあるが完成させることも大事

*3: 課題を見つけること自体は良いことなのだが、今やるべきかは吟味する必要がある

*4: 大体締め切りに余裕を持っているぐらいの方が良い

*5:自分と一番関わるのは自分なので

*6:例えば飛行機という巨大な鉄の塊が安全に空を飛べる根拠も、評価指標も我々は知らないが安全で便利だと思って利用している