チーム開発は現代のプロジェクトには欠かせない要素です。
しかし、チームとして機能することは容易ではありません。
多くの人がメンバー同士のコミュニケーションや役割分担に悩み、思うように成果を上げられない経験をしているのではないでしょうか。
この講演ではそんな悩みを解消し、グループから真のチームへと成長するために必要な要素を、私が実際に手掛けてきたチームビルディングの経験からお話しします。
特に生産性の高いチームがどのようにコミュニティを形成し、互いに協力し合う環境を作り出しているのか、その具体的な戦略とアプローチを紹介します。
参加者はチーム開発の課題を乗り越え、理想的なチームを築くための実践的な手法と、即実践できる知見を持ち帰ることができるでしょう。
金沢工業大学には、BusStopプロジェクトという課外活動団体があります。
BusStopプロジェクトでは、市営のコミュニティバスの利便性を向上させるため、Web・モバイル・IoTなどそれぞれの分野に分かれたチーム開発を行っています。また、それに関連してIoTネットワークに使用されるLPWAの通信研究も行っています。
市やバス会社と連携したシステム開発を、4年間で全ての人が入れ替わる学生団体で行っているため、これまでに技術的な引継ぎや人手不足、市役所との連携不足などの問題が発生しました。
責任のある開発を学生団体が継続してやっていくためには、どのようにすればいいのかたくさん悩みました。
今回のトークでは、
・ BusStopプロジェクトが行っているシステム開発の概要
・ 責任のあるシステム開発を学生が継続して行うためには
という内容をお話しします。
フロントエンド開発において、コード品質や開発スピードを担保しながら開発を進めていくには、どのような施策が必要でしょうか?
とりわけチーム開発では、メンバーのプロジェクトの認知負荷やコーディングスタイルの違いという点をいかに改善し、開発のサイクルを回していくかという点が課題になりうるかと思います。
本トークでは、学生エンジニアとして、即席チームでのハッカソンやその継続開発を通して得られた経験や知見をもとに、こうした課題に立ち向かうためのフロントエンド設計の取り組みについてお話しさせていただきます。
私はかつて早稲田大学理工学術院の学園祭「理工展」を運営する「理工展連絡会」にて情報局という部署に所属していました。
2020年の世代交代、私が所属するWeb班は人手と経験が不足し、さらには最上級生がおらず学部2年になる自分が班のチーフになりました。
悪いことは続き、この年新型コロナウイルス感染症の感染が急拡大し、対面での開催は絶望的となりました。コンテンツは限られるもののオンラインでも学園祭を開催できるのではと考えた情報局の各開発チームは、自分たちのできる範囲でオンライン開催を目指すことを上層部に提言し、各チームが自主的に制作に動き始めました。
刻々と変わる情勢、他部署の介入、例年の数倍要求される技術レベルと開発量、のしかかる重責、開催日という絶対に変わらない納期。経験のない自分、前例のない事象と、何もかもゼロから始めたこそわかる経験を話していきます。
ネットワークコンテンツ研究会 Nekko Cloud Teamでは,複数のメンバーの自宅をリージョンとしたマルチリージョンプライベートクラウド Nekko Cloudを開発しています.
Nekko Cloud Teamでは,Nekko Cloudを作る・使う学生エンジニアが,楽しみながらクラウド関連技術を勉強しています.
今回はNekko CloudのIaaS基盤と,それを支えるネットワークと各リージョンのサーバーについて紹介します.
また,開発の経緯や,開発中に起きたトラブルや,今後の開発計画をお伝えします.
・ネットワークコンテンツ研究会の紹介
・マルチリージョンプライベートクラウド Nekko Cloud
・IaaS基盤
・リージョン
・ネットワーク
・今後の開発計画
東京科学大学(10月1日に東京工業大学・東京医科歯科大学から改称予定)のデジタル創作同好会 traP は、来年で設立から 10 年を迎え、所属部員は8月現在で約 700 名という国内最大規模のサークルとなっています。traP の活動範囲はゲーム・Web 制作にとどまらず、競技プログラミングからデジタル音楽製作まで多岐に渡ります。
巨大なサークルゆえ複雑になっている traP が分野ごとに分離せずに1つのサークルとして活動できている要因の一つに、内製のコミュニケーションサービスを基盤とした様々なサービスの存在があるのは間違いありません。
本セッションでは traP を支えるサービスや人、仕組み・運営体制など、大規模なサークルの舞台裏をご紹介いたします。
我々ネッコ研では、複数のメンバーが所有する自宅サーバーをVPNで繋ぎ、その上にプライベートクラウドを構築するプロジェクト「Nekko Cloud」を進めています。
一般のクラウドにおいて認証認可は避けて通れない要素ですが、安全性や利便性を求めるとAWSのIAMのように仕様が膨大になってしまい、設計が難しくなります。
しかしながら、Nekko Cloudは1サークル内で提供されるサービスですので、順序立てて考えれば要件を絞ることができます。
最終的に我々は、DiscordのOAuthでのみログインできる自作メンバーポータルにOIDC Providerの機能を付けることで、認可したサービスにのみ認証情報を"プロキシ"する形のフローを採用しました。
本セッションでは、我々がどのように状況を整理し、何を主目的として定めたのか、そして設計した認証認可基盤計画の全貌をお伝えします。
ハッカソンなどで開発したプロダクトをチームで運用するためには、お金や時間など、さまざまな課題が伴います。そのため、長期運用を見送って開発を終了することも少なくありません。しかし、運用をしないと決断した場合でも、メンバーそれぞれが成長を続けるためにできることは多くあります。たとえば、プロダクトで使った技術やサービスを個人開発に活かす、技術について発表したりブログで共有する、などが考えられます。
本セッションでは、開発後にプロダクトの運用を見送る選択をした場合でも、メンバーが成長を続けるために取れるアクションについて話します。チーム開発で得た技術的な知見を発表やアウトプット、さまざまな場面で得た知識を応用する活動をすることで自己成長につなげ、新たな挑戦への足がかりとするためのヒントを共有する場にできればと思います。
学生のチーム開発では、リソース不足が常に大きな課題となります。
特にモバイルアプリ開発では、iOSとAndroidの両方を別々に開発する必要があり、チームにさらなる負担がかかります。
このセッションでは、Flutterを活用して、いかに少人数で効率的にiOSとAndroidのアプリを同時に開発できるかについてお話しします。
私が以前所属していたプロジェクトでは、実際にリソース不足などに立ち向かうため、iOS/Androidで開発していたアプリをFlutterに置き換えたことがあります。
その際に直面した課題や、移行にあたって考慮したことなど、具体的な事例を交えながらお伝えします。
学生チームが抱えるリソースの問題を解決する一助となれば幸いです。
学生エンジニアサークルの創立者は大抵優秀で、一部のメンバーからは神ように崇められているところもあります。今回は、そんな神からサークルを引き継ぎ、運用していくことの難しさと努力したことについて話します。
自らエンジニアサークルを作るような方は、技術力、行動力、求心力のどれをとっても学年、学部一クラスで、大抵エンジニアを目指す人なら聞いたことあるようなデカい企業に就職します。
そんな人からサークルを引き継ぐと、一年前の実績に追いつくことすら死力を尽くしてなんとかなるかどうかというレベルでした。その過程で、サークルを大きくしつつ、個々人の熱量も維持するために大切だと感じた、今後引き継いでいく人や興味のある人に知ってほしい、
・自分には無い求心力を補う方法
・追ってしまう先輩の幻影と打ち消し方
・大変な思いをしてもサークル運営に参画し続けるべき理由を主に話します!
モバイルアプリの開発を3人の小規模から10人以上関わる大規模なチームで行ってきました。
このとき、PdMとして求められることはアプリ開発の管理はもちろんのこと、メンバーの管理も必要となります。
会社等の基盤のしっかりしている組織内のチームとは一味違う、学生チームにおけるチームマネジメントについてお話しできればと思っています。
これがベストといったものは私自身まだ見つけられていませんが、私の経験がだれかの力になれれば幸いです!
私の所属するNekko Cloud Teamでは、VPNでメンバーの自宅サーバを接続し、プライベートクラウドを構築しています。
ProxmoxでIaaS環境を運用しているのですが、手作業でVMを作成する工程は冗長であり、時間のかかる面倒な作業でした。
そこで、我々は「VMを作成する工程」をトイルとし、VM用プロビジョニングツール「Terrakko」を作成しました。
今回は、Terrakkoプロジェクトを通して、Nekko Cloud TeamにPlatform Engineeringという考え方をもたらす過程を紹介します。
アジェンダ:
マルチリージョンプライベートクラウド Nekko Cloud
Nekko Cloud IaaS基盤の開発における課題
サークル内のトイルと向き合う方法
Infrastructure as Codeという選択
プロビジョニングツール Terrakko
学生チームでのゲーム開発において完成する確率は何%だと思いますか?
実はオンラインだと10%、対面だと50%です(私の経験上)
そして、頓挫するほとんどの原因は、技術的な問題ではなく、モチベーションの喪失や人間関係の問題です。
私は10本以上のゲーム制作を、のべ50人以上の学生と制作してきました。
内訳には、完全オンラインで他学校の学生との開発や、留学生をチームメンバーに入れた2年間の開発等、多様な経験が含まれます。
また、学内のゲーム制作サークルの運営や、複数の学校を跨いだゲーム制作コミュニティの設立を行ってきました。
これまでのゲーム開発やサークル運営の経験から、主にチームマネジメントやモチベーションの維持に関するノウハウを話したいと思います。
学園祭アプリの開発はたくさんのステークホルダーがおり、様々な予想外なことが発生します。
他企画チームの遅れ、コラボ企業との認識の差異、アプリのリジェクト...
そうして、立てたスケジュールは予想外にガラガラと崩れていきます...
今回、早稲田大学の学園祭である理工展において、アプリ開発のチーフを務めていた経験から、実際の開発スケジュールと遅れに直結する様々な事例、そしてその対処法をお話しします。
どういうスケジュールにすればいいかわからない、また、想定外の問題が起きた時不安だ、という方々のお力になれれば幸いです。
チーム開発を進める上でチームメイトの選定、適切な技術の選定、コードのルールが必要である。
役割をどう振るのか、話し合える人なのか、共同開発をする上でこの技術スタックで行うことが適切なのか?ということ。また、好き勝手にコードを書かせてはいけない。ディレクトリ構成を決めたり、lintを設定することでコードの整合性を保つ必要がある。またgitの使い方にルールを持たせることでgitでのトラブルを防ぐことができる。ハッカソンやプロジェクトなどでPM兼エンジニアを行った私だから話すことができる共同開発をストレスなく楽しく行う上でのチーム構成や進め方、技術選定、ルール決めについてお話しします。