これは新人プログラマ ノイマン君 のお話です。

プロローグ

今君は、大きな苦しみを感じている。

なぜ、それほど苦しまなければならないのか。

それはね、ノイマン君、君が 正しい道 に向かおうとしているからなんだ。

人間分子の関係・網目の法則

プログラマだって、ただ一人がプログラマとして存在しているわけではない。
普段は意識していなくて、プログラマが仕事をしていく上で、もとてもたくさんの人との関わりがある。

ノイマン君、君が使っているそのアプリで遊ぶことができるのだって、実に沢山の人が関わっているんだ。

  • ステークホルダー
  • 企画
  • ディレクション
  • デザイナ
  • 開発者
  • 運用者
  • テスター

まず、当然だけれどもその仕事を発注するステークホルダーの存在がある。

君の会社だって、そのチームだって、君一人だけということもないだろう?

実にさまざまな人達が手を動かし、汗を流し、歯を食いしばって開発したものなが、そのアプリなんだ。

そしてインターネット通信基盤やスマートフォンガジェットなどを考えると、間接的に関わる人は爆発的に多くなる。


仕事が楽しくない、辛いというプログラマはたくさんいるが、そのほとんどは何らかの小さな関係の中で利害関係に埋もれて苦しんでいる。

でも、君の仕事はそれだけじゃないはずだ。

君は孤独ではないということを忘れちゃあいけない。
プログラマがキーボードを叩くのは、それが 誰かの願いを叶えるため だということを忘れちゃあいけないよ。

ナポレオンのような強さ

英雄とは「 世の中を動かす 」人々だ。

ソフトウェアの世界も同じだ。
今の私達がスタンダードなものと認識している技術も、ロジックも、アーキテクチャも、たくさんの英雄たちが作り上げてきたものなんだ。

彼らははじめから評価されていたわけではない。
変人と罵られたかもしれない。

しかし偉業を遂げられたのは、彼らには 目的があり、未来が見えていた からに違いない。
世間の目よりも何よりも、彼らは、自分が何を為そうとしているか、為すべきかを、彼ら自身の魂が知っていたに違いない。


早く仕事を終らせることは大切なことだ。
納期に間に合わせるために一時的に HACK なコードを書くことだって理にかなっている。

どちらも大切なことだが、長期的な視点に基づいて「何を成し遂げるか」を考えるともっと良い。

未来のためにリファクタリングを行い、コードを洗練することも立派な仕事だろう。

そういった地道なことを積み重ねていくことで、世界は良くなり、そういった土壌がいつかパラダイム転換につながっていくんだ。

バグと戦う姿勢

ガッチン:「オレ、炎上案件に Join することになったんだ。

要件は巨大で、仕様は複雑なんだよ。 それに技術的負債もある。

課長が怒鳴って椅子を蹴りつける姿が目に浮かんでくるんだ。

オレ怖いよ、炎上案件で失敗してしまわないか。

でも負けない。
炎上に立ち向かってやる。」

ノイマン君:「君一人にはしないよ。燃え上がってしまったら、一緒に戦おう。
絶対逃げずにみんなで戦う。

約束だ。」


週末明けの月曜日、例のプロジェクトで大きなバグが発生し、燃え上がったプロジェクトのメンバーたちは 3徹 が確定だという。

「でも、、、でも」

僕は怖くてその場ですくみあがってしまった。
とてもじゃないけど、自分のプロジェクトを放り出してまで消火活動に向かうことなんてできなかった。

後悔はある。

前に進むこと。

バグがあれば治すこと。


バグを 100% 出さないことが要求される現場はたくさんある。
けれども、バグを 100% 出さないことなんてそもそもが不可能なんだよ。

「バグを出すな」の一言で片付けられるほどプロジェクトはシンプルではない。

「想定外」というのは「そんなこと起こるわけない」という乱暴な前提から出発したことを裏付けている。
これは思考停止にすぎないんだ。

もちろん、バグがないことは重要ではあが、最悪のケースを想定する思考力が、そもそも欠如していることが問題じゃあないだろうか。

転ぶことからしか学べないこともたくさんある。
「もしそれが発生したら」という可能性を、一つ一つ丁寧に、丁寧に吟味していくしかないんだ。

万が一、大きなバグを出してしまったとしても、さまざまな制約の中で発生しうることに過ぎず、君がベストを尽ないさなかったわけじゃない。

君はそこから学んでいくしかないんだ。

こうして経験を積み上げていくと、次にそのようなものに触れた時にこれは危ないなと、感覚的にわかるようになってくる。

これが プログラマの第六感 (six sense) なんだ。

善人であること

プロジェクトはベテランやスーパープログラマたちだけで動かしているわけではない。

新人だって、生み出しているものがある。

ノイマン君、それがいったい何なのか、ぜひ考えてごらん。


すべての人が、すべてのメンバーができることは「善人」である、ということだ。

そう、誰でもベタープログラマへの道へ進むことができるんだ。

複雑なロジックを組んだり、トラブルシュートするスキルも、もちろん大切ではある。
それ以上に大切なことは、「 プロジェクトに対する真摯な姿勢を保つ 」ことなんだよ。

「今いるプロジェクトを、チームを良くしよう」

この意識を持つメンバーが集まることで、世界はずっと良くなっていくはずだ。

エピローグ

悩んでいたのは正しく生きようとしていたから。

自分自身と向き合わなければいけないし、その中で自分なりの決断をしていかなければならない。

自己と正面しているものに直面して、目をそらさないこと。
黙って戦い抜くのだ。

プログラマ諸君たちは、どう生きるか。

おわりに

『君たちはどう生きるか』をプログラマ風にしてみました。


よく生きるためには思考力を能力養うこと。
そして、思考力を養うためには次のループをしっかり回すことが大切だと考えます。

  • 良質なインプットを行うこと
  • 手を動かすこと
  • フィードバックすること

インプットについて、幸い今は、大変素晴らしい書籍がたくさんあります。
ビジネス書も、技術書も、良いプログラマであるための書籍もそうです。

良い書籍を見つけたならば、精読して理解を深め、実践する姿勢を持つが第一歩です。

漫画 君たちはどう生きるか

吉野源三郎
出版社:マガジンハウス  発売日:2017-08-24

Amazonで詳細を見る

君たちはどう生きるか

吉野源三郎
出版社:マガジンハウス  発売日:2017-08-24

Amazonで詳細を見る

この記事の著者 Webrow (うぇぶろう)
Web アプリ開発、 Web 顧問 エンジニア、WordPress サポートいたします。