試行錯誤、トライアンドエラー
なにかを創作するとき、文章を書くことでも、絵を描くことでも、写真を撮ることことでも何度も試してより良い出来のものを求めるのって普通だと思うんですよね。
何度も書き直したり、何パターンものデザインを起こしたり、絞りとか露光を何度も変えて撮影するとかetc
Web制作における試行錯誤
- 企画構成
- 仕様策定
- デザイン
- デザイン実装
- プログラミング
たとえばこれらについてみてみます。大枠としての制作を工程で分けてみました。
1.企画構成
試行錯誤なくして企画なんてつくれないです。
2.仕様策定
試行錯誤なくして仕様なんて(ry
3.デザイン
試行錯誤なくしてデザ(ry
4.デザイン実装
そろそろ試行錯誤を敬遠しはじめる工程ですかね。
HTMLの構成はまぁ構造的な文章であれば比較的容易にコーディングできます。
が、CSSで装飾をするとなると話は変わってきます。
「装飾」と書きましたが「単なる飾り付け」ではなく「可読性、視認性」を高め、よりよく意図を伝えるための技法のことです。
Webサイトは雑誌などとは異なり、「操作」を伴うメディアです。必ず「操作」を行う必要があるため、その操作性とか視認性・可読性がとても重要になります。ボタンはボタンだと気付いてもらわなければいけません。いちいち操作方法を解説されなくても操作できるようでないとダメです。
とはいえ100%すべての人が何の事前情報もなく操作できるようなサイトは皆無です。言い切りますね、皆無です。
みんなそこのところ意識しろよって言うつもりはあんまりなくて、既に今の世の中小学生くらいである程度の経験知が蓄積されてると思うんです。つまり、「これはボタンだなクリックできるぞ」とか「ロゴをクリックしたらトップページに戻れるはず」とか何をどうしたらどうなるっていうことをなんとなくでも経験的に理解してるということです。
脱線してますが、デザイン実装においてはデザイナーの作るデザインを実装していく作業になるので、「デザインを忠実に再現すること」が求められます。
こう書くと試行錯誤の余地がないんじゃないかと思われるかもしれませんが、HTMLの文書構造、CSSの設計、JSの設計などは様々な書き方が可能であり、それはつまり状況によって正解が変わりうるということでもあります。そもそもデザインは毎回異なるので同じコーディングで事足りるということはありえないです。
5.プログラミング
この工程、試行錯誤を嫌がる人多すぎます。
一口にプログラミングと括るのは乱暴なので、「どのように実装しようか考える工程」と「コーディング」の工程に分けてみます。※これでも十分乱暴ではあるけれど。
「どのように実装しようか考える工程」で試行錯誤ができない人はもはやそれを生業にできない人です。試行錯誤が仕事なので。
あーでもない。こーでもない。そうやって考えることはもちろん、実際にコードを書いて実装可否を検証することが必要です。
「コーディング」の工程での試行錯誤、これのことです。嫌がる人が多いっていう話。
if構文でいくのかswitch構文でいくのかとかは試行などせずに適したものを選択できるんですが、例えば何かしらのサービスとWebサイトをAPIでつないでデータを取得した上でWebサイトで使う形にデータ加工を行うなどといったケース。
どのAPIで、どのプロトコルを使うのか。取得したデータをどう加工してどこに格納するのか。格納したデータをどう利用するのかといったことは試さないとわからないことが多いです。
このやってみないとわからないことを試行して取り組むのは当たり前です。
そうではなく、一度作ったロジックを実装した際に、実はもっと良いロジックがありそうだなとなったとき、工数が多くなったとしても「作り変えたほうが良いものになる」のであれば「試行錯誤」してください。
Memo
「工数が増えると利益がー」などと数字のことを考えるのは経営者の仕事です。モノづくりの人は数字にとらわれすぎずにまずは「いいモノ」を作ることを心がけてください。
言われたとおり、指示されたとおりに作業をするのは誰にでもできます。自分の頭で「あーでもない」「こーでもない」と考えて行動してほしいです。
楽しければ誰に言われるまでもなく「もっと良くしたい」って思うものなんですけどね。義務感とか世のため人のためとかいう大義名分ではなく、純粋に仕事が楽しければより追求した仕事ができるのだと思います。