あと数年で 40 代に突入する。ありがたいことにソフトウェア開発産業は売り手市場で、40 代でも転職は難しくなさそうだ。「ソフトウェアを開発する仕事」と一口に言っても、その内容は様々である。次に職場を変えるとしたら、どのようなソフトウェア開発をしたいだろう。

僕は「風上に向かいたい」と考えている。

これは上流工程を志向している、という意味ではない。空気は風上から風下に流れるが、そのような流れから逆行したい、ということだ。たとえば、理系の学生が文系に転向することはままあるけれど、文系の学生が理系に転向することは稀である。したがって、理系を志向することは「風上に向かう」ことだと考えている。これは僕が考える風上の定義なので、異論はあるだろう。「僕はそう考えている」という以上の意味はない。

ソフトウェア開発における「風上」とは何だろう。僕は次のように考える。

  • API を使うより、API を作る方が「風上」である
  • ユーザーランドで動作するアプリケーションより、カーネルの方が「風上」である
  • マニフェスト (YAML / JSON) を書くより、マニフェストを読み込むプログラムを書く方が「風上」である

「風上である」ことと「重要である」ことは関係がない。上記のリストは「風上」と「風下」がおおむね対になっていて、両方が存在してはじめて意味を成す (e.g., API を使う / API を作る)。僕は「風上」を志向している、というだけの話である。

意識しないと「風上へ向かう」のは難しい。自分を鼓舞するため、わざわざ記事にしてみた。