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。 いまのところ、自分が使い続けているので今後の保守・運用は続けていくつもり。
- Izumo - markdown note tool - をリリースしました。
- 対応
- 多言語化
- ダークモード対応
- 諸々のバグ修正
- 対応
- iOSDC 2018 でMarkdownの解析について発表してきた。
OSS
nakajijapan/ColorHex
- ios grade down deployment target: 2018-06-01
- Add calibrated color: 2018-01-16
- Use Xcode9: 2018-01-07
- Support macOS: 2018-01-07
nakajijapan/Izumo
- Speed up the codeblock algorithm: 2018-10-28
- Abolish to use swift string method: (https://github.com/nakajijapan/Izumo/issues/38) 2018-10-07
- Use Swift 4.2 and Use Dark Mode: 2018-09-30
- Use typeingAttributes: (一行目を改行すると一行目のフォントサイズを引き継が…) 2018-08-06
- Refactoring: 2018-07-16
- Localize around recovery: 2018-07-15
- Use nsfetchresultscontroller: 2018-07-15
- Localization: (Add the Simplified Chinise) 2018-07-08
- Localization fo mac: 2018-07-03
- iOS側にもオートインデント追加: (Auto-indent対応 iOSはチェックしないようにした タブ…) 2018-04-15
- Cloudkit: 2018-03-01
- Abolish toolbar: 2018-01-18
- Drag and Drop: 2018-01-01
nakajijapan/Kazaguruma
- Use Swift 4.1: 2018-04-11
nakajijapan/PhotoSlider
- Delete warnings for Swift 4.2: 2018-09-24
- Pass a UI test: (A test didn’t pass.) 2018-09-01
- Change the animtion logic: (Change the animation logic because the some views …) 2018-06-19
- Update Kingfisher to 4.8.0: 2018-06-15
nakajijapan/Shari
iPad対応・回転対応できるようにした。
- Optimize the animation for rotation: 2018-10-22
- Add isUsingScreenShotImage: 2018-10-20
- Use Swift 4.2: 2018-09-29
- Enable to setting the cornerradius: 2018-07-08
- Specify the height: (We can specify the height in presenting the view c…) 2018-06-10
nakajijapan/VersionUpdater
会社で必要だったので作成した。
- Use Swift 4.2: 2018-09-29
- Use window variable and abolish completion closure: 2018-06-11
- Use travis: 2018-06-08
副業
複数の会社をまたいで小さい会社に技術的なアドバイスだけではなく開発まで行った。 意識していたことは、様々な種類のアプリを作り、今まで知らなかった技術や表面的な技術としてしか持っていなかったものを深掘りして自分のものにすること。 もう一つは、0から開発することはないのでその経験を得ることを意識して案件を選ぶようにしている。
これから
エンジニアリングは引き続きやっていくというのはもちろんのことだが、一メンバーとしてエンジニア組織を構築するというのは大変貴重な機会だし、 自分が興味がある分野なので引き続き関わっていきたい。
とはいえ、大変そうだ。。。