スタッフブログ
2021.07.07
新人研修

新人研修:チーム開発演習を終えて

皆様こんにちは。4月以来の更新担当で若干緊張している、東京本部のHです。

早いもので7月が始まり、私たち新入社員もそれぞれの部署に配属されました。

さて、本日は、先日6月29日に修了した新人研修について振り返ってみたいと思います。

前回のブログでは水戸支店のYが個人開発演習について書いてくれましたので、今回はその後に行われた「チーム開発演習」を中心に述べていきます。これを受講するのは今年の新入社員からで、22年卒の方も受講されると思うので、ぜひ参考にしていただければ幸いです。


1. チーム開発演習の進め方

 チーム開発演習では、その名の通り6〜7人ずつのチームに分かれて1つのプロジェクトを作り上げます。4~5月は、そのほとんどを個人でのコーディングに費やしましたが、ここからはチームで作業にあたる必要があります。

今回私はチームリーダーとして携わりましたが、その他にも課題、人員、スケジュール、品質についてそれぞれチーム内で管理者を割り振りました。

具体的な工程としては、仕様書作成(1日間)→作業工程表作成(1日間)→実装(8日間)→テスト仕様書作成&テスト実施(3日間)→デプロイ*(1日間)という流れでした。

指定されたプロジェクト概要によれば、元から存在するサイト(架空のもの)を改良するという設定でしたので、要件定義を1から行ったわけではありません。

ただ、指定された必須機能以外にも、自分たちで考えたオリジナルの追加機能を仕様書に追記したり、作業工程表を見様見真似で作ったりと、一部上流工程を体験することができました。

メインは実装工程でのプログラミングですが、それ以外の工程も満遍なく経験することができ、非常に勉強になりました。

2. チームリーダーの役割

 就活をされている皆さんの中には、もしかすると将来的にはPM(プロジェクトマネジメント)に関わりたい!という方もいらっしゃるかもしれません。

チームリーダーはそれに似た役割を担います。

実際に行った作業としては、それぞれの管理者から報告を聞き、全体の統括(チームの舵取り)をすることです。

・・・などと、言うのは簡単ですが、メンバーから上がってきた情報から必要なものを抽出・集約し、適切な判断を下すことは想像以上に難しいことです。

さらに、判断を間違えれば進捗に大きく影響し、最悪の場合、納期に間に合わないという事態も起こりうる、非常に責任感の伴う役割だと感じました。

しかし、同時に、チームを俯瞰的に見るというチームリーダーの役割をこなすことは、先輩や上長の立場の方々がどのようなことを考えているのか、その一端を知る機会でもあります。

つまり、実際にプロジェクトに参画した際、彼らとのコミュニケーションにきっと役立つのではないかと思います。

PMに関わりたい方は、ぜひ研修の際に、恥を捨ててチームリーダーに立候補してみてください。

3. 発生した課題とその解決(個人レベル)

 次に、私が演習の中で直面した課題とその解決策を「個人レベル」と「チームレベル」の2つに分けてご紹介します。

まず、個人レベルの課題としては、以下の3つの要素の不足が挙げられるでしょう。

「技術力不足」「経験不足」「主体性の不足」

私自身、文系出身ということもあり、これまでの研修でも技術力不足や経験不足を感じていたのですが、チーム開発演習ではそれを改めて痛感することとなりました。それはなぜかというと、この演習の一部ではサンプルコードも一切なく、0からコードを記述しなければならない箇所があったためです。例えば、英語の授業で簡単な定型文のみを習っていたのに、突然ネイティブの人と会話させられているような状態です。

また、主体性の不足も大きな課題でした。自ら考えて主体的に動くのはとても難しいことで、経験という裏付けがないと不安になったり行動に移せなかったりすると思います。私もその一人でした。

しかし、これらは一朝一夕で身につくものではありません。そこで、私はまず、技術力でチームに貢献することや、リーダーとしてチームを引っ張らなければならない、という考え方を変えました。なぜなら、これはチーム開発演習だからです。得意・不得意を補い合ってこそチームである意味があると考えました。

具体的な行動としては、経験者の方のコーディングの様子を共有してもらいながら分からない箇所を質問し、自分が担当している機能にそれを役立てました。また、チームを引っ張るのではなく、チームが現在どの段階にあるのかを進捗から判断し、これからの方向性を示すことを意識しました。

4. 発生した課題とその解決(チームレベル)

 チームレベルでの課題は個人のそれに通ずるところがありますが、最も苦労したのは「タスク配分」でした。

前述のとおり、難しい箇所も多かったため、どうしても経験者の方たちに負担が集中してしまうという課題があり、タスク配分が最も困難だと感じました。

これに対して打ち出したチームの方針は、役割分担に沿ったタスク配分です。

開発の段階が進むにつれて、管理者等の役割分担がおざなりになってしまいがちでしたが、上記の課題が明らかになった際、もう一度分担を見直すことで不公平感をなくすよう努めました。

具体的には、プログラミングは経験者の方を中心にしてメンバー全員でディスカッションを行いつつ実装しました。そして、細かい部分の修正、進捗管理や報告会の発表準備などは未経験者が率先して行いました。この方法のメリットは、未経験者もコーディングに参加して経験者の方から学ぶことができると同時に、タスクの分散も行うことができる点です。

このように、チーム開発演習では困難もこれまでと比較にならないほど多かった中、チームならではの解決策を講じた結果、進捗通りに開発を進めることができました。(現実のプロジェクトもこのくらいうまくいけばよいのですが・・・)

これを見てくださっている皆さんの中には、私と同じく未経験でIT業界に入りたい方がいらっしゃるかもしれません。はじめは経験者の方との差に打ちのめされると思います。ですが、それでも挫けず自分ができることを着実に探して実行すれば、チームに貢献することができると今回の演習で学びました。


というわけで、今回は研修の集大成として行ったチーム開発演習について、その概要と私が担った役割、そして課題解決のプロセスについて紹介してきました。

かなりお堅い内容となってしまいましたが、SEになって何がしたいのか、自分の適性はどの分野なのかということを考えるのは、就活において、ひいては人生においてとても重要なことだと思います。

将来のことは就活でも存分に考えますが、入社してからもそれは変わりません。研修を終えて配属になった現在では、むしろ入社後が本番なのだと改めて感じています。初心を大事に頑張っていきましょう。