と、最近よく思う。

下期に入ってからの作業はDockerにAWSとやったことないことだらけで、おまけに先週からはSeleniumもやっている。これらの作業をやっていて新しいことをやるのは体力的にも精神的にも非常に疲れると思うようになった。

私は以前の会社でもSubversionの導入、Redmine導入、Subversionからgitへの移行、GitBucket導入、Jenkins導入と全て一人でやった。それらもその職場にとっては全て新しいことであり、周りに聞く人もいなかった。がその時より非常に疲れる。

もちろん当時も特にgitを導入するときは運用フローを考えるために3か月くらい頭の中が常にgitで、自転車乗ってても風呂に入ってても布団に入っても夢の中でも頭の中はgitgitgitだったのだが、その時と比べても今の方が非常に疲れる気がする。

なぜか。

まず、一つ目に情報が少ない。前述の(Redmine、git、Jenkins等)と比べてDocker、AWS、Seleniumは情報が少ないと思う。特にやりたいことによって選択の幅が山ほどあるので、鉄板の組み合わせ・やり方がない。やりたいことを実現するためにどの言語を選択してどうやってやるのかを判断するのが非常に難しい。どうやるか決定したあとも実際に構築・コードを書いていく上で非常に詰まる。

二つ目に完璧を求めすぎていると思う。前職だととりあえず勢いでやってしまって、課題点は徐々に改善しながら必要なものは段階的に導入というやり方でやっていた。しかし、以前に比べて下手に知識がついてしまったため「ここまでやらないとローンチには不十分」という強迫観念のようなものがある。これをやるためにはここまでやっておきたい。将来のことを考えると、これとこれを連携できるようにしておきたい。など。こうしていつまでたってもOKというところにたどり着かない。

三つ目。二つ目と重複する部分もあるが、以前よりその業務に常に専念しているということがある。前職の時は隙間の時間にやっていたのだが、今はそれにガッツリ集中してやるという状態。そのため、段階的にやるというよりは一気に仕上げる必要があって、一度に覚えないといけない情報量が非常に増えた。これはメチャクチャつかれる。特にやったことないものばかりなので一からの試行錯誤の繰り返し。一度詰まると「これはいつまでたっても終わらないのではないか」という気持ちになる。全体の構成はともかく、詰まった部分に関しては実際は半日後には解決しているか、寝て次の日に出社したら朝一で解決することが多いのだが。

四つ目。決定がふわっとしている。前職と今の職場の背景を説明しておくと、前職(の最後の2年間だけだが)とあるパッケージの開発・保守をやっていた。私は事実上のリーダーに近い状態だった(といってもあくまで社内の開発・保守周りだけの部分だけだったが)ため、社内の開発環境回りの導入や移行に限ってはタイミングをほぼ自身で決定できた。パッケージの機能の追加やスケジュール等は顧客都合等で好き勝手に決められていたが…
今は自社システムの開発に携わっている。以前の職場に比べて技術的な部分にかなり理解があるのだが、いかんせん決定がふわっとしている節がある。そのため「これをやりましょう」がやりかけの状態で流れてしまったりする。事実、あるサブシステムはローンチ前に流れた状態だし、Dockerを使用した開発周りもAWSもほぼローンチ可能な状態でほったらかしになっている。これも非常に疲れる要素の一つで「果たしてこれをやったところで実際に稼働するのか?」という疑問が常に頭の中にある状態で、今やっているSeleniumを使用した自動テストも本当に使われるのかどうか疑問である。そうなると、ある種の先が見えない状態となる。先が見えないというのは非常にしんどい。

実はこれを書く前は三つ目が主な原因だと思っていたが、そうでもないみたいだ。どちらかというと四つ目の決定に関する部分が大きい気がしてきた。書いてるうちにタイトルおよび最初の文と内容がだんだんずれてきてしまってるので、この辺りで終わりにしようと思うが、最後に四つ目の決定に関してもう少し書くと、今の会社は会議やミーティングがほぼないのが問題だと思っている。もちろん人数が非常に少ないので個々の報告で足りると言えば足りるのだが、何らかの場でキッチリした決定が必要ではないかと感じている。これに関してはどうも最近入った新人君も感じているようで、なんらかのアクションをとらないとまずいなあと思っている次第である。