株式会社クラッソーネ にソフトウェアエンジニアとして入社してちょうど一年が経ちました。 せっかくのちょっとした節目なので、一年間でやってきたこととか自分に合った変化とかをまとめてみます。
そこそこ大きめな機能開発にメインで携わる機会が多かった
Rails エンジニアとしてジョインしてからこれまで、日々取り組むタスクの大半が くらそうね の開発でした。 段々とサービスとして目指す方向性が固まる一方で機能追加のモチベーションも高く、リファクタリングよりは機能追加・改善をどんどん進める一年でした。
- 施主と工事会社のマッチングアルゴリズムへの条件追加
- 請求書発行機能の新規開発
- 電子契約サービスのリプレイス
特にこの辺りはいずれもサービス・アプリの核となる部分の開発で、年間を通してのハイライトな成果でした。
こうしたそこそこ大きな開発を徐々にメインの担当として任されるようになったのも一年間での変化でした。 自分も思い切り開発をしているのでプロジェクトマネージャー感はありませんが... チーム開発・複数人開発・ビジネスとの関わり方、みたいなことの勘所をいろいろ学びました。
Ruby や Rails の先端あたりの機能を利用する機会が増えた
前職では Ruby 1.8.7 (!) や Rails 2.3 (!!!) を利用した開発をしていました。 これ自体は上長にバージョンアップの大切さなどを伝えきれなかっただけなので恨みつらみとかは全くないのですが... それでも新しい Ruby や Rails, それを支えるライブラリたちのエコシステムを利用できない勿体なさをずっと感じていました。
転職してそこそこ新しいバージョンで開発をすることになり、当たり前なんですが新しい機能を使うことが増えました。
.where
を使ってレコードを絞り込めるのめちゃ楽だし Strong Parameter めちゃ便利...
活発なエコシステムに乗っかって日々開発をする体験は素晴らしく、もう前の状態には戻れません。 辛さを知っている身だからこそ、現職ではライブラリのアップデートに積極的に取り組んでいます。
クラッソーネにジョインした当時 Ruby は 2.6 系で Rails は 6.0 系でした。
今は Ruby だけ 2.7 系にバージョンが上がっていますが、それぞれ最新バージョンに追従させることはできていません。
今年中にはそれぞれ最新バージョンにあげたい、そして Gemfile
での Rails のバージョン固定を解除したい...!
今までやってこなかったことにいろいろチャレンジをした
(文字にすると小並感がすごいですが)様々な挑戦をした一年でした。
例えば...
- DHH 流のルーティング設定 を使ってみた
- MySQL のJSON 型のカラムを使ってみた(こんな記事 も書いた)
- MySQL の VIEW を
ActiveRecord
と組み合わせてみた - PDF 生成に Thinreports を使ってみた
- Gem を作ってみた:yamat47/activerecord_accessible_json
- 勉強会に参加してみた(最近は継続的にたくさん参加している)
- React, TypeScript, Next.js を使ってアプリを作ってみた(成果:クラッソーネ開発者ブログ)
これまでは Ruby や Rails 自体について学習をするのが主でしたが、この一年はそのちょっと周りの部分について学習をすることが増えています。 ちゃんと見えるものをアウトプットし続けられたのはとてもよかったところでした。
次の一年も頑張るぞ!
自分が目指したいキャリアパスや方向性がだんだんと見えてきた
SOFT SKILLS や CAREER SKILLS を読んで触発されて、自分自身が目指したいキャリアパスについて考えることが増えました。
Rails を使ったアプリケーション開発はとても楽しく、自分が作った機能が実際に世の中の人たちに使ってもらえるというのはなんとも言えない達成感があります。 自分が提案した仕組みによって、本当なら全く関わることのなかった人の困りごとが解決するのはとても不思議な感覚です。 これはソフトウェアエンジニアだからこそ得られる感覚であり、最も大きなやりがいの一つだと理解しています。
一方で、身近にいる人を直接支援することでより大きな喜びを感じることにも気付きました。 もっといえばソフトウェアエンジニアリングチームの仕組みの改善です。
スクラムでいうところのスクラムマスターのような役割です。 ただチームによってはスクラムを導入しないこともあるため「スクラムマスター業を突き詰めたい」というわけでもありません。 (ユニコーン企業のひみつ も最近注目されていますね。)
チームをスケールさせる、そのためにチームをスケールアップ・スケールアウトの両面で改善し続ける。 そういう思いを持っているチームの支援をするのはとても楽しそう、と想像しています。
どうすればそのような機会に巡り会えるのかはわかりません。 またそのために必要なスキルセットもまだはっきりとはわかっていません。
まずは現職で、そういう活動ができる機会を伺って積極的に飛び込むところから。 二年目はそうした挑戦をする機会を多く取りたいなと妄想しています。
...というわけで、二年目初日の仕事に戻ります。