この記事で書きたいことは、大筋以下のようなことです。

 

・昔、新卒研修を受けていた頃、「試行錯誤」についての根本的な意識の違いを感じたことがあります

・「まず試して、失敗したら違う方法を考える」というやり方は非常に効率的な一方、精神的な必要コストがそこそこ高いです

・色んな人と仕事をする内に、世の中には「試行錯誤なんて可能な限りしたくない」「そもそも自分なりの試行錯誤のやり方を知らない」という人の方がだいぶ多いのでは?と思うようになりました

・ただ、試行錯誤が出来る出来ないでは大違いで、「試行錯誤のやり方」を身につけておくことは、仕事をする上でとても大事です

・ところで私は試行錯誤のやり方をジョイメカファイトで学びました

・「試行錯誤が苦にならない、むしろ好き」という人は、自分がとても大きなアドバンテージを持っているということを自覚していいと思います

 

以上です。よろしくお願いします。

さて、書きたいことは最初に全部書いてしまったので、後はざっくばらんにいきましょう。

 

私は新卒でシステム開発の会社に入りまして、入社当初は新卒研修というものを受けていました。

もっとも、今から考えると研修期間が随分短くて、教室での研修なんてほんの2~3週間で、あとはOJTって名目で現場に押し付けられちゃったんですけど。

 

研修は座学とグループワークに分かれていて、座学で最低限の知識を身に着けた後、実際にグループワークで設計と開発を行う、というような進行でした。

クラスはざっくりと「経験者」「あまり経験がない人」に大別されていまして、私は一応「ファミリーベーシック」という任天堂の名機でプログラミングの経験はあったものの、大学の専攻はガチガチの文系だったので後者にクラス分けされました。

 

この時、実際に要件が提示されて、その要件に基づいて設計・開発を行う、というようなグループワークもあったんですが、最低限のドキュメントだけ渡されて、やり方についてはほぼ生徒たちに一任する、というような形式でした。

講師の人たちから投げっぱなしにされる時間もしばしばありまして、ああ、皆さんお忙しかったんだなーと今なら分かるんですが、当時は「ええ……」と思ったものでした。

 

まあ、課題は課題なので頑張ってみんなでやろうとする訳なんですが、この時、「人によって随分やり方が違うなあ」と感じたんですよ。

 

おおざっぱに言うと、

「取り敢えず手を動かして色々試しながら、ああでもないこうでもないと検討・試行錯誤する人」と、

「まずあれこれ考えて、可能な限り正しいやり方を調べてすり合わせをして、きちんと手順を決めてから進めようとする人」

に分かれました。

 

5~6人のグループ構成だったんですが、前者は私ともう一人くらいで、他の人たちは大体後者でした。

メンバーは自然と「実行部隊と検討部隊」みたいな役割に分かれて、私を含んだ「手を動かす組」が実行部隊としてひたすら試行錯誤を繰り返す中、検討部隊がそちらのフィードバックを元にドキュメントを作ったり設計を検討したりする、みたいな動き方になりました。

 

確か言語はJava、WebサーバはApache + Tomcatで、DBはPostgreSQLで最初から構築されていて、それをもとに簡単なグループウェアとスケジュール管理機能を開発する、みたいな課題だったと思います。

 

もちろんこれ、「どっちが正しい」という話ではなくって、開発のステージ次第で前者が正しい場面もあれば後者が正しい場面もあるし、どっちかに集中しないといけない場面もそりゃあるんですよ。

 

壊していい検証環境がなければそもそもあまり試行錯誤は出来ないし、情報や経験が足りているなら、きちんと手順や構成を決めてから作り始めた方が効率的な場面もあるでしょう。一概に「開発の際は試行錯誤を重ねるべき」なんて単純な話でもないんです。

 

ただ、そもそもみんな「取り敢えず手を動かしながらあれこれ試す」ってことをあんまりやりたがらないんだなあ、というのはその時思いました。

 

多分講師陣としては、「最低限の情報だけ渡すので失敗しながら色々試してください」という感覚だったと思うんですが、そこで大体の人は手が動かないんですよ。

取り敢えずよく分からないまま作ってみて、エラーや問題が出たらそこで対処を考える、というやり方が、今から思うと一番効率が良いんですが、「そもそもエラーを出したくない」「なんか壊すと怖いから触れない」「取り敢えず、なんとか正しいやり方を調べよう」という思考になる。間違ったことは怖いからやりたくない。

 

その点私は、普通に色々試して何度も環境をぶっ壊して、臆面もなく「すいませーん、なんか壊れました」って講師の人を呼んでは周囲から「大丈夫かこいつ」って目で見られたりもしていたので、随分メンバーを不安にさせてしまったと思うんですが、まあ課題については滞りなく完成して、お褒めの言葉もいただきました。ついでに「壊し屋」という幾分不名誉なあだ名も頂戴しましたが、まあ今から考えるといい思い出です。

 

その後、色々あって私は管理側の業務にも携わるようになり、自分が新卒の方々を教えたり研修メニューを考えたりする立場にもなったんですが、その経験を通して、

「むしろ、「試行錯誤が苦にならない」って人の方がずっと希少なんじゃないか?」

と思うようになりました。

 

私が新卒の時は、5,6人のメンバーの中に私を含めて二人「試行錯誤から始める人」がいたわけなんですが、それ実は相当幸運な比率で、見る側からすると20~30人の中に一人いればいい方。大体の人は事前に用意した教材の通り、用意された手順をなぞることしかしないし、「色々試して、なんなら環境ごと壊してもらってもいいですよ」「何度もエラーを出してみて、その原因を解明しようとする方が勉強になりますよ」ということを一生懸命伝えて、ようやく数人が手を動かし始めてくれる、ということが殆どなんです。

 

改めて考えてみると、「試行錯誤」ってすっごくコストが大きい行為なんですよね。

・まず「正解が分かっていない状態でタスクに手をつける」という行為自体のコストが高い
・「失敗した」という結果を出す為に、結果を判断出来るだけの情報を出力しなくてはいけない
・出力した内容を、毎回「失敗か成功か」と判断しなくてはいけない
・自分が失敗したという事実と向き合わなくてはいけない
・その上で「どうすれば失敗しなかったか?」ということを考えなくてはいけない

そりゃあ確かに、やらないで済むならやりたくない人の方が多いよな、と。

 

一方、試行錯誤ってハマるともの凄く面白いし、有用な行為でもあります。当たり前ですが、「間違った経験」って積めば積む程そのまま自分のレベルアップにつながりますので、ただあれこれ考えているだけの状態よりは遥かにスキルが上がりますし、試行自体のハードルもどんどん下がっていきます。実際、上記した新人研修でも、一番得をしたのって多分私だと思うんですよ。

 

私は試行錯誤があまり苦にならないというか、「試行回数を重ねて自分の行動を最適化していく」という行為で気持ちよくなってしまう方なので、「これ壊してもいいよ」って言われたら喜んでぶっ壊しますし、わかんなかったら全くためらわずに人を頼ります。

これでいい面もあれば悪い面もあるとは思うんですが、トータルで見るとだいぶ得をしているよなあ、と今は考えています。

 

「試行錯誤が苦にならない」という属性は、恐らくかなり大きなアドバンテージかと思いますので、その属性持ちの方は是非試行錯誤を大事にしていただいて、また「試行錯誤が苦にならない」という強みを活かしていっていただければ、と思う次第なのです。

 

***

 

それはそうと、「試行錯誤のやり方」「試行錯誤を始める為のスイッチ」みたいなものは多分人によって色々で、そこを見つけておくのは重要なんじゃないかなあ、と思っています。

私自身について言うと、自分なりの「試行錯誤メソッド」って、多分ゲームで獲得したものです。

 

皆さん、「ジョイメカファイト」ってゲーム、ご存知でしょうか?1993年にファミコンで発売されたロボット格闘ゲームでして、端的にいうとめちゃくちゃ面白い上にBGMが恐ろしく良いので、遊んだことがないぜひSwitch Onlineなどでプレイしていただければと思うのですが。

 

小学校~中学校くらいの頃、友人たちとの間でジョイメカが大はやりしたことがありました。当時は既にスト2がターボまで出ていて、そんな中ファミコンで格闘ゲーム?と思われるかも知れないんですが、ジョイメカってファミコンのソフトだってことが信じられないくらいよく出来ていて、対戦もめちゃ熱かったんですよ。ゲーセンでスト2やって、お金がなくなったら誰かの家にいってジョイメカ遊ぶ、というのが一つの定番ムーブでした。

 

で、当時、一部のメンバーが「勉強」と読んでいる行為がありました。それが何かっていうと、要は「相手の強い技に対応する技の研究」です。

 

ジョイメカファイトって40体近くの使用キャラがいまして、それだけのキャラ数にしてはびっくりするくらいバランスとれてるとは思うんですけど、それでも「強いキャラ」「弱いキャラ」の差ってかなり極端だったんですよ。

ボスキャラは身内ルールで使用が禁じられてたんですけど、それでも「カエン」や「レオ」「ワイ」辺りの強キャラに対して、それ以外のキャラで挑むのは至難の業でした。

 

私は当時「レジェンド」ってキャラが好きでずっと使ってたんですが、「上位キャラに勝つためにはどうすればいいのか?」と頭をひねって、「上位キャラの行動に対して、どういう行動をとれば有利になるかを探してみよう」と考えました。

この為に、もう一人の「勉強」仲間だった柴田くん(仮名)に協力してもらって、柴田くんにずっと特定の行動をとってもらい、それに対して打開出来る行動を探す、ということをずーーーーっとやってました。

 

今のゲームなら、トレーニングモードでCPUに特定の行動を繰り返させるってそんなに珍しい機能じゃないんですが、当時は人力でやるしかなかったんですよ。カエンの強パンチやレインボーウェーブにどう対応するか、ワイに対してどうジャンプ技を通すか、マジで何時間もぶっ通しで試行錯誤していました。

 

文句も言わずに付き合ってくれた柴田くんには感謝しかありませんが、柴田くんがいない時は、2コンを足で操って練習したりもしてました。はたから見れば相当意味不明な風景だったと思います。

 

一度自然気胸(肺に穴が開く病気)にかかって入院したことがあって、その時も病室にニューファミコンを持ち込んでずっとジョイメカの勉強をしていました。

それを友人に目撃されて「それ何が楽しいの?」と突っ込まれもしまして、あれも一種「試行錯誤に対する距離感」の現れかも知れないんですが、そこから今でも保持している「試行錯誤のコツ」って、私については以下のような感じです。

 

・解決したい課題は明確にする(カエンに勝ちたい、とか)
・成功/失敗を判定するのはなるべく機械的に出来るようにする(ダメージを受けたかどうか、とか)
・試行については方向性を定めず手当たり次第にやる
・試行の出力結果を見てくれる人を見つける(柴田くんとか)
・試行の結果について言語化する(柴田くんと話したりとか)

 

この辺、恐らく人によってだいぶやり方が違うと思うんですが、一つの例として参考になるところもあるかな、と思って書かせていただいた次第です。

 

長々書いて参りましたが、ポイントは「試行錯誤が出来るだけで十分強みになる」「自分なりの試行錯誤のやり方を身につけておくべき」ということで、特に今後新社会人になる方には是非覚えておいていただければと考えるわけです。ついでにジョイメカもお勧めです。

 

皆さんがより良い試行錯誤ライフを送られることを願ってやみません。

 

今日書きたいことはそれくらいです。

 

 

 

 

 

【著者プロフィール】

著者名:しんざき

SE、ケーナ奏者、キャベツ太郎ソムリエ。三児の父。

レトロゲームブログ「不倒城」を2004年に開設。以下、レトロゲーム、漫画、駄菓子、育児、ダライアス外伝などについて書き綴る日々を送る。好きな敵ボスはシャコ。

ブログ:不倒城

Photo:Dan Cristian Pădureț