仕様はどこに消えた？ 🧀チーズはどこに消えた? に学ぶシステム開発🐭

# これはなに

「チーズはどこに消えた?」という書籍から、システム開発のヒントを得ようという試みです。
エンジニア（自分）向けに、「話し合いの中で仕様を決めて開発する」という業務をより良くするための考え方を探ります。

# 🧀 チーズはどこに消えた?

「チーズはどこへ消えた？」 とは、2000年に発売されたビジネス書です。
全世界で累計2400万部を超えるベストセラーで、日本でも400万部ほど売れています。
有名なビジネス書「7つの習慣」の売り上げが全世界3000万部なので、かなり売れてる本だということがわかります。

私はこの本のことを知らなかったですが、たまたま`Kindle Unlimited`で読み放題だったので読んでみました。
今回はこの書籍を紹介しつつ、これとエンジニアネタを絡めて書いてみます。


https://www.amazon.co.jp/dp/459403019X

# 🧀 チーズはどこに消えた? のあらすじ

ある国に、２匹のネズミと２人の小人が住んでいました。
ネズミと小人はいつも迷路の中でチーズを探し回っていました。

ネズミと小人は迷路の中でチーズがたくさんあるところを見つけます。

小人たちは毎日チーズのある幸せな暮らしにどっぷり使っていました。

ところが、ある日、チーズがなくなってしまいました。
「チーズが消えている！」「チーズはどこへ消えた？」
小人たちはパニックになります。

小人たちは、本当にチーズがなくなったのか？とチーズがあった場所をうろうろし、
チーズがあった場所に毎日通います。
小人は空腹でどんどん痩せていきました。

一方、ネズミたちは、チーズを見つけたあとも常に変化に気を配っていました。
チーズが腐りかけていたことや、もうすぐチーズがなくなりそうになっていたことを察知していました。
チーズがなくなってしまった時も、すぐに新しいチーズを探す行動をとりました。
そのため、ネズミたちは、チーズを失ったあとでも、すぐに新しいチーズを見つけます。

小人の1人は「このままではいけない！」と旅に出ます。
もう1人の小人はチーズを待つことを選びます。

旅に出た小人は、恐怖や困難を乗り越え、新たなチーズを見つけるのでした。

# あらすじについて

あなたはネズミタイプでしょうか？ 旅に出た小人？ あるいは変化を受け入れられずに止まり続ける小人でしょうか？

物語に出てくる「チーズ」は、お金や昇進、恋人など、あなたが欲している色々なものに読み換えることができると思います。
短い物語ですが、常に変化に気づくことの大切さ、考えるより行動することの重要さなど、「変化」というものに対してどう対処するか？ ということを考えさせてくれます。

読みやすい本なので、気になる方はぜひ読んでみてください。

# 🧀チーズはどこに消えた? に学ぶシステム開発

物語に出てくる格言を引用して、システム開発におけるヒントがないか考えてみましょう。

物語に出てくる「チーズ」は色々なことに置き換えて考えることができます。
今回は「チーズ」を、多くのエンジニアが欲している「仕様」というものに置き換えてみます。
正直アイデアベースでやってるので、無理やりなところもありますが皆さんの想像力で補っていい感じに解釈してください。

私は自社サービスの開発を行なっているので、
受託開発や請負開発の場合は、仕様という言葉の捉え方や仕事のやり方が違うかもしれません。
その考えは間違ってる！ などのツッコミがあればコメントください。

```
「チーズ」 = 「仕様」
```
とすると

```
「迷路」 = 「チーズ得るための苦痛・時間を伴うもの」 = 「仕様決定のための話し合いや会議、ユーザーヒヤリングなど」
```
と言い換えられそうです。

それでは、格言を置き換えて考えてみましょう。何か気づきがあるかもしれません。

## 仕様を手に入れれば幸せになれる
> チーズを手に入れれば幸せになれる

仕様が決まってないまま開発するのは不安です。きっと、あとでやり直しになります。
何日もかけて開発したのに全部やり直し、なんてこともあるかもしれません。
あるいは、リリースの直前で変更になってしまうなんてことも起こり得ますね。

仕様が決まっているということは幸せなことです。
時には、仕様が決まっていること、仕様を決めてくれた人に感謝するのもいいかもしれません。

## 自分の仕様が大事であればあるほどそれにしがみつきたくなる
> 自分のチーズが大事であればあるほどそれにしがみつきたくなる

自分で考えた仕様だから、人にとやかく言われたくない。
一度仕様が決まったら、もう変わって欲しくない。
変わりそうでも、それを受け入れたくない。

そういう気持ちに取り憑かれてしまうことがありますよね。

## 変わらなければ破滅することになる
> 変わらなければ破滅することになる

仕様が変わってるのに自分は変わらずに仕様を無視して開発を続けたら、あとで作り直しになってしまいますね。


## もし恐怖がなかったら何をするだろう？
> もし恐怖がなかったら何をするだろう？

恐怖とは、「仕様決定のための話し合いや会議、ユーザーヒヤリングなど」に対する恐怖です。
仕様を確定するためのコミニュケーションは精神力や時間、工数を使います。

コミニュケーションが怖いから仕様を決めないなんてことはないと思いますが、
「そもそもこれってなんのために必要なんでしたっけ？」などと踏み込んだ話ができなかったり、
忙しいから仕様について深く考えずに作ってしまったり、
なんとなくいい感じに作って！っと言われて、いい感じに作ったがやっぱりやり直し。なんてことはありえるんじゃないでしょうか。

精神力や時間、工数を使っても仕様決定をしましょう！

## 常に仕様の匂いをかいでみること 新しい方向に進めば新しい仕様がみつかる
> 常にチーズの匂いをかいでみること 新しい方向に進めば新しいチーズがみつかる

仕様が一度決定しても、「矛盾してる点」「想定外のイレギュラーケース」などの仕様変更の匂いがしたりします。
作り始めてから気づいたり、作って触ってみた時に気づくこともあります。
どのタイミングでも仕様変更の匂いに気づいて、新しいより良い仕様を見つけましょう。

## 恐怖を乗り越えれば楽な気持になる
> 恐怖を乗り越えれば楽な気持になる

あなたがコミニュケーションを苦手だと感じている場合や、苦手な顧客を相手する場合など、
仕様決定のためのコミニュケーションやヒヤリングを避けたい気持ちになることもありますよね。

「今話しかけていいだろうか？」「こんな単純なこと聞いていいんだろうか？」「間違ったことを言ってしまうんじゃないか」
そう言ったコミニュケーションの恐怖を乗り越えて話しかければ、意外と怒られたりバカにされたりしないものだと気づきます。

怒られたりバカにされるような環境なら、すぐに新しい「チーズ」を見つけに旅に出ましょう。

時間や工数の都合から仕様決定の時間を取りづらい場合もあるかもしれません。しかし、後の工程に進めば進むほど手戻りが大きくなってしまいます。
勇気を持って時間を作り、仕様を決めましょう。そうすると不安なまま開発するより楽な気持ちになれるはずです。

## まだ新しい仕様が見つかっていなくても、その仕様を楽しんでいる自分を想像すればそれが実現する
> まだ新しいチーズが見つかっていなくても、そのチーズを楽しんでいる自分を想像すればそれが実現する

仕様を決めるのにいろんな人にヒヤリングしたり、いろんな指摘を受けたりする場合もあります。
仕様を決めるのは大変な仕事ですが、無事実装されユーザーに喜ばれることを想像すれば、大変な仕事も乗り越えられる。
そういうマインドは大事ですね。

## 古い仕様に早く見切りをつければそれだけ早く仕様がみつかる
> 古いチーズに早く見切りをつければそれだけ早く新しいチーズがみつかる

この仕様ダメだなとおもったら、すぐ新しい仕様を決める話し合いをした方がよいですね。

## 仕様がないままでいるより、迷路に出て探したほうが安全だ
> チーズがないままでいるより、迷路に出て探したほうが安全だ

仕様決めないで実装するより、仕様を決めてから実装した方が手戻りがなく早く開発ができます。

## 従来どおりの考え方をしていては、新しい仕様はみつからない
>  従来どおりの考え方をしていては、新しいチーズはみつからない

「従来どおりの考え方」＝「チーズがもってかれるなんて間違ってる！ 変化は間違ってるという考え方」 です。

つまり、「仕様変更なんてありえない！」 と考えていたら、新しい仕様は見つからないということです。
仕様は自分から探しに行かなければなりません。

## 新しい仕様を見つけることができ、それを楽しむことができるとわかれば人は進路を変える
> 新しいチーズを見つけることができ、それを楽しむことができるとわかれば人は進路を変える

仕様変更を楽しみましょう！ どんどん仕様を決めましょう!

## 早い時期に小さな変化に気づけば、やがて訪れる大きな変化にうまく適応できる
> 早い時期に小さな変化に気づけば、やがて訪れる大きな変化にうまく適応できる

仕様を手に入れたらすぐに手を動かしたくなる気持ちに駆られます。
しかし、一歩立ち止まって、手を動かす前に仕様を吟味する。
あるいはコードを書きながら覚えた違和感に素早く気づいて手を止める。
ということが、大きな手戻りを未然に防ぐのに重要です。

# まとめ

作中に出てくる格言のうち、まとめの内容になってるものを引用します。

```
変化は起きる（チーズは常に持って行かれ、消える）
変化は予期せよ（チーズが消えることに備えよ）
変化を探知せよ（常にチーズの匂いを嗅いでいれば、古くなったことに気がつく）
変化に素早く対応せよ（古いチーズを諦めれば、それだけ早く新しいチーズを楽しむことができる）
変わろう（チーズと一緒に前進しよう）
変化を楽しもう（冒険を十分に味わい、新しいチーズの味を楽しもう）
進んですばやく変わり再びそれを楽しもう（チーズは常に持っていかれる）
```

まとめの格言にあるように、仕様変更を楽しみながら開発していきたいですね。
ちょっと浅い感じになっちゃいましたが、いかがでしたでしょうか。

以上、何かの気づきになりましたら幸いです。