目標はネガティブなモチベーションで達成する
プログラミング学習の習慣化や目標達成について日々考えていて、この前ふと思ったんですが
「俺、今まで掲げた目標って達成したことなくない?」
自分のことを振り返ってみると、目標を掲げたときって、必ずと言っていいほど達成していないんですよね。でも、だからといって何も成し遂げていないわけではなく、だいたいの場合は、目の前のことに焦らされて、結果としてやり遂げていた、みたいな状況が多いんです。夏休みの宿題を最後に追い込んでやり切るような、そんな状況の連続というか…。
遠い目標より、目の前のインセンティブ
ゴールまでやり遂げたり、習慣化できた時の状況や気持ちを振り返ってみると、
納期に間に合わないと怒られるから、間に合わせる
リリースできないと会社に損害が出るから、強引にリリースする
病院に行くと次の予約を強制されるから、病院に通う
リモートワークをしていると太るし、定期を買っちゃったから出社する
といった具合に、動機がだいたいネガティブなことを避けるためだったんですよね。これ、僕だけかなと思って社内でも聞いてみました。
洗い物が積み上がるのが怖いから、毎日洗い物を欠かさなくなった
堕落した自分が嫌だから、毎朝早起きできるようになった
学習進捗を親に報告しないといけなかったから、RUNTEQを卒業できた
もちろん、行為そのものが楽しいという意見もありましたが、ネガティブな心理的ペナルティが発生することで「やり切れた」「習慣化できた」という意見も多いことに気づきました。
これの正体ってなんだろうと調べていたところ、「ネガティブ・インセンティブ」という言葉を発見しました。
個人的な感覚になりますが、通常のポジティブなインセンティブよりネガティブ・インセンティブの方が気持ちとしては強いのではと思いました。目の前にニンジンぶら下げられるより、後ろから追い立てられる方が必死になれる感じですかね。
また、一般的に言われるように遠い目標だと現実味がないので、近い目標、マイルストーンを引いていくといいのかなと思います。
ネガティブインセンティブの作り方
ではプログラミング学習において、どうやったらネガティブインセンティブを設計出来るのか。簡単に言うとこうなったらやばい、恥ずかしいという状況を作ればよいのかなと思います。ChatGPTに聞いて個人的に現実的かなと思うところをまとめてみると
ソーシャルプレッシャーを利用する
友人や家族、学習仲間に進捗を報告する。いわゆる外圧をかける感じですね。特に家族にお願いして学習期間を設けさせてもらっている場合は有効かなと思います。週次で報告の予定を入れてしまうといいですね。出来ないと普通に説教されると思います。
全員強制LT会
学習仲間が数人いるグループで有効かと思います。毎週週次でやったこと、覚えたことを5分程度で発表する場を強制的に設ける方法です。資料とかは特に用意しなくていいので、Notionのメモや書いたコードを見せながら全員発表するようにします。何も進んでいなかったり学べてないと恥ずかしいですよね。ネガティブインセンティブ以外にも自身の理解度を確認するという意味でもかなり有効かと思います。
学習進捗公開Bot
学習進捗を記録するものを毎日、または毎週で周りが目にする場所に公開するのもいいですよね。誰かサービス化してくれないかな笑
ChatGPTからは罰ゲームや金銭的なペナルティなどの提案がありましたが、ペナルティ自体を辞めてしまうことも可能なので、あまり効果がないかなと思いました。そこで、今回はペナルティを辞めづらい外的な圧力に焦点を当ててご紹介させていただきました。
まとめ
プログラミング学習は長期間続ける必要があり、ポジティブなモチベーションに頼った目標設定だけでは続けるのが難しいと感じたため、今回このような提案をさせていただきました。もちろん、学習の過程で楽しさを感じたり、他の人に見てもらいたいというモチベーションで続けられるのが理想ですが、それだけでは続けられるか不安に感じる人も多いと思います。そこで、この「ネガティブ・インセンティブ」を設定して、自分に一定の強制力を持たせておくことも大切だと考えています。僕自身も、自分を完全には信じ切れていないからこそ、自然とネガティブインセンティブを設定しているのかなと思います。もしくは氷河期世代なので上司に怒られまくった癖かもしれません笑