はじめに
「なんかアイデアない?」と言われても、すぐには出ないっす...そう思ってませんか?
実は、オズボーンのチェックリストやSCAMPERなどのフレームワークを活用すればパパッとアイデアが量産できちゃうかも?
この記事では、アイデアを量産するフレームワークであるオズボーンのチェックリストとSCAMPERを解説します。
マーケティングやコンサルで使われるものですが、プログラミングに応用できるようにアレンジしてみました。
対象者
この記事は下記のような人を対象にしています。
- 駆け出しエンジニア
- プログラミング初学者
- 「自分にはアイデアなんて出せない」と思っている人
結論
アイデアを出すのに詰まったら、オズボーンのチェックリストかSCAMPERを使ってアイデアを広げると良いよ!
オズボーンのチェックリストとは?
オズボーンのチェックリストは、下記の9つの質問に対する答えを考えることでアイデアを膨らませるフレームワークです。
9つの項目があることから、マンダラートとの相性が抜群に良いです。
転用
他の使い道はないか?を考えます。
現在のコード・ロジックを他の画面に使えないか?
現在のコード・ロジックをデバッグ目的ではなくUIに使えないか?
現在のコード・ロジックを利用者が違う別プロジェクトに使えないか?
応用
似たものがないか?を考えます。
他プロジェクトのコード・ロジックを使えないか?
他画面のプロジェクトのコード・ロジックを使えないか?
過去のコード・ロジックを使えないか?
修正
見た目を変えられないか?を考えます。
サイズを変更できないか?
色を変更できないか?
アニメーションを変更できないか?
拡大
プラス方向に変化させるとどうなるか?を考えます。
もう少し詳しくコメントを書けないか?
同時アクセス数が多くなるとどうなる?
データ数が多くなるとどうなる?
引数を増やしたらどうなる?
縮小
マイナス方向に変化させるとどうなるか?を考えます。
不要なコード・ロジックはないか?
if文を三項演算子に置換できないか?
foreachではなく、コレクションのヘルパー関数を使えないか?
条件分岐を使い、対象を制限したらどうなるか?
代用
他のもので代用できるか?を考えます。
ライブラリが使えないか?
他の言語・フレームワークのロジックが使えないか?
他のメソッドが使えないか?
置換
入れ替えができないか?を考えます。
一部のコードやロジックを入れ替えたらどうなるか?
if節とelse節を入れ替えたらどうなるか?
異なるメソッドと使ったらどうなるか?
コードやロジックの記述位置(ファイル・クラス)を変更したらどうなるか?
逆転
上下左右や、時系列を入れ替えたらどうなるか?を考えます。
クエリを並べ替えた方が処理が早くならないか?
データの並び順を昇順から降順にしたらどうなるか?
if文を三項演算子に置換できないか?
結合
組み合わせたらどうなるか、を考えます。
2つのクラスを統合するとどうか?
2種類の画面を1つに統合するとどうか?
画面の一部を共通化できないか?
SCAMPERとは?
オズボーンのチェックリストを改良し、7項目にしたアイデア発想フレームワークです。
以下の7つの質問を投げかけてアイデアを膨らませます。
Substitute(入れ替える)
他のアイデアと入れ替えるとどうなるか、を考えます。
一部のコードやロジックを入れ替えたらどうなるか?
if節とelse節を入れ替えたらどうなるか?
異なるメソッドと使ったらどうなるか?
コードやロジックの記述位置(ファイル・クラス)を変更したらどうなるか?
Combine(組み合わせる)
2つ以上のアイデアを組み合わせて相乗効果が出ないか、を考えます。
2つのクラスを統合するとどうか?
2種類の画面を1つに統合するとどうか?
画面の一部を共通化できないか?
Adapt(当てはめる)
既にあるアイデアを応用するとどうなるか、を考えます。
他プロジェクトのコード・ロジックを使えないか?
他画面のプロジェクトのコード・ロジックを使えないか?
過去のコード・ロジックを使えないか?
Modify(変更する)
内容を変更したり、修正するとどうなるか、を考えます。
サイズを変更できないか?
色を変更できないか?
アニメーションを変更できないか?
Put to Other Uses(他の用途にする)
現在あるアイデアを再利用できないか、を考えます。
現在のコード・ロジックを他の画面に使えないか?
現在のコード・ロジックをデバッグ目的ではなくUIに使えないか?
現在のコード・ロジックを利用者が違う別プロジェクトに使えないか?
Eliminate or Minify(排除・縮小する)
一部を削除したり、小さくしてみたらどうなるか、を考えます。
不要なコード・ロジックはないか?
if文を三項演算子に置換できないか?
foreachではなく、コレクションのヘルパー関数を使えないか?
条件分岐を使い、対象を制限したらどうなるか?
Rearrange or Reverse(並べ替え・逆転する)
順番を並べ替えたり、逆にしてみたらどうなるか、を考えます。
クエリを並べ替えた方が処理が早くならないか?
データの並び順を昇順から降順にしたらどうなるか?
if文を三項演算子に置換できないか?
おわりに
アイデア発想を広げるオズボーンのチェックリストとSCAMPERについてまとめました。