🍣

リーダーって難しすぎる

に公開

最近、学生団体のCTOとか学園祭のテクノロジー部門のリーダーになったりして、開発をリードしたり管理したりする立場につきました。これがクソムズで、個人開発とは全然違って、他人のコードを読解しなきゃだし、作業量を分担したり進捗管理したり、めちゃくちゃめんどくさい。何よりも一番キツいのは、実際に社会に出すことを考えて、不特定多数の人が使うシステムだってことを意識すると日々胃がキリキリして仕方ないです...

今日は備忘録として、実際にどんな課題があって、それをどうやって乗り越えようとしているかをまとめていきます。

課題1:他人に良いコードを書かせるのは難しい

問題:前提共有が甘かった

リーダーになるくらいだから周囲よりも多少は知識も経験もあるわけで、「これくらい分かるっしょ」と軽く仕事を振ってしまった。そしたら予想以上にメンバーと前提が食い違って、結果的にアウトプットもズレて、システムの統合で余計な作業が大量発生。スケジュールがキツキツになって、本来やりたい機能開発にかける時間が足りなくなりました。

私がやらかしたのはこんな感じ:

  • メンバーの実力をきちんと把握できていなかった
  • 各作業がどれくらい負担になるかを掴めていなかった
  • なぜその技術を使うのか、背景を十分に伝えられていなかった

解決策:仕様書の作成と能力共有を徹底

今はこの問題を防ぐために、チーム全員で事前にしっかり前提を共有することを徹底してる。松尾研主催のAIエンジニアリング講座で学んだこととか、自分が何回かサービスをデプロイした経験を活かして、Notionにシステムの概要、フロントエンド、バックエンド、データベース、機能要件、非機能要件を簡単にまとめて仕様書を書いています。
あと、キックオフの段階で必ずメンバー間で能力とか得意分野を共有するようにしました。

課題2:SEがいないのがキツい

問題:組織構造が合ってない

ウチのプロジェクトは規模が小さいから、私がシステム構造を考えて、メンバーがモジュール単位でコードを書くって形を取ってました。でも、メンバーが自分のところだけを忠実に書けるほどのドキュメントを俺が作れませんでした。私自身もSEとしての能力不足でシステムの全体像を伝えきれず、メンバーにも無駄に背伸びさせることになっちゃいました。

解決策:関数レベルでチーム全員が骨組みを作る

だから今は、プロジェクトの最初にみんなで関数レベルのボーンコードを書いてます。これならチーム全体がシステムのインプットやアウトプットを明確に理解できて、実装方法も一緒に考えられる。
小さいプロジェクトだからこそ、細かい仕様書を書きすぎないでメンバーのスキルを信じて柔軟にやってる感じです。

課題3:AI時代に品質を守る難しさ

問題:責任と品質の壁

私たちは能力を最大化するためにAIとかWebの情報をガンガン使って、背伸びしまくる方針でやっています。
これが一番成長できるし、早くて今の時代に一番マッチしているから

しかし、実際には社会にデプロイするとなるとセキュリティやパフォーマンス、高負荷に耐える品質が求められます。AIに任せっぱなしで責任が取れるのか?これでいいのか本当に難しくてずっと胃がキリキリしてました。

解決策:人間による知識と経験の補強

結局、AIに頼るだけじゃ責任を取りきれないし、最後は人間の知識と経験が重要だって痛感しました。
だから今はGoogleのセキュリティ講座を受講して知識を底上げしたり、
学校のスタッフや専門家に相談したりして、できる限り自分たちが責任を取れる範囲で品質を担保しようとしています。
今年の夏はインターンシップにも参加して、実務経験を積んで自信をつけるつもりです。

今後どうしようかな

PDCAの最初のサイクルを回してみたけど、まだまだ不安だらけ。自分自身のスキルアップも必要だし、メンバーにも勉強してもらって、チーム全体で成長していきたいなって思ってる。経験豊富な人がいたらぜひアドバイスください。改善を続けながら次に向かって頑張ります。

Discussion