見出し画像

初めてプロジェクトに参加して半年たった振り返り

挨拶

エンジニアと人生コミュニティのアドベントカレンダー#1の1日目を担当させたいただきますokaです。よろしくお願いします。
#2はコチラです。

前置き

私事ですが本日12月1日で教員からNRIネットコムへ異業種転職して、初めてプロジェクトに参加させていただき、半年が経ちます。
短いようで長かった…
いや長いようで短かった…
どちらとも思えるような半年でしたが、折角の何かしら記事を書く機会、プロジェクトに参加して半年経った今、この半年どんな事をしてきたのか振り返りつつ、成長したなと思う点、もっとこうしておけばよかったかもと思う点など書き出してみたいと思います。
またもしお時間ございましたら、この記事を読む前に自分が異業種から転職した経緯や、転職して半年経った時の様子を書いた2記事がございますので、読んでいただけると、より背景なども見えて面白く読めるかと思いますので時間がある方は是非一読してみてください。

では本題に入りたいと思います。

参加しているプロジェクトの特徴

プロジェクトは某グルメ系アプリのリプレイスでAndroidを担当させていただいています。
アーキテクチャはMVVMでKMMが採用されており、ビジネスロジックが共通化されています。
チームは常時5人前後で、エンハンス案件を行ったり、保守、改善でリファクタリングを行ったりしています。
最近はライブラリのアップデートのための調査なども行っています。
初めての参加でこんなにも恵まれた案件を担当させてくれた会社には本当に感謝しかないです。

参加当初のレベル

参加が決まったのは確か5月中旬ぐらいで、iOSでの採用でしたがAndroidで参加していただけないかという話でした。
よってAndroidは初心者のレベルで参加させていただきました。
今でも覚えていますが、初日に貸与PCを受け取りにお客様の会社でセットアップをして、環境構築をし、コードを見たときに”あっやばい。何もわからん”となり、一気に気が引き締まる思いになりました。

1ヶ月

参加してからの2週間は本当にチーム全体がバタバタしていて、自分に割く時間は無い様子でした。そのため自分でプロジェクトのドキュメントやコードをみて、簡単な修正タスクをもらいつつ自分で直してPRを出すということをしていましたが、初のPRは盛大に失敗してしまい、チーム(特にリーダー)にご迷惑をおかけしました。Git操作はもっと勉強しておくべきだったなと思いましたが、いい教訓になりました。2週間ぐらい経ち、少し落ち着いてきた時にチームメンバーの一人が専属で1on1についていただきました。
約1週間、30分から1時間ぐらい一緒にタスクを行なってくれました。
その期間で

  • Androidによる基本的なアプリ開発の仕方

  • レイアウトファイルとFragmentの関係

  • UnitTestの書き方

  • LiveDataやコルーチンについて

  • Git操作とPRの出し方

を学びつつ実践していきました。
今の自分があるのも間違いなくこの期間に丁寧に教えていただいた事が基礎となっていますので本当に感謝しかないです。(現在も同じチームでメンバーとしています)

3ヶ月

約1ヶ月経った7月に、チームリーダーから8月から新規機能を追加することになったのでエンハンス案件を担当してもらう事になった旨が伝えられ嬉しく、どきどきわくわくしたのを覚えています。
ただ、まだまだ実力はなかったのでこの1ヶ月である程度自走できるようにとリーダー自ら毎日1時間程度時間をとっていただき、朝、修正タスクをいただき、修正方針を書き出し、修正し、それを夕方見ていただき、修正方針に違和感はないか、実際の修正に問題はないか、など確認していただきました。またわからない部分は箇条書きでピックアップし、質問して教えていただくこともしていました。約2週間ぐらいは毎日質問事項が3〜5程度あり、懇切丁寧に教えていただいていましたが、2週間ぐらいした時に段々質問が無い日もでてきました。そこからはわからない所や質問がしたい時に時間をとっていただくスタイルに切り替わりました。時に厳しい指導や、当時の自分には難しいタスクもありましたが、日々自分でできる事が増えていく事にすごくやりがいと楽しさを感じた事を覚えています。
そして8月になり、初めてのエンハンス案件を担当し、自分で要件定義書から設計書を書き起こし、プロジェクトマネージャーやリーダー、iOSの担当者やデザイナーに共有をしたり、自分で納期に間に合うようにタスクやチケットの管理を行いました。ここでは

  • Androidチーム外のメンバーと仕事をすること

  • 設計書の書き方

  • 設計書の段階でチェックしておくポイント

  • 要件定義書の見方

  • デザイナーやプロジェクトマネージャーとやりとりをしながらのエンハンスの進め方

  • Androidにおける新規画面の実装及び、新規機能の追加

を学びつつ、Androidでの開発に慣れていくのはもちろん、周りと対話しながら実装できる事にも楽しさややりがいを感じました。また普段からテックブログを書いていたのでチームで今日しているドキュメントも、自分が気づいた点など更新したり、新しく作成して共有したりしてみました。

半年

3ヶ月が経ち、エンハンス案件も無事納期に間に合う形で終えることができました。またAndroidでの開発にも慣れ、楽しさを感じてきた頃でした。
そんな中targetSDKのバージョンを早急に引き上げないといけないという事で担当させていただく事に。
約1週間ぐらいかけて影響調査を行い、実際にバージョンを引き上げた際に出たエラーを潰しつつ、再度影響を調査し、まとめてリーダーに報告するといった感じでした。このタスクのおかげで更にAndroidに関して理解を深める事ができ、SDKのバージョンやCompilerのバージョン、KotlinやGradleについても知る事ができました。
また個人開発では最新のバージョンを自分のタイミングで触る事ができましたが、規模の大きなプロジェクトとなると影響範囲がわからず、特にAndroidという事で知見が薄く、どのライブラリがどんな影響を及ぼすのか調査に時間がかかったりしました。
また全体的に約2年近くライブラリが更新されていない様子でメジャーバージョンの更新を行うと、その他ライブラリにも影響をし、まさに芋づる式にエラーが…
ここでも学びがあり、ライブラリの更新は小まめに行う事が大切だなと感じました。
ただこのtargetSDKのバージョンアップですが、後に一点コピペのミスによりパーミッション関係で障害を起こしてしまいました。
自分の修正したコードで障害を発生させてしまい、チームにはもちろん、ユーザーにもご迷惑をおかけしてしまいました。
普段からタイポなどがあり、直さないとなと思っていましたが、この時本当に正確なタイピングを行う癖をつけておけば良かったと反省しました。
速さや生産性を高めることはもちろん大事だと思いますが、その前に品質を高く保つように最大限努力すべきだなと感じました。その上で速さや生産性を向上すべきだなと。

今後の展望

以上初めてプロジェクトに入って半年の内容でした。
成長したなと思う点、もっとこうしておけばよかったかもと思う点などつらつら書き出してみましたが、半年で本当に多くの事を学ばせていただきました。改めて感謝しかないなと感じた次第です。
今後は
・より品質を高められるように丁寧な仕事をする癖をつける
・たくさんのコードをみて、書いてもっとスキルアップしていく
・引き続き楽しみながら仕事をする
事を展望に次は来年の4月ごろに振り返りたいなと思います!

以上エンジニアと人生コミュニティのアドベントカレンダー#1の1日目を担当させたいただきますokaでした!
明日はダンさんの記事です!是非そちらもご覧ください!

いいねと思えたらよろしくお願いします😋