今までは自分の作ったシステムに人を受け入れるというケースがほとんどだったので、今こういうフェーズで客観的にチーム開発について考える機会を設けられたことは良いことです。自戒を込めて、振り返ります。
何かをシステムを作るとき、自分で全体像を掴めない状況で開発などできません。設計も出来ません。誰かの権限の中で、部分的に触るのも無理です。「この範囲はあなたの責任でやってください」と言われるのが一番ありがたいし、やりやすいのです。
任せられている範囲内であれば、自分なりにそのプロダクトに則しつつ、少しずつ部分的に担当している範囲を改良していけるものだと思うのです。しかし、どの範囲まで責任をもてば良いのかわからずに、どうして自分が考慮すべき範囲を判断することができるのでしょう。そういう憂慮すべきことが頭の中を支配して、開発の手は止まってしまいます。
なんだか最近はそういう環境に苛まれています。そういう環境でなんとか自分のやるべき範囲を無理やり自己判断して取り組んだ後、何らかの不具合があれば容赦なく責任は降ってくるのです。そんなものは理不尽以外の何物でも無いです。
僕がチーム開発時に望むのは、
- どの範囲に責任を持つべきか明確であること
- サンドボックスが提供されていること
- 「改善」については常に受け入れ可能であること
- なぜその範囲を開発しなければならないかを知れる、もしくは調べられる環境であること
- どこまでが取り消し可能で、どこからが取り消し不可能な操作なのかが明確になっていること
どこからどこまでを壊していいのか。どの範囲を私は改善すれば良いのか。そしてどこまで改善して良いのか。何を考慮すべきなのか。システムの妥当性を検証するために十分な情報は私に与えられただろうか。そしてこの操作はクリティカルなものなのだろうか。
そういうものを提供するということは、安心して健全な開発をするためには欠かせないものなのだと改めて感じている次第です。
参考:
Joel on Software - http://japanese.joelonsoftware.com