今の職場で2年目に突入しました。

良かったところ


開発環境の近代化

もともと入社時はGitは使用しているけど開発環境がお世辞にもモダンとは言えない状態でした。かねてより、開発環境回りの向上を訴えていたのですが、高性能なマシンを購入していただいたことがきっかけで近代化が一気に進みました。

下記をすべて導入・連携しました。

  • Redmine(課題管理)
  • Jenkins(CI/CD)
  • GitLab(リポジトリ管理)
  • Mattermost(チャット)

これらの選定・導入・運用設計まで一任させて頂き、上司と会社には頭が上がりません。この場でお礼申し上げます。これらは全てDockerを使用して構築しており、Docker周りの運用ノウハウ等も一通り身につきました。

Redmineの全社展開

Redmine自体は昨年末からシステム開発部分にのみ適用していましたが、それを全社に展開しました。社内業務いくつかに適用して頂きました。これも入社時からちょくちょくと訴えていたものです。導入時にできるだけ抵抗がないように運用をいろいろと考えたのですが、思ったよりすんなりと受け入れて頂いてこちらとしては一安心しました。弊社は割とやるとなったらトップダウンでちゃっちゃとやってしまうので、そのおかげというのもあります。スピード感ある展開ができてよかったです。また、導入後も積極的に意見提案していただけるのでやりがいがありました。

使用方法に関してもガンガン使ってくれる人がいるので、私が特に指導しなくてもWikiとか勝手に活用してくれており、非常に嬉しいです。

複数のサブシステムの安定稼働

昨年に作成してから凍結になっていたデカめのサブシステムが無事に稼働したことと、新しく作成した小さめのサブシステムが無事稼働し、とりあえず問題なく動いているので一安心です。

PHP・JavaScript・Vue.jsの理解

これらは去年はさっぱりだったのですが、以前と比べて理解が進みました。

人間関係

Redmine関連で他部署の人と関わる機会が増えたのはよかったです。去年はお互いにあの人ダレ?状態だったと思うので。

反省点


Gitの運用が…

以前の記事にも書いたのですが、やはりGitの運用がイマイチだと感じています。なんとかしたいのですが、実際そこまで困った状態にもなっておらず、なかなか言い出すきっかけがない状態です。前職ではGitポリスをやっていて当時は口うるさく言い過ぎたと反省しており、もう少し控えめにしなければいけないという意識があるのも言い出せない理由の一つです。

CIに関して

Jenkinsを使用しており、デプロイにはかなり活用されていますが、自動テストや静的解析といったところは正直かなりザルで、ブラッシュアップしたいです。

Redmineの運用について

まず、システム開発部分ですが、ぶっちゃけると雑なチケットが結構あるので「後から見てもわからないだろうな」という感じです。ここも、前職ではRedmineポリスをやっていて当時は口うるさく言い過ぎたと反省しているので、そういった面もあってなかなか言い出せずにモヤモヤ…。

他部署のRedmineに関しては「ん?そういう使い方するの?うう~ん…」みたいな部分もあるのですが、ヒアリングしてみるといい案が浮かばないケースもあり、もう少しなんとかできないかな。という感じです。また、やはりエンジニアで普段データを扱っている人とそうでない人とではデータの整理の仕方が違うなぁ。というのをすごく実感しました。階層化とか重複を避けるとかそういった部分をなかなか理解して頂くのが難しく、四苦八苦しました。また、導入後にあまりフォローができておらず、こちらからもう少しヒアリングしたいところです。その他、正直Redmineでカバーするのは難しいと思うような業務もとりあえずRedmineを適用しましたという部分があり、よい提案をできなかったのも心苦しいです。

後は3.4に上げたい。

ActiveDirectoryが活用しきれていない件

ActiveDirectoryが導入されているのですが、イマイチうまいこと活用されておらず(私が管理している部分はLDAP連携とかしていますが、もっと人事的なところとか)積極的に活用を促せるようにしないといけないな。と思いました。思いましたのでActiveDirectoryを管理するWebアプリを鋭意製作中です。コレ、ホントは年内にリリースする予定だったのですが 途中で飽きて放り投げた諸事情でリリースできませんでした。来年の1月くらいまでにベータ版くらいをリリースしたいです。

システムの導入と情報の分散

私はスマホにアレコレ機能を全盛りするような考え方は嫌いで、要件に応じてベターなものを選択していくべきだと考えています。ところが、都度要件に応じたOSSを導入していくと機能が重複している部分がどうしても出てきます。そこの使い分けがなかなか難しいです。また、導入するシステムを増やせば増やすほど管理のコストも膨れる(加えてだいたい私が管理することになる)ので「導入する・しない」と「どのシステムにどの情報をどうやって集約するのか」というのをよく考えなければいけないというのを痛感しました。

PHPがうう~ん

特定の言語にアレコレ言えるほどの知識も技術もないですし、そういうものに言及するのは避ける方がいいとは思うのですが、あまり好きではないというのが正直なところです。具体的には下記のあたり。

  • 仕様に一貫性が感じられない
  • 型が緩すぎる
  • 思いもしない罠があるので都度入念に調べる必要があり、めんどくさい
  • コレクション相当のものが言語で実装されていない(連想配列は論外)
  • PHPに限らないが実行時までエラーがわからんのはキツイ(特にコードを書きかえる時)

こんな感じです。こういうことがあって、書くのが結構しんどいというのが正直なところでした。特に連想配列関連がきつかった。結果、コードを書くことに対してあまりモチベーションが上がらなかったのはアカンかったなぁ…。という感じです。ここをどうするのかが来年の課題です。

モチベーション的なところ

2年目で慣れてきたということと、前述のこともあってあんまりモチベーションが上がらないかったというのが正直なところです。

まとめ


全体的にもっとやりたいことはあるものの、リソースを割けない(私も部署も)といったところです。モチベーション面では、私は現職にはツテで入社させて頂いており、それだからこそなおさら非常に申し訳ないという気持ちが強いです。来年はここをどうにかしてアゲアゲにしていきたいと思います。