天の月

ソフトウェア開発をしていく上での悩み, 考えたこと, 学びを書いてきます(たまに関係ない雑記も)

整理

自分が悩んでいることの整理を改めてしたく、今悩んでいることと、悩みが生まれるまでのコンテキストを書いていきます。
なので、今日はかなり自分用のメモになります。

スタート

自分が配属されたチームは、属人性が極めて高いという問題を抱えていました。
組織風土的に、部署異動や人の入れ替えが比較的活発に行われるのですが、自分のチームについてはある方(以下Aさん)が常に在籍しており、Aさんなしではとてもチームが回らない、という状態が続いていました。*1
原因は多数あると言われていたのですが、主な原因として挙げられているのは、以下3つです。

  1. 高い専門性を求められる業務領域

  2. 改修&理解が難しい仕様やソースコード

  3. 新規参入者が中々定着しない

自分がチームに参入した当初は、1→2→3の順に問題意識が持たれていました。
3は若手の頑張りすぎ*2
2はAさんなら一瞬で改修できる(Aさん以外だと改修が全然できない)
ということがあり、やっぱり業務領域が難しすぎるのが属人性を促進しているよね、というロジックでした。
しかし、そんなチームに最初の転機が訪れます。

転機1 ~Aさんの異動~

社内で別チームが立ち上がり、Aさんは高いスキルを買われて、別チームへの異動が決まります。
Aさんが全部やった結果属人性が解消されない側面もあるから異動することはマイナスばかりじゃないだろう、プロダクトも安定稼働しているし...ということでした。
Aさんの代わりに、業務領域に対して知見があるシニアなメンバーが投入され、チームは再出発することになりますが、ここで第二の転機が訪れます。

転機2 ~障害が多発しチーム解体~

Aさんがいなくなった直後、既存バグが急に顕在化し、障害が多発します。
プロダクトがずっと安定稼働していたため、障害対応の経験がないメンバーたち(もちろん自分も)は混乱状態に陥ります。
追い討ちをかけるように、障害対応について社内外から厳しいプレッシャーを受け、動いていた案件開発と並行する形でバグ修正のスケジュールが埋め込まれ、メンバーは次第に疲弊していきます。
自分も精神的にきつくなり、最悪の形になる前にアラートを上げようと、上司の方に体調の異変が出始めていることを相談したのですが、相談した次の週に自分以外のチームメンバーがいきなり休職&退職し、体調がどうこう言ってられない状況になります。(自然消滅的な形でチームは解体)
取り残された自分は、チームが再組成されるまでの間、プロダクトを何とか存続させるべく必死に仕事をしました。
力不足で何度もダメかと思いましたが、同期を中心とした多数の励ましと運もあり、何とか乗り切ることができ、新規チームメンバーの追加にも目途がつきました。

社内の変化

自分たちのチームメンバーが離脱した頃、丁度自分たちのチームに限らず部署全体でメンバーの離脱が相次ぎました。
また、Aさんが異動後にプロダクトの開発スピードが大きく落ち込んだり、バグの修正に膨大な量の影響範囲調査が必要になったりして、最初に書いた問題意識が徐々に変化してきました。(新規参入者が中々定着しないことや、改修&理解が難しい仕様やソースコードに問題意識が置かれ始めました)

新しいチームメンバーを迎えるにあたって

新しいチームメンバーを迎えるにあたって、二度とメンバーに辛い想いをさせたくないと思った自分は、3つの決意をします。

  • 社内外からのプレッシャーを吸収するインターフェースとなり、チームメンバーには複雑な業務領域のキャッチアップに集中してもらうこと(不満を言われたら自分が受け止めて謝罪した上で、チームメンバーの努力を伝えること)
  • 絶対にチームメンバーを責めないこと
  • 自分の知識やスキルを惜しみなく伝え、チームの成長をサポートすること

ただし、これまでチームの一メンバーの立場でしか仕事をしたことがない自分にとっては、相当辛い環境になることが想定されたので、年度一杯までは耐えるけど、それ以降は自分を最優先にする(きつかったら転職でも休職でも好きなようにする)ことを条件につけました。

新チーム組成後~組成後2ヶ月

上記で決めたプレッシャーを吸収するインターフェイスとしての役割が想像の100倍きつかったですが、組成された新チームのメンバーが伸び伸びと働いているように見えて、(フラットに意見を言い合える, 知識の伝播が進む, 改善活動を率先して進める...)充実感がありました。
一部の人からは自分がプレッシャーを吸収していることに気が付いていただき、感謝のお言葉もいただけ、嬉しかったです。
ただ悩みもたくさんあり、特に以下の点は気になっていました。

  • チームメンバーが何をしているか分からないことが多く、チームの状況が不透明
  • チームメンバーから無責任な発言がちょいちょい出る
  • 上司から、自分が過保護になっているせいでチームの成長を阻害していると言われる

組成後3ヶ月~組成後4ヶ月

自分の力不足で、どうしても厳しいスケジュールで進めないといけない案件が出てきてしまい、いきなり苦境に立たされました...
しかし、チーム全員が一体となって開発を進め、TDDを初めて取り入れたりWIP制限など多数のチャレンジもできて、見事に期限内にリリースできました!
チーム内のふりかえりでもポジティブな意見がたくさん出て、順調にチームが成熟しているように感じました。

組成後4ヶ月~組成後半年(今)

順調そうに見えたのが一転、中々成果が出ないスプリントが続きます。
SBLが終わらずベロシティ0のスプリントが続いたり、個人行動(PBLやSBLにない仕事を率先してこなす...)が目立ち出すなど、不穏な症状が出始めます。
直近も中々悪い状態から抜け出せず、プロダクトに対して責任を持っていない態度をはっきりと表明されてしまうことがあり、自分の決意が悪い方向にチームを導いてしまっているんじゃないかと思い出しています。

この辺りからコミュニティ参加し出して、何かしらのヒントが掴めないか試行錯誤するようになりました。
沢山ヒントはもらえているのですが、実践することが中々できず、歯痒い毎日を送っています。。

*1:Aさんは社内でも一目置かれている絵に描いたような優秀な方で、自分にいつも圧倒的な力の差を見せてくれる方でした

*2:弊社若手は責任感がめちゃくちゃ強い。また、仕事のプライオリティが高く、成果を出すためにバリバリ残業します!みたいな体育会気質の人が多い