エンジニアリングに留まらないフルスタックな人材になりたい
新卒の就職活動をしている時から「どんな仕事でも任される人材になる」という目標を掲げていました。
現在の所属会社ではフロントエンド/バックエンドの開発業務はもちろん
サーバー構築などのインフラ系の業務も担当しておりました。
また、開発チームのマネージメントであったり、新人教育や採用活動など
エンジニアリング以外にも様々な経験をしました。
エンジニアリングに留まらないフルスタックな人材になり、
社会人になる前からの目標であるエンジニアリングに留まらないフルスタックな人材になりたいと考えています。
このプロジェクト詳細は公開されていません
このプロジェクト詳細は公開されていません
健康増進を目的としたWebアプリケーションの受託開発プロジェクトでした。
既存のWebアプリケーションがあり、それをLaraverlで作り直すプロジェクト。
開発メンバーは25名。
要件定義から保守運用まで行いました。
開発チームのリーダーを担当しておりました。
チームの規模は私を含めて6名。
日々の進捗管理、コードレビュー、メンバーフォローなどを行なっておりました。
この案件が初めてのリーダー業務だったこともあり、あまりバリューを発揮できなかった案件でした。
しかし、この失敗からさまざまなことを学ぶことができました。
この案件時の私は「進捗管理」ではなく「進捗確認」しかできていなかった、と今は感じます。
進捗を管理しているわけではなく、毎日夕方にメンバーの進捗を「確認」するだけでした。
何が問題だったかというと、メンバーそれぞれが自分の尺度で進捗を報告しているので
進捗率が正確でなく、タスクの期限日ギリギリになって遅延が発覚するようなことがよくありました。
解決策としては、「定量的な報告を義務付ける」ことだと考えています。
例えば実装であれば「実像すべき処理が⚫︎個あり、そのうちの▲個完了したので、進捗は◻️%」のように報告してもらいます。
これによって作業者も作業の全量がわかり、また作業の全量をリーダーとメンバーですり合わせができるので
タスク漏れなども減らすことができます。
この経験から、自分自身がメンバーとして参画する際も、「管理されやすさ」を意識できるようになったと感じます。
リプレース案件だったこともあり、顧客からの要求が「現行踏襲」であることが多い案件でした。
要件定義のタイミングでは、過去の要件資料を確認しながら現行踏襲するように要件定義を行っておりましたが
設計フェーズでお客様に基本設計書をレビューしていただいたら、知らない仕様がいくつも出てきて
大幅に設計フェーズが遅延してしまいました。
この時は、現行のソースコードから仕様をリバースすることにしたのですが
本来であれば、お客様から運用フローを頂いて、それに合わせて要件を決め直すことが正しかったと考えております。
現行踏襲は要件ではない。
遅延や問題が発生した際に、エスカレーションが遅く、余計に問題が発生することが多々ありました。
リーダーとして、自分で問題を解決しなければいけない、という意識が強すぎたのが原因だと考えています。
少しでも問題が発生したら声を上げる。
これによって、素早くリカバリもできますし、同じような問題で困っている他チームにも共有できるので
「早く騒ぎを大きくする」ことの重要さを感じました。
開発チーム
開発メンバーの能力を向上させ、生産性を高めること
若手の開発メンバーが多く、生産性が低いことが課題でした。
この課題を解決するために、以下のことを実施しました。
・「仕事の進め方」についての教育
・定期的な1on1
▼「仕事の進め方」についての教育
プログラミング能力よりもチーム全体の「仕事力」を高めることに注力しました。
例えば、「タスクに着手する前にタスクの全量を把握すること」「一番簡単そうなタスクに着手し実績を計る」
ということを口を酸っぱく伝えていたため
この時の開発チームの進捗確認では、メンバー全員が定量的、かつ納得感のある報告ができておりました。
そのおかげで、進捗遅れなどの問題を素早くキャッチアップすることができ
早めのリカバリをすることで生産性を高めることに成功しました。
▼定期的な1on1
定期的に1on1を行い、メンバーの良いところ、改善点をフィードバックしていました。
若手メンバーの場合は特に、フィードバックされた内容を取り込むスピードが速く
良いところをさらに伸ばし、改善点は次回の1on1までに改善されていることが多かったです。
これにより、チーム全体のレベルが上がり、生産性を高めることに成功しました。