チーム開発を考える vol.1

記事執筆の経緯、概要

私はプログラマとして働いています。働く前は思っていませんでしたが、実際に働いてみると『プログラマって意外とコミュニケーション能力が求められるな。もしかして団体競技?』と思う瞬間がたくさんあります。また、私は仕事とは別でチーム開発みたいなことをしています。

『チームで開発するってこういうことなんだな』と思うことや『こうすればうまくいくのかな?』という考えが自分の中に生まれてきたので"チーム開発を考える"という名前の記事でまとめていく

今回は第1回です。

1.自分は「どんなチーム」で「どんな役割」を担ってるの?

私は2021/08/01(日)現在、2つのチームに所属しています。

 1. 会社
 2. 有志で集まったチーム開発団体

「1」は皆さんも所属していると思います。「2」はひょっとすると珍しいかも知れません。「2」に関してはまた別の記事で詳しく執筆いたします。

1では「チームメンバー」として、2では「自称スクラムマスター」として活動しています。異なる立場でチームに貢献しようとしているのでこの違いもいずれは記事にまとめます。本当に主観でしかないので冗談半分で見ていただけたら幸いです。

2.チーム開発で必要だと思うこと

私がチーム開発を実際にしてみて『これ大事じゃない?』と思ったものは下記の通りです。

1. コミュニケーション(共通認識を持つこと) 
2. 新規メンバーが参加した際、フォローする体制ができていること
3. チームのモチベーション管理(個人でもする、チームとしてもする)

大体こんなものです。私は経験が浅いのでコレは間違っているかも知れませんし、今後このラインナップが変更される可能性は十分にあります。

2-1. コミュニケーション

これ、ほんとにムズイです。これは趣味でやってるチーム開発でよく思うことです。同じ会社に所属していてやらなければいけないことが多い普段の業務でも上手くいかないことがあります。

自分の思い描くコミュニケーションの理想はこんな感じですが... f:id:You-saku:20210801120536p:plain

現実は甘くありませんよね。趣味のチーム開発はまず大前提としてチームメンバーはみんな有志であるため近くに住んでいるわけではありません。都内の方もいれば地方の方、東日本から西日本と様々です。コミュニケーションはツールを使います。ワイワイ会話をするのは問題ありませんが、開発となるとお互いの認識にズレがあってはいけません。何かあったときはすぐ聞くようにしたり、ドキュメントを作って知識の共有をしています。少しづつではありますが、改善できていると思います。

仕事で役に立つことは他にも応用できるはずです。普段上手くいってるコミュニケーションの仕組みを見直しても良いかもしれません。

2-2. 新規メンバーのフォロー体制

f:id:You-saku:20210801130711p:plain
これも難しいです。1番目のコミュニケーションも関わってきます。

この課題を乗り越えるために今(2021/08/01現在)、私が意識しているのは2点です

1. 無下に扱わない。反応すること
2. ドキュメントの充実と頻繁な更新を忘れないこと

1番は人間的にも大事です。
ちゃんとチームに入ったことを認識したら反応する。こちらから動いて関わろうとする。受け入れてもらえたというのはやはり嬉しいですよね(少なくとも私は嬉しいです)。いきなり距離を詰めようとするのは相手に失礼なのです少しづつ、でも確実に近づきましょう。


2番は私の実体験からです
実務で実際にあったことですが、チームに配属されて1ヶ月ぐらいはチームメンバーと話せませんでした。周りは「なんでも聞いてね!!」とか「わかんないことない?」と聞いてくれましたが、それどころではありませんでした。『しっかりしなきゃ』、『失敗したら殺される』と本気で思っていました。人それぞれ違いはあれど、心理的ハードルはあります。


その時役に立ったのは大量のドキュメントでした。過去の記録がしっかり残されており、新しく入ってきたのために前提情報などがたくさん記載されていました。私はこれをみて『これを読んで分からなければ人に聞こう』と思うようになりました。『ここまで読んで分からなかったからこれは聞く以外に知る方法がない』ということを確信持って思うことができたので質問することにためらいは無くなりました。

また、ドキュメントは細かく書きます。私はラバーダック・デバック並みに優しく書きます。

もちろん、更新は忘れずにチームにどのタイミングで新メンバーが入ってくるかわかりません。自分の時間を奪われたくなければ、逃げずに更新しましょう

2-3. チームのモチベーション管理

お金が絡まない場合、結構難しいと考えています。誰かが先導するようなことをしないと自然消滅しかねません。

内発的動機付け?というものを考え、周りに促さないといけません。前提として自身のモチベーションがないとできないので自分をどうやって奮い立たせることから考えなくてはいけません。正解がなく、自分の中でも答えが見出せていないのでこれから試行錯誤して自分の中の答えを見つけます。

3.現在の課題

現在の課題はこちらです

1.新メンバーの方との距離の詰めかた
2.チームワーク
3.モチベーションの維持

先ほど紹介した"チーム開発で必要だと思うこと"で書いたことがほとんどできていません。
現在、上記の課題を解決するために有志で集まっているチーム開発では「自称スクラムマスター」として様々な取り組みを考えています。別記事で自分の奮闘を別途紹介いたします。

4.チーム開発をより良いものにするために

とりあえず今の課題を自分なりに把握したので書籍を読んでみたりしながら実践しています。

読んだ本は下記の通り

1. Team Geek
2. Clean Agile

スクラム開発をする機会が多いのでこの本を選びました。経験が浅いのでまだ理解できない部分やイメージできないところが多いです。何度も読み返し、自分なりの解釈を手に入れたいです。

5.最後に

「チームで何かをすること」は辛いことばかりです。
しかし、それ以上に楽しいことがあります。現に自分は仕事以外でチームに所属することで実務だけでは得られない目線周りには自分より勉強してる人が山ほどいるという現実を知ることができました。今後、チーム開発では自分がチームを引っ張る存在になりたいし、自分より優秀な方とは積極的に関わりたいです。

周りがなんと言おうと、私は『いろんな挑戦がいつか役に立つ』と本気で思っています。

これからもこの活動を大事に成長していきたいです