チーム開発を進める上でチームメイトの選定、適切な技術の選定、コードのルールが必要である。
役割をどう振るのか、話し合える人なのか、共同開発をする上でこの技術スタックで行うことが適切なのか?ということ。また、好き勝手にコードを書かせてはいけない。ディレクトリ構成を決めたり、lintを設定することでコードの整合性を保つ必要がある。またgitの使い方にルールを持たせることでgitでのトラブルを防ぐことができる。ハッカソンやプロジェクトなどでPM兼エンジニアを行った私だから話すことができる共同開発をストレスなく楽しく行う上でのチーム構成や進め方、技術選定、ルール決めについてお話しします。
私の所属する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年間の開発等、多様な経験が含まれます。
また、学内のゲーム制作サークルの運営や、複数の学校を跨いだゲーム制作コミュニティの設立を行ってきました。
これまでのゲーム開発やサークル運営の経験から、主にチームマネジメントやモチベーションの維持に関するノウハウを話したいと思います。
チーム開発は現代のプロジェクトには欠かせない要素です。
しかし、チームとして機能することは容易ではありません。
多くの人がメンバー同士のコミュニケーションや役割分担に悩み、思うように成果を上げられない経験をしているのではないでしょうか。
この講演ではそんな悩みを解消し、グループから真のチームへと成長するために必要な要素を、私が実際に手掛けてきたチームビルディングの経験からお話しします。
特に生産性の高いチームがどのようにコミュニティを形成し、互いに協力し合う環境を作り出しているのか、その具体的な戦略とアプローチを紹介します。
参加者はチーム開発の課題を乗り越え、理想的なチームを築くための実践的な手法と、即実践できる知見を持ち帰ることができるでしょう。
東京科学大学(10月1日に東京工業大学・東京医科歯科大学から改称予定)のデジタル創作同好会 traP は、来年で設立から 10 年を迎え、所属部員は8月現在で約 700 名という国内最大規模のサークルとなっています。traP の活動範囲はゲーム・Web 制作にとどまらず、競技プログラミングからデジタル音楽製作まで多岐に渡ります。
巨大なサークルゆえ複雑になっている traP が分野ごとに分離せずに1つのサークルとして活動できている要因の一つに、内製のコミュニケーションサービスを基盤とした様々なサービスの存在があるのは間違いありません。
本セッションでは traP を支えるサービスや人、仕組み・運営体制など、大規模なサークルの舞台裏をご紹介いたします。
我々ネッコ研では、複数のメンバーが所有する自宅サーバーをVPNで繋ぎ、その上にプライベートクラウドを構築するプロジェクト「Nekko Cloud」を進めています。
一般のクラウドにおいて認証認可は避けて通れない要素ですが、安全性や利便性を求めるとAWSのIAMのように仕様が膨大になってしまい、設計が難しくなります。
しかしながら、Nekko Cloudは1サークル内で提供されるサービスですので、順序立てて考えれば要件を絞ることができます。
最終的に我々は、DiscordのOAuthでのみログインできる自作メンバーポータルにOIDC Providerの機能を付けることで、認可したサービスにのみ認証情報を"プロキシ"する形のフローを採用しました。
本セッションでは、我々がどのように状況を整理し、何を主目的として定めたのか、そして設計した認証認可基盤計画の全貌をお伝えします。
学園祭アプリの開発はたくさんのステークホルダーがおり、様々な予想外なことが発生します。
他企画チームの遅れ、コラボ企業との認識の差異、アプリのリジェクト...
そうして、立てたスケジュールは予想外にガラガラと崩れていきます...
今回、早稲田大学の学園祭である理工展において、アプリ開発のチーフを務めていた経験から、実際の開発スケジュールと遅れに直結する様々な事例、そしてその対処法をお話しします。
どういうスケジュールにすればいいかわからない、また、想定外の問題が起きた時不安だ、という方々のお力になれれば幸いです。
金沢工業大学には、BusStopプロジェクトという課外活動団体があります。
BusStopプロジェクトでは、市営のコミュニティバスの利便性を向上させるため、Web・モバイル・IoTなどそれぞれの分野に分かれたチーム開発を行っています。また、それに関連してIoTネットワークに使用されるLPWAの通信研究も行っています。
市やバス会社と連携したシステム開発を、4年間で全ての人が入れ替わる学生団体で行っているため、これまでに技術的な引継ぎや人手不足、市役所との連携不足などの問題が発生しました。
責任のある開発を学生団体が継続してやっていくためには、どのようにすればいいのかたくさん悩みました。
今回のトークでは、
・ BusStopプロジェクトが行っているシステム開発の概要
・ 責任のあるシステム開発を学生が継続して行うためには
という内容をお話しします。
ハッカソンなどで開発したプロダクトをチームで運用するためには、お金や時間など、さまざまな課題が伴います。そのため、長期運用を見送って開発を終了することも少なくありません。しかし、運用をしないと決断した場合でも、メンバーそれぞれが成長を続けるためにできることは多くあります。たとえば、プロダクトで使った技術やサービスを個人開発に活かす、技術について発表したりブログで共有する、などが考えられます。
本セッションでは、開発後にプロダクトの運用を見送る選択をした場合でも、メンバーが成長を続けるために取れるアクションについて話します。チーム開発で得た技術的な知見を発表やアウトプット、さまざまな場面で得た知識を応用する活動をすることで自己成長につなげ、新たな挑戦への足がかりとするためのヒントを共有する場にできればと思います。