目的と手段

スケジュールに対してリソースが不足しているプロジェクトに、社内の別プロジェクトから人員がアサインされてきた。最初からいたチームは同じ目的 (よりよいサービスをスケジュール内にリリースする) を共有していたが、彼らはそうではない。そのギャップを認識するまでに時間が掛かってしまい、サービス開発の工数を蝕まれてしまった。

追加人員内のテックリードが、現在実装していたよりもより抽象化されたソフトウェアアーキテクチャを提案しはじめた。同じようなドメインのソフトウェア開発に知見があり、この抽象化はサービスが成長したときに柔軟に実装を組み替えることができる、と言うような提案だった。一度同じソフトウェアを実装したことがあるような知見がある場合、抽象化できるポイントは想像できる。我々にはまだ想像できていなかった。

早すぎる抽象化では無いか? とも思ったが、知見があるのは彼らの方。しかし、どうしても "早すぎる抽象化では無いか?" と言う疑問が脳裏を付きまとっていた。

そんなある日、テックリード以外の追加人員メンバーと話し込む機会があった。ここでやっとギャップを理解できた。

彼らはサービス開発プロジェクトの工数を利用し "汎用モジュール" を作り出すことによって、追加人員と言う期限付きのアサインから解除されたあとに利用できる部分を作り出そうとしていたのだ。これはテックリードや、その上のマネージャーポジションからの指令と言っており、これは秘密の話だとも言われた。

つまり追加人員チームは、我々のプロジェクトがスケジュール内にリリースできるかどうか (また、その後サービスが成功するかどうか) には興味が無く、どうにか関係があるように見えるものを作って成果物を回収すると言う目的で行動していたのだ!

皆さんはこういう出来事に巻き込まれたとき、どうしますか?