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