ソフトウェアエンジニアとして働いていると、基本的にタスクに困る事はない。やるべきことはいくらでもある。
不具合修正から機能改善、リファクタリングから抜本改善。ブログ公開や外部登壇や採用・リクルーティング。1on1 やミーティング、ドキュメント作成にステークホルダーマネジメントまで。Ownership のある OSS ライブラリも磨き込みたいし、新しい技術の習得だって忘れられない。
あらゆるタスクの中から、何に Focus するか、というのは、限られた時間の中で会社や社会に価値貢献し続けるために、必要な選択と集中のスキルである。
避けるべきタスクの典型例として、"Snacking" と "Preening" というものがある。これは、"Elegant Puzzle" で有名なWill Larson が書いた "Staff Engineer" に紹介されていた考え方である。
Snacking というのは、要するに「お菓子をつまむ」ということ。お菓子をつまむように、やるのが簡単で、それっぽい効果を感じられるタスクのこと。
言い換えると「優先度が低く、インパクトの小さい」タスク。Low-hanging Fruit と呼ぶことも。
Snacking ばかりやっていると、「仕事が進んでいる」という幻覚を覚える。しかし実のところ、やるべき仕事は何も片付いていない。そういう覚えはないだろうか。
コードの Formatting や Linting も、Snacking になる可能性がある(注意:全ての Formatting/Linting が Snacking ではない)。
例えば、コードベースの Quality に、ビジネス価値に揃った明確なゴールがあり、ツールも導入した上で、それに違反したコードを本来あるべき姿に修正することは推奨されるだろう。
一方で、目標が曖昧なまま意味もなくコードの整形をしたり Linting ツールを走らせたりすることに、何の意味があろうか。どのような価値貢献をしているだろうか。
Preening というのは、「鳥が毛繕いをしている」様子のこと。鳥が毛繕いをすると、毛並みは整い、外見は美しくなる。そのように、周りからどう見られるか、周りからよく見られるために行うタスクである。
言い換えると、「目立つけど、インパクトの小さい」タスク。
外部登壇やブログの発信も、上手に取り組まないと Preening になる可能性がある(注意:全ての外部発信が Preening ではない)。
例えば、外部発信の目的を社外での認知向上とし、認知を向上したいターゲットが明確で、それに適した場で認知を向上できている場合は良いだろう。
一方で、ターゲットが曖昧なまま闇雲に情報発信したり、必要以上にコストをかけて発信したりしている場合は、そのタスクが本質かどうかを問うて見る価値はあるだろう。