koboriakira.com

Week43、習慣とパイプライン、行動の4パターン

October 24, 2020

今週のアウトプット

今週はWeek42でなくWeek43だということに気づき、修正。

  • PACKERSFUNは今週も更新を継続できた。

    • 英文から情報を取得するスピードもすこし上がってきた。なんとなく「ここが要点だ」というのが見えるようになったため。
  • 同じくDEV.TOの記事も読んで紹介・翻訳しようかと考えた
  • こどもの動画編集がやっと進んだ

    • Airで処理するには限界がありそうなので、週単位ぐらいでレンダリングすることに
    • つまり毎週ちょこちょこやっておけば、そんなに大変でないはず。あとは毎週できるか、ってところだけ
    • このあと今週をやる予定
  • 開発はTypeScriptに少し慣れた

    • 具体的には関数コンポーネントの実装とテスト
    • テストはテキストの確認のみ。次週は動作のテストができるようにする
    • すこしインプットが増えたので、CRAを使わずに自分でプロジェクトを整備するほうも再開したい
    • TodoistのCLIや新日本プロレスの検索アプリは公開前。ドキュメントなど公開するための準備をしたいなと思っているうちに1週間が過ぎてしまった
  • そのほか習慣リストの作成をはじめた

    • Todoリストの「繰り返し」ではなく、あるイベントに対して「発火」して「パイプライン」で実行されるタスクをイメージ
    • たとえば「こどもが朝寝したら」、「爪を確認する」、そして「爪が伸びていたら」、「爪を切る」
    • 「そんなことまで書かないといけないの?」となりそうだが、意外に侮れないと思う

今週は、15分間スプリントとAtomic Habitsを知って、それぞれを試した1週間だった。

自己啓発全体にはそれほど興味が湧かないものの、「タスク管理」や「習慣」については結構考えているほうだと思う。そのなかで把握してきたのは次の通り。ちょっとしたビジネス書なら書けそうな勢い(とくにレッテルがないので書かないけど)。

  • 行動には「意識の行動」と「無意識の行動」がある

    • 心理学や精神分析の《意識/無意識》ではなく、シンプルに「やろうとハッキリ思っているかどうか」程度の違い
  • さらに行動には「計画された行動」と「触発された行動」がある

    • 「12:00にA社とMTG」、「今日はかならず書類を提出する」などは「計画された行動」
    • 「朝起きたら水を飲む」、「電車に乗ったら携帯を見る(見てしまう)」などは「触発された行動」
  • これら2つをもとに、行動を4パターンに分ける
意識 無意識
計画 予定
12:00にA社とMTG
今日はかならず書類を提出する
身体
7:00頃には目が覚める
休日は昼頃まで寝る
触発 傾向
朝起きたら水を飲む
高価なものを買うときには1日空ける
反射
電車に乗ったら携帯を見る
家に帰ってきたらテレビをつける
  • たいていの行動は「無意識の行動」かつ「触発された行動」=「反射」である
  • 「意識の行動」は、その粒度と達成可能性が反比例の関係にある

    • 粒度が大きければ達成されないことが多い
    • 例)今日は2時間ジムに通う
    • 粒度が小さければ達成されることが多い
    • 例)帰りがけにボールペンを買う
  • たいていの「触発された行動」は、次の「触発された行動」を規定する

    • 例)「甘いものを食べる」と、「しょっぱいものを食べる」
  • 「予定」として習慣づけにチャレンジするのは悪手

    • 例)「毎朝7:00にランニングを30分する」は習慣になりづらい
  • むしろ習慣は「傾向」の連鎖として定義して、「反射」になるまで繰り返すようチャレンジするのが正しい

    • 例)「朝起きたら水を飲む」、「水を飲んだらウェアに着替える」、「ウェアに着替えたら外に出る」、「外に出たらすこし歩く」

2020年10月18日、日曜日。

Bが生まれてから半年。この世界に”入場”してからもう6ヶ月が経ったと思うと、よくある感想ながら、とても驚く。

最初はすこしでも扱いを間違えたら生存できないんじゃないかと思うぐらい小さくて、自分たちの布団に載せると「無人島に取り残された」みたいな画になって、喋りかけても反応がなくて、ラトルを振っても気にしなくて、50mlのミルクを飲むのに10分かかって、夜中に何度も泣いていたのが、いまはLサイズのオムツを履いて、200mlのミルクを飲み干し、離乳食も食べはじめ、目を合わせれば喜び、おもちゃを掴んで振り、うつ伏せから顔を上げて周囲を確かめたり、前に進もうとして誤って後退したりしている。

2度目のよくある感想ながら、こどもの成長や変化は大人の想像するものとは根本的に違うのだと感じた。これからも成長・変化のタイミングがたくさんあるといいなと思うし、大人側がそれを制限してしまわないように気をつけないと、とあらためて自戒。


今日もTodoistCLIの開発に集中。基本機能はほぼできた。と思ったところで、GoによるCLI実装があったのを見つけてしまった。まあそりゃあるよね。

まと新日本プロレスの検索システムをすこし改修。もう公開しようかな。不具合は再発しなかったのでいったん放っている。

2020年10月19日、月曜日

朝早く起きてパッカーズの試合を見る。が、早起きしなければよかったと思うぐらいに完敗。

調子の悪いときはつづくもので、Bを連れてマイナンバーカードを取得しにいったが、ちょうど午前の部は終わってしまったと返答。帰ってる途中に雨が振りだした。


ボーッとしながら過ごしていたらもう夜に。

Qiitaで下記の記事を読み、githubのリポジトリを検索してみようかと思った。

独学してエンジニア職についた初級者が中級者になるためにプライベートで実践している学び方 - Qiita

ためしにstars:1000..10000 language:Python license:mit created:>2020-01-01で検索してみると、色々とヒット。starsが1000って結構すごいと思いつつも、意外にテスト無しのプロダクトばかりだった。

そのうち読んでみたい&機能追加&テスト実装できそうなリポジトリをためしにforkする。


TodoistCLIはテストを実装。かなり大変だったけれど、おかげでロギングの注入を覚えた。

2020年10月20日、火曜日

「15分スプリント」を個人に適用しようと思い、Todoistを使って実験。

ただTodoistにマニュアルで時間を記入するのは面倒だったので、yaml経由でTodoistに好きなプロジェクトを入れられるようなプログラムを書いた。


NFLのWeek6のハイライトを見て、PACKERSFUNの記事を執筆。

そのほかはあまり進まなかった。インフルエンザの予防接種をしたのでずっと血の気が引いたからかもしれない。

2020年10月21日、水曜日

Bが朝寝している隙に、15分スプリントに則って作業。とはいえ最初のTodoは「計画」で、これが一番大変。どんな「整理」も大変なのは「何を捨てるか」である。

そのうち起きてきたので一緒に居間に降りて、ペンギンの起き上がりこぼしで遊ぶ。Bは目的の場所に行きたい意欲は見せるものの、身体がまだ上手く扱えないみたいで、後ろに戻ったり回転してしまったりしている。前に進めるようになっただけで泣くかもしれない。


やっと動画編集を再開した。

Final Cut Proが重くて悩んでいたのだがプロキシを使うことで編集作業は軽くできることを知った。あとメディアをとりあえず放り込むと作業時間が余計にかかりそうなので先に使うメディアを決めることにする。


配偶者がBを連れてピクニックに行った。美容院へ4ヶ月ぶり(!)に行って、帰宅後はPACKERSFUNにプレイ分析を書く。

カウントアプリも作ろうと思ったが、ダラダラしているうちに手つかず。すこしだけ実装して、これをテストする方法を調べていたら時間が来てしまった。なんとなく使い方は見えてきたけど、実際にやりはじめたら大きくつまづく予感がしている。

2020年10月22日、木曜日

昨日は早めに寝室に行ったが眠れず、睡眠不足のまま起床。Audibleで『ジェームズ・クリアー式 複利で伸びる1つの習慣』を聞いてたせいかも。

眠気はずっとあったが、とりあえず15分スプリントの準備をして、textlintを導入し、直近の資産を記録し、Bの朝寝を遂行。

寝ている間に動画作成を進める。とりあえず4月分はOK。明日からは現在と5月以降を並行して進めていこうかなと考えている。


昼寝して、PACKERSFUNの記事を書く。

夕方からは配偶者が飲みに出かけたので、風呂と寝かしつけは一人で。19:30頃に寝てくれたが、今日はもう自分の時間をつくる気力が出ない。

とはいえTypeScriptの記事を読んでいたらやりたくなってきたので、ちょっとだけやる。

2020年10月23日、金曜日

昨日も21時には寝室に向かったが眠れずに25時ぐらいになってしまった。ヒートテックを着たまま寝ていたことに気づき、とりあえず脱いだらその少しあと眠れた。


眠れない間『複利で伸びる1つの習慣』のことを考えていたが、つまるところAtomic Habitsはプログラミングでいう「パイプライン」なのだと感じた。

シェル操作では、ひとつひとつのコマンドは小さく、これをつなげて任意の操作を行うことができる。習慣もそのようにして組み立てるべきだ、というのが著者の主張(のひとつ)である。

パイプラインにはいくつかの種類があるが、おそらく習慣に使われるパイプライン&&だろう。つまり”習慣A”が成功したら”習慣B”をする、というのが習慣パイプラインの基本になる。

ここで重要なのは、“習慣A”に失敗すると”習慣B”は実行対象にならないことである。

「5時に起きて、英語の学習を15分して、栄養のある朝食を自炊して食べる」みたいな習慣づけを目標にしたとき、「5時に起きる」が失敗すれば、「英語の学習をする」も「朝食を自炊する」も実行対象にすらならない。最初の行動につまづいてしまったからだ。

言い換えれば習慣づけるためには、粒度の細かい習慣をパイプラインでつなぎ、確実に最後までコマンドを流しきれるように設計するのが重要だということになる。

もうすこしアナロジーを続ければ、習慣とは「テスト可能」なものでもある。短いステップかつ成否の判定しやすい(確実に緑のシグナルが出ないといけない)習慣を連鎖させること。これが習慣づけの基礎になると学んだ。


昼食後、外に出る時間をもらってファミレスへ。眠気がとれなかったが気合を入れ直してデイリープランをつくり、スケジュールに沿って試合のプレビューを更新する。最近やっと自分の書いている内容が、ほかメディアの論調と合うようになってきた。同じような見方ができている感じがして嬉しい。

帰宅後Bとすこし遊んでお風呂。あがったら配偶者が寝かしつけてくれるので、その間にTypeScriptでReact開発を進める。小さなジャイアントステップとして、関数の型定義がすこしわかった。

勢いそのままにJestとEnzymeを使ったテストも体験。適当にイジってたら成功してくれた。シンプルなコンポーネントであれば何とかなりそう。次はもうすこしだけ複雑なコンポーネントのテストを実験してみよう。


Kobori Akira

IT業界の社会人。音楽、パッカーズ、スワローズ、ポーカー。
読む価値のある記事はQiitaやnoteに投稿する予定です。
過去人気だったブログ記事はこちらから。