eityansメモ

eityansメモ

ゆるくやっていきます

記事一覧RSS

ポモドーロ・テクニックをナメていた。良い。

在宅ワークは集中力との戦いである。

有名なポモドーロ・テクニック。Wikipediaには以下のように書いてある

このテクニックではタイマーを使用し、一般的には25分の作業と短い休息で作業時間と休息時間を分割する。1セットを「ポモドーロ」と呼ぶ。これはイタリア語で「トマト」を意味する言葉で、シリロが大学生時代にトマト型のキッチンタイマーを使用していたことにちなむ。

自分はこれを読んで、時間を細かく区切って集中して作業するテクニックなんだなと思い、まぁ一理あるよね〜程度でこれまで実践してこなかった。

最近読んだSOFT SKILLSの中でポモドーロ・テクニックについて述べられているが、そこでの紹介が衝撃だった。

彼がこのテクニックを効果的に使うためにしていたのは、一日に何個のポモドーロを実行したかを記録し、何個のポモドーロを達成するか目標を設定することだった。

(ジョン・ソンメズ ,SOFT SKILLS ソフトウェア開発者の人生マニュアル 第2版, 2022, p228)

要は、ポモドーロ・テクニックは集中するテクニックではなく、自分がどれだけ集中して仕事ができたかを可視化するためのテクニックだという。この視点は自分に取って新鮮だった。

この考え方の良いところは、行動目標になることだ。エンジニアの仕事の成果は、費やした時間量と必ずしも相関しない。適切な時間の使い方や道のりを進んできているのに、思ったより仕事が進まないこともある。そういうときに罪悪感に近い感情が生まれてしまうことがあるが、このテクニックを知っていればその過剰な罪悪感を減らすことができる。十分なポモドーロを成功させているならば、仕事人としては及第点だろう。(もちろん、成果を出せたらより良いのだが)逆に、ポモドーロがあまり成功できていなかったら、内省するいい機会になる。

一週間ほど試してみて、自分は一日に10ポモドーロを成功させることが良い目標だと思った。スマホやSlackのtimesをみたり、集中が途切れたと思ったら失敗とみなす。質の高いポモドーロを目指していく。

いわゆる Brilliant jerk について

Qiitaの記事でとても興味深いものを読んだ。

エンジニアの"有害な振る舞い"への対処法

いわゆる Brilliant jerk だと思った。程度の差はあれ、こういう性質は人間誰しも持っていると思う。

正直な話、自分はそういう性質を持っているタイプだと思う。かつて、そういう良くない部分が強く出ている時期が確実にあった。2022年頃だろうか、当時のマネージャーに指摘を受け、深く反省し、それから意識をするようになった。後に、マネージャーからは改善が見られるとのフィードバックを受け取った。

当時と比較したら今は落ち着いている気がする。意識してコミュニケーションをしているつもりだが、正直完璧とは言えない。程度の差はあれ、メッセージを送った後にこの表現は少し良くなかったかもしれないなと、一人反省することが今でもある。これは完全になくすことは難しい物だと考えている。だからといって無くすことを放棄するつもりはない。永遠の課題だと思う。

Railsのincludesとjoinsの本質的な違い

処理の範囲が違う

  • includes は先読みを行いキャッシュする → Railsのメモリに影響する(しない場合もある)

  • joins は INNER JOIN する → データベース内だけの話

関連先のデータを使いたいときはincludesを使うが、関連先の条件で絞り込みたい場合はjoinsを使う。メモリのこととか、速度のこととか、ここから考えていけばある程度応用が効く。


例:ユーザーのいいねした順でBookを取得したい

joinsを使う方がスマート

1user.books.joins(:likes).all.order('likes.created_at DESC').to_sql
2=> "SELECT \"books\".* FROM \"books\" INNER JOIN \"likes\" ON \"likes\".\"book_id\" = \"books\".\"id\" WHERE \"books\".\"user_id\" = 5 ORDER BY likes.created_at DESC"