とあるエンジニアの問題意識 2019-03-01

脳が複数のタスクを抱える。

そのどうしようもない、もどかしさを感じ取る。あるタスクは下位にさらに複数のタスクを持っている。あるタスクは迷路のように、別のタスクをこなさなければ、扉を開かない。もどかしさを自己認識したい。意識に対する洞察力を上げて。

ひとつを進めるために、もうひとつを先に進めなければいけない。

時にはひとつを進めるために、無数の遠回りをしなければいけない。時にはいますぐ必要なもののために、長い遠回りを強いられる。インスタントな解決策がない時、脳のメモリの持ち方が試される。

仕事をこなす。

とても大事なことだ。当たり前のこと。責任を果たさなければ自由はない。対価を提供しなければ報酬はない。自営業10年時代は当たり前の感覚だったが、勤め人になるとどうにも意識が低下しそうで良くない。契約先の会社はお客様であることを再認識したい。

これは大きめの作業になりそうだ。

そんな予感がとっさに働くようになる。smellに敏感になるのは良い傾向だ。僕ももっとずっと遠くまで行ったことがある。大回りをしてすごすごと引き返したことが。勘が働くのならば1mmだけ動いて分岐点に戻った方が良い。マリオブラザーズも慣れてくると最小限の動きでステージを走破する。

今日やる仕事を決めること。

今日はここまで終わらせる。目標設定は大変なことだと思っていた。背伸びするイメージだった。だけど違った。シェアを描くイメージだ。パイの分配を決める感覚。出来ることしか出来ない。ならばうまくタスク同士でパイを分け合って皆の腹が満たされよう。将来のパイを増やすためのポイント割り振りも、それ自体がポイント分配だ。

落ち着いて仕事をするのと速く仕事をするのはどちらが良いのだろう。

開発のフェーズによっても違う気がする。最初は機敏に動く必要がある。コードベースがまだ小さい時は。コードベースが大きくなってくると設計などを考えて熟慮が必要なパターンが多くなってくる。物理的に手をあまり速く動かせないエンジニアには後者はありがたい。

報連相をする時に頭の中でぐるぐると回る。

連絡すべきことなのかどうか。今のタイミングで大丈夫かどうか。最低限のマナーだ。だけど自分の心理状況との切り分けがなかなか難しい。これは性格的に戸惑っているだけなのか。それとも必要なプロセスなのか。まだまだ社会人力が足りない。

Slackでボットが通知するのと人が通知するのでは、人の受け止め方がなかなかに違う。

顔のアイコンや表示形式が違うというインターフェイスの部分は大きい。だが人間は相手がロボットかどうかもかなり高度に判別する能力があるという。相手が人であるということ自体も注意を引くレベルに関係しているかもしれない。

注意残余への対策。

なんとか頭で思い出そうとする努力は水の泡だ。人生でもう何年も僕らは試してきているのだから。治療ではなくてやはり予防が大事なのかもしれない。注意力の散漫を引き起こしそうなアクションに対しては用心深くなる。ときにはそれを避ける。何らかの対策をしてからSlackを開くなど。なにか思い出せる、もとに戻れるしるべを用意しておきたい。

人に指摘を受けた時、僕は基本的に、自分が何か間違っているのではないかと思うことが多い。

コードレビューや実装についてなど。だが会社に入ってすぐの経験が浅い時は、よく物事を調べもせず、自分が絶対に正しいと思って議論を重ね、メンバーに莫大なコストをかけてしまっていた。今では自分を疑う習慣ができたように思う。

アプリケーションが複雑化する。

Zapierの設定も複雑化する。個人のタスク管理も複雑する。放置すると腐る。腐ること自体が不思議すぎて言語化できない。なぜ抽象空間に存在するものが複雑化など出来るのだろう。プログラミング自体は自分の脳と遊ぶ手法だと理解して腑に落ちた。だけどまだまだうまく抽象を掴みきれていない事象がたくさんある。これを心理的に解決しないと僕は先に進めないタチだ。どげんかせんといかん。

1ヶ月に1度ぐらい体の奥底から勉強したいというポジティブ欲望が沸き起こることがある。

だがQiitaをいったん開くとものの数秒で心が挫折してしまう。その瞬間のきらめきのようなものの正体をとらえておきたい。たぶんものすごく安定度の高いオアシスを脳と体に発見したときなのだ。ふとプログラミングの上達に必要なのは個人的な心理的安全性、とても安定した精神状態、あたたかさに包まれているような感覚なのではないかと思い至る。

金曜日はスタジオで大掃除が始まり周りがあわただしくなる。

僕はサイレンスを守るために耳栓に加えてイヤーマフを装着する。オープンオフィスで仕切りはないが自主的対策が許されるのは嬉しい。

テストはすべきかせざるべきか。

すべきだ。プログラマも長くなってくるとテストの欲望が生まれてくる。今はテストがほしい、ほしくないという感覚に敏感になってくる。テストがないと先に進みづらい時には特にテストを書きたい。プログラマに大事なのは体内感覚だ。

半年前は何故あんなに疲弊していたのだろう。

3ヶ月前は何故あんなに多動性が生じしていたのだろう。そして今ではサイレンスを愛している。バッドマンのダークナイトのような気持ちだ。禅と孤独なヒーローが組み合わさればもう何もこわいものは無い気がする。

プログラマはプログラミング用語に日常会話をたとえたがる。

プログラマ同士であれば高確率で笑いを起こす。挨拶がわりみたいなもんだ。ベタな営み。だがどうにも気恥ずかしさを感じることがある。特にgitのconfilictは日常会話に入れたくなる。その誘惑が高い。

プログラミングは手で覚えるという。

僕も全く同感だ。僕の場合まったく画面さえ見ていないような感覚がある。触覚だけでプログラミングが出来れば良いのにと思う。視覚情報も物理世界も苦手だけれど、MacBookのキーボードをこよなく愛するぐらいなので、どうやら触覚は好きみたいだ。

仮眠では癒やされないエネルギー状態もある。

まったく原因不明。もしかしたら眠り方が悪いのかもしれない。悪いタイミングでの睡眠も良くないかもしれない。あとは腹にたまる食事が甚大なダメージを与えている感覚がある。午後に熱いおでんを食べるとぐったりとだるくなる。常に体を空腹にさせておこう。どうやら生産性も上がると噂らしいしい。ダイエット中なのでちょうど良い。ご飯を食べると生産性があがるエンジニアと、ご飯を食べると生産性が下がるエンジニアがいるように思う。よし、これをつぶやくことで食事管理に自覚的になれた。

プログラミングのためには大きなディスプレイが良いと思っていた。

だけど必ずしもそうではないようだ。画面が大きすぎるとあまりに多くの情報量が視野と周辺視野になだれ込んでくる。これに脳は敏感に反応して注意力の状態が変わる。ガクッと。影響は甚大だ。なので最近はMacの拡張を使って適度なウィンドウサイズのコントロールをしている。視覚情報が溢れすぎないように。日々、目に映るものの重要さをしみじみと感じる。注意力に対するメタ的な注意力がついてきたかもしれない。

プログラミングの速さと正確さ。

どちらが大事なのか。両方だ。だがこのたった二要素の議論に尽くされてしまう、僕らの言葉たち。エンジニアリングやプログラミングの世界はこれほどまでに複雑なのに、なぜ単純論に陥ってしまうのだろう、僕も、君も、誰もが。これほどまでに僕らの分断欲求は甘く激しいのだ。一般化欲求。ところで自分が思うことがつらつらと最後まで矛盾なく書けることもあれば、でこぼこ道をたどるようにアンバランスさを感じながら出口までタッチすることもある。この文章は多少の混乱の中にあるようで落第点。

仕事の仲間が shell の cat コマンドが危険だと言っていたけれど、あれはどんな意味だったんだろうか。

聞き返すのを忘れていた。いちど手についたコマンドはなかなか忘れない。テキストファイルは cat コマンドで読むのが俺の通例となっている。ファイル閲覧にも vim や view を使う人もいるし。lessを使う人もいるし。それぞれの流派があるようだ。

注意力を奪うものの全てを憎む。

集中力の高まりを愛するというよりは、そちらのイメージのほうが適切なのかもしれない。サイレンスを愛してノイズを嫌う。世界のありとあらゆる動きはサイレンスを奪う。自分自身の体の動きや、音という音空間の動き、思考の動き。だから僕はなるべく体を動かさないように指先だけでプログラミングするように注意する。ほんのわずかな動きでさえも注意力を奪う。本当に繊細な体のようなので注意深く対策をする。

自分自身に対して自覚的である瞬間に無常の喜びを感じる。

サイレンスがある瞬間に。本当であれば座禅ルームのような静寂の中で仕事がしたい。今のデスクワークの世界では希少な環境だろう。お金や地位のためには頑張れないが、自分の快適な環境のためであれば少しばかりモチベーションが湧く。そういえばTwitterで見かけた何らかのチェックシートでも一番最初に自己モチベーションとして目についたのは快適さへの欲求だった。

gitのコミットを適切に管理することには何の意味があるんだろう。

githubでのレビューでコミット単位で見ることはほとんどない。ほとんどFilesChangedで読んでいる。自分が役立てていないものにはなかなか熱くなれない。ずっとrebase運用だ。gitの真髄のようなもの、git哲学は体に染み込んでいるのだろうか。ある程度は。

立ち上がってあるくとものすごく不機嫌になる。

というよりフラフラに。座りながら体を微動だにさせないと上機嫌になる。これこそプログラミングにふさわしい。耳栓を外すと今までよくこんな環境で仕事ができていたなと感じる。高エネルギーで集中できる時は良いが低エネルギー状態では殺人的だ。プログラミングには集中力が必要だが、それは物理アイテムによっても生み出すことが出来る。

Wizardryを思い出せ。

あるいは何かのダンジョンゲームでも良い。ヒットポイントが余っている時はダンジョンをザクザクと進めば良い。高速にプログラミングしても冒険を進められるだろう。だけどヒットポイントが1の時はひとつの扉の選び間違えが命取りになる。ここでWisdomが必要とされる。世間ではプログラミングの手の速さや正確さについてよく議論されるけれど、結局のところは年齢やエネルギー状態によって適切な戦略が変わるということなのかもしれない。

https://github.com/YumaInaura/YumaInaura/issues/646