@m_seki の

I like ruby tooから引っ越し

うまくいったらどうなるの

うまくいったらどうなるの

朝会でチケットを読み合わせていると、誰かがこう聞きます。

「うまくいったらどうなるの?」

誰かがライブラリを書こうとすると、なにかの調査をしていると、新しい機能を増 やそうとすると、「うまくいったらどうなるの?」と聞きます。あなたが今日している ことがうまくいったら、製品やチームはどうなりますか?

テスト駆動開発はとても人気のあるプラクティスです。今から書こうとするコードがうまくいったときの様子をまずテストケースで表現し、次にそのテストケースに適合するようにコードを実装します。やるべきことが明解になり、できあがったかどうかを確認するのも分かりやすく、実践する人の多いプログラミングのスタイルです。

テスト駆動開発をやってみると、これはプログラミングに限らずにさまざまな作業でも利用できるのではないかと感じます。どんな作業であれ、それが成功したかどう かを確認する方法をまず決めてみるのです。それだけでたくさんの問題が見つかります。これが私たちのよく使う「うまくいったらどうなるの?」というフレーズです。

なにか始めるとき、大抵はうまくいくと思っていますよね。うまくいかないと思っていたら始めていませんから。あなたの「うまくいく」は、果たしてどれくらい現実的でしょうか。

「うまくいったらどうなるの?」を使って確認してみましょう。うまくいったらどう なるのか、期待する結果と試し方を考えてみます。リファクタリングなら、その結果 どこか良くなっているはずです。良くなっているとはどういうことでしょう。ある変 更が容易になるとか、この部分が読みやすくなるとか具体的な試し方を決めるとよい です。ライブラリを作る場合なら、どんな風に使われてどんな風に楽をできるのか、アプリケーションを作成する人たちに役に立つ様子を決めます。 期待する結果が思いつかなかったり、それを確かめる方法がない場合は要注意で す。あなたのやろうとしていたことは現実的でなかったり、的外れだったりすること が予想されます。でも、がっかりしなくても大丈夫。始める前に気づけたのは幸運です。誰かの役に立ち、そのうえ確認できるようなゴールをもう一度考えてみましょう。 続いて、それが確かめられる時刻(日時)をイメージします。これは作業を具体化 するときに効果があります。締切日を想像することはゴールに至る作業を具体化する ことに繋がります。あなたの考えた作業のステップをチームのメンバーに聞いてもら いましょう。それぞれのステップについても「うまくいったらどうなるの?」を繰り返すこともあります。 ゴールに至る作業が思いつかない場合、本当に試すことができるのか怪しいです。おそらくこの問題は、あなた一人では手に負えないくらい難しいということです。しかし始める前に気づけたのは幸運です。ゴールを再設定したり、チームのメンバーに助けを求めてしまいましょう。

やることを具体的に説明できれば、チームのメンバーも手伝いやすくなります。発生しそうないやなこと(リスク)を教えてもらえます。各マイルストーンで見つかった問題を、チーム全体の問題にすることができます。

私たちのチームでしばしば使われるフレーズの一つを紹介しました。

「うまくいったらどうなるの?」

答えるのはちょっと難しいけど、聞いてみるのは簡単です。明日から聞いてみてね。

この記事について

この記事はエラスティックリーダーシップに寄稿したものです。

あわせて読みたい