こんにちは!未経験からWEBエンジニアを目指している初学者です。
1.はじめに
現在参加させていただいているアプレンティスシップというサービスで、初めてチーム開発を経験しました。タスク管理、チームでのコミュニケーションの取り方など、初心者なりに学んだことがあったので記録を残します!
2.チーム開発の概要
2-1.開発期間
2023/12/11~2024/1/28 の約6週間
2-2.チームメンバー
私含む3名のチームで、全員未経験でWEBエンジニアを目指しているメンバーでした。
2-3.テーマ
「自分たちの役に立つWEBアプリ」というテーマで自由にアイデアを出し、開発を行いました。
2-4.技術アーキテクチャ
フロントエンドとしてHTML/CSS/JavaScriptを使い、ローカル環境(手元のPC)で動くWEBサイトを製作しました。(PHP、Ruby等バックエンドの言語については、後述する理由で使っていません)
なお会議のメモ作成やタスク管理はNotionで行い、ソースコードの管理はGitHubでやっていました。
3.チーム開発をどのように進めたか
3-1.アイデア出し
健康管理アプリ、学習の進捗管理アプリなどアイデアを出して相談した結果、「自分たちでも作れそう」、「単純に面白そう!」といった理由で、プログラミングの学習をするタイピングゲームのWEBサイトを開発することになりました。
3-2.デモ用スライド作成・要件定義
チーム開発の成果発表会に使うスライドを作成したり、要件定義をしたりしました。この部分ではメディア関連の仕事をされているメンバーの方が活躍され、大変ありがたかったです。
私は第3者の目線で「もっとこうした方が伝わりやすいかも」と提案した程度でしたが、「メンバーの得意な部分は、その人に頼る」ことも大事だと感じました。
3-3.設計、タスク出し
・業務フロー図の作成
・画面遷移図の作成
・ワイヤーフレームの作成
・テーブル定義書の作成
・技術アーキテクチャの設定
・タスク出しと作業の割り振り
を行いました。メンバー全員が未経験だったので、予定を前倒しで実装を始めようかと相談していたのですが、このときは「大丈夫そうだ」ということで予定通りに進めました。
今思えば、私は用事が入って時間があまり取れないことは分かっていたので、多少でも手を付けてどれくらい時間がかかりそうかもっと正確な見積をするべきだったと反省しています…
3-4.実装~完成まで
3-4-1.うまくいったこと
➀「こうしたほうがいい」という内容はマイルドに伝える
今回、初対面でバックグラウンドも違ううえ、全員初心者のメンバーで6週間チーム開発を行っていたので、コミュニケーションにはかなり注意しました。
他のメンバーに対して「もっとこうしたほうがいい」と思っても、その人なりに事情やこだわりがあってやっているのかもしれないですし、言い方次第では悪口のようになってしまいます。チームの信頼関係を壊さないために、相手を尊重する伝え方が大事だと感じました。
⓶.言われた側も、相手の考えをくみ取ってアイデアを昇華する
自分が良いと思ったアイデアに対して、「もっとこうしたほうがいい」と言われると、多少モヤっとしてしまうこともあるかと思います。(今回は全員初心者だったので、単に知識不足から来る未熟な点・それに対する指摘がよくありました)
そこでㇺっとしてしまうのではなく、相手の言っていることに一理あるということを認識して、直すところは直す、より良い折衷案を考えるようにするとスムーズにチーム開発が進められると思いました。
3-4-2.反省したこと
➀.タスク管理の甘さ
今回、とにかくタスク管理が甘かったことを反省しました。
当初はタイピングゲームの問題や正答をデータベース(MySQL)で管理して、PHPでアクセスする予定でしたが、
たまたま用事が重なってしまい時間が取れなかったことがきっかけで、この実装を諦め、問題についてはJavaScriptにベタ打ちで管理することになりました。今回はデモ用のサイト作成だったので問題はなかったですが、厳しい事が分かった時点で他のメンバーに助けを求めるべきでした…
⓶.自分の技術力の無さ
上記の原因の1つですが、本来簡単(であるはずの)機能を実装するのにも毎回調べてやっていたので、想定の倍どころか3倍くらい時間がかかっていました。これは恐らくアウトプットの反復が足りていないからで、学習を継続することの必要性を痛感しました。
6.おわりに
本記事では、初めてのチーム開発で初心者が経験したこと、感じたことを書きました。
まだまだ未熟であることを痛感しましたが、この経験を活かして今後も頑張っていきます!