はじめに
プログラミングを学び始めたばかりの私が、初めてのチーム開発プロジェクトに参加した経験をシェアしたいと思います。このプロジェクトは、チームでの作業をスムーズに進めるためのタスク管理アプリ、「TEAM WEEKLY REPORT」の開発でした。開発に直接大きく貢献できたわけではありませんが、チームメンバーのサポートとプロジェクトを通じて学んだことを残します。
プロジェクトの背景
多くのチーム開発では、進捗の可視化やメンバー間のコミュニケーションが大きな課題となります。「他のメンバーの細かい進捗がわからない」「プロジェクトの全体像が把握しにくい」「助けが必要でも、なかなか言い出せない」などの悩みを解決するために、TEAM WEEKLY REPORTは生まれました。このアプリは、チームメンバーのタスクを週単位で可視化し、プロジェクトの進行度を一目で確認できるようにするものです。
使用技術と選定理由
本プロジェクトの開発に当たり、私たちはHTML、CSS、JavaScript、PHPを主要な技術として選択しました。この決定には、プロジェクトの基本要件とチーム内の学習状況が大きく影響しています。
プロジェクトの要件
プロジェクトの目的は、フレームワークを使用せずに、生の言語だけで開発することにありました。フレームワークを使わないことで、HTML、CSS、JavaScript、PHPなどの基本技術に対する理解を深めることが今回のプロジェクトの狙いでした。
技術選定の理由
- HTML/CSS: ウェブページの構造とスタイルを定義する基本的な技術です。これらはウェブ開発の入門に最適で、私たちのように学び始めたばかりのメンバーにとっても使いやすいものでした。
- JavaScript: クライアントサイドのプログラミング言語で、ウェブページに動的な要素を加えることができます。この言語を使うことで、ユーザーインタラクションの実現が可能になります。
- PHP: サーバーサイドのプログラミング言語で、データベースとのやり取りやサーバー上でのデータ処理に適しています。シンプルながら強力なこの言語は、私たちが求める機能を実装するのに役立ちました。
ローカル環境での開発とDockerの導入
プロジェクト要件の一つに、アプリケーションがローカル(手元のPC上)で動作することが挙げられていました。これは、開発環境をシンプルにし、チームメンバー全員が開発プロセスに容易に参加できるようにするためです。実際の開発では、メンバー各自の環境の違いを考慮して、Dockerを用いた環境構築を行いました。
Dockerの導入は、異なる開発環境間での互換性問題を解消し、誰もが同じ条件下で開発作業を進められるようにするための選択でした。これにより、OSや依存関係による問題を避けることができ、プロジェクトの立ち上げ速度も向上しました。
しかしながら、全メンバーがスムーズにDocker環境を設定できたわけではありませんでした。一部のメンバーは設定に苦戦し、最後まで原因を特定することができないケースもありました。このような状況に対応するため、チーム内で様々な工夫を凝らしました。例えば、より詳細な設定ガイドの共有、個別サポートを強化するなどの対策を講じました。
この経験から、技術的な障壁を乗り越えることの難しさと、それを克服するためのチームワークの重要性を改めて実感しました。Dockerを用いることで基本的には開発環境を統一し、効率的な協業を促進することができましたが、全てのメンバーが同じスタートラインに立てるよう、更なる支援と理解が必要だと感じました。
チーム構成と役割分担
私を含むチームメンバーは、各々が特定のタスクを担当しました。私の主な役割は、プロジェクトのドキュメント作成と、学んだばかりの技術を用いた簡単なフロントエンドの作業でした。時間を十分に確保できなかった私の分を、チームメンバーがサポートしてくれたことは非常にありがたかったです。
開発で直面した課題とその解決策
タスク管理の可視化
メンバーの進捗が一目でわかるUIを作ることは挑戦でした。Figmaでワイアーフレームを作成し、ブレインストーミングを通じて機能要件を精査しました。JavaScriptを用いて、タスクの追加や評価がリアルタイムで反映されるように工夫しました。
プロジェクト進行度の表示
全体の進捗を表すプログレスバーの実装には、PHPとJavaScriptを駆使しました。各タスクの完了度に応じて、プログレスバーが更新される仕組みを作りました。
プロジェクトを通じて得た学び
技術的なスキルだけでなく、チームで協力して何かを作り上げる経験は、私にとって大きな学びとなりました。特に、自分の弱点を補ってくれる仲間の存在の大切さを実感しました。
今後の展望と改善点
今回の経験を活かして、より多くの技術を学び、次のプロジェクトではもっと大きな貢献ができるようになりたいです。また、UI/UXの改善や追加機能の開発も計画しています。
さいごに
この記事が、これからチーム開発に挑戦する方々の参考になれば幸いです。学び始めたばかりでも、チームの一員として貢献できることはたくさんあります。時間が限られている方でも、小さな一歩から始めてみてください。