2018を振り返る

2018年を振り返る。

仕事

今年はまた新しい会社で働くことになり、心機一転頑張るぞというところから始まったが、まぁ社内ではスタートアップあるあるというかなんというか ごたついていて序盤は仕事に集中できていなかったように思う。せっかく入社してこれから心配になりそうだったのでメインの仕事以外にも自分もやらないと いけないと感じ、実務以外のところで、自分だけではなく他のメンバーへのハレーションが拡大しなように色々動いたと思う。

エンジニアリングマネージャ

自分の会社で初めて評価制度ができたタイミングで、もっと良くできるのではないかなと思い、 今までの経験からエンジニアの評価制度はこうするべきと考えて、会社に企画・提案を行い、実施まで行った。 そこから、エンジニアの軸だったり採用方針だったりを決めるところまで実行に移すことになる。 その後、それを担う技術戦略部ができ、そこに所属することになった。 その結果、エンジニアリングマネージャ?となった。つまるところエンジニア全員の技術評価をしたり採用したりという役割。

モバイルエンジニア

当時はiOSは開発者3人体制で開発し、リリースしてから一年を経とうとしているアプリだった。 しかし、チーム開発をするにはまだまだ課題があると感じたので以下のことを行った。

  • Gitの使い方が間違っていたのでチーム開発に耐えれるような方針を提案
  • ルーキー枠のエンジニアがいたがレビューがほとんど行われていなく、放置状態だったのでレビュー体制を整えるだけではなく、彼のフォロー体制も企画・提案を実施
  • チームで安定した開発ができるようにするためにVIPER+RxSwiftを利用した設計で運用することを提案・導入
    • 安定した開発とは、開発しやすい、バグの起きにくい、レビューがしやすい
    • 先ずは設計に慣れてないないエンジニアがほとんどだったので、最初に設計の勉強会(モバイル開発にはどういう実装があるのか色々な設計方法を交えて)から具体的にどのような実装をしていくのかを簡単な機能でPull Requestを作成して説明した。
    • その結果、責務を分割したことでコードの見通しはよくなり、テストコードも書きやすくなり安定した開発ができるようになりました。
    • VIPER設計(+RxSwift)でサービスのコードを置き換えた
  • 自動化
    • 構築したっきり誰も運用されていないかったので自分で運用するようにした
    • テストがなかったのでモデルのテストからUIの状態テストまでできるようにした
    • Cocoapodsが速度を遅くしている原因になったいたので少しずつ移行し、処理時間の短縮化に成功した
  • 勉強会でFirebase Authrizationを発表した

Androidエンジニアが一時的にいない問題

運用途中から、Androidエンジニアがいなくなってしまうという問題が発生した。 現状はリリースしてしまっている・機会損失に繋がる・ビジネス的判断から開発を止めるわけにはいかなかった。 それ以降からPolcaのモバイル開発はiOS、Androidも開発を行うようにした。そこまで、実践経験がなかった自分だったが、 これによりAndroidでも通常の機能開発できるようになったことはもちろんのことデザインのレビューの際には各プラットフォーム に適したデザインの提案がデザイナとできるようになりました。

デザインにもコミット

ある程度のデザインであれば、自分でSketchを利用してUI設計を行いデザイナいらずでリリースまで持っていくことが増えた。 デザイナが不要というわけではなくめっちゃ必要なんだけど、すぐに採用というわけにはいかなかったので自分でできるところはやる というところやってみた


プライベート(技術)

Izumo

無事、一年越しで自分専用に欲しかったMarkdownメモアプリをリリースすることができた。対応プラットフォームはMacOS、iOS。 いまのところ、自分が使い続けているので今後の保守・運用は続けていくつもり。

OSS

nakajijapan/ColorHex

nakajijapan/Izumo

nakajijapan/Kazaguruma

nakajijapan/PhotoSlider

nakajijapan/Shari

iPad対応・回転対応できるようにした。

nakajijapan/VersionUpdater

会社で必要だったので作成した。

副業

複数の会社をまたいで小さい会社に技術的なアドバイスだけではなく開発まで行った。 意識していたことは、様々な種類のアプリを作り、今まで知らなかった技術や表面的な技術としてしか持っていなかったものを深掘りして自分のものにすること。 もう一つは、0から開発することはないのでその経験を得ることを意識して案件を選ぶようにしている。

これから

エンジニアリングは引き続きやっていくというのはもちろんのことだが、一メンバーとしてエンジニア組織を構築するというのは大変貴重な機会だし、 自分が興味がある分野なので引き続き関わっていきたい。

とはいえ、大変そうだ。。。