最近、スタートアップにおいて、LLの進化、型言語への意識が高まっている。LLを横目にJavaをやってきた人達からすると、「ほれ見たことか」という意識もあるのではないか?
少なくとも以前、僕の部下だったJavaのエンジニアは、当時Perlが隆盛だった頃にそのようなことを言っていて、いずれJavaの思想に近づいていくだろうと予言をしていたら、絶賛、今、そうなってる。
まぁ今更、何がどうなって、結果そうなったのかは、どうでも良い。その間に当時のスタートアップはチャレンジフェーズから、巨大になり、社員を増やし、社会的責任が増えた。その結果として、安全な型言語や、TDD、継続的デリバリーなどを通じて、Javaの世界にあった設計思想に近づいていっただけなのだと思う。
「とりあえずやってみる」「やれることから初めてみる」、スタートアップの初期フェーズは、当たるかもわからないフェーズだし、ソースコードも全部書き換えることだって不思議じゃない。
そこで安全品質を取りすぎると、時間を失う。さらに言えば、若い人のチャレンジこそが、市場ニーズを掴むことを考えれば、自ずと、過去の先人の経験を知らないで、同じ過ちを繰り返してしまう人達がいるのも不思議ではない。誰もが最初は無知から始まる。
新事業においては、スピードと品質のバランスは微妙だ。
しかし、一定規模になってきて、サービス安定性における社会的責任、データ保全やセキュリティに関する重要性、関わる人数、メンバーの増加、つまりは、守るものの増加や、状況の変化に適応するために、それまでは認知が低いことなどから事実上「何も起き得なかった」フェーズから、「何か起きるかもしれないフェーズ」に変わると、考慮しなくてはいけないものが増えてくる。
特に「スタートアップ」においては、スタートアップとしての成長を求められる以上、これに関する経験も、悠長に失敗をしながら一歩一歩経験していけばいいというわけにはいかない。
己の無知、無力を知り、攻撃力、魔力の成長と共に、防御力もスタートアップとしてのスピードで成長していかないと、どこかでバランスが狂って、そのツケが回ってくる。
それ故に、未来に起きることを知っている経験者を雇うのだし、プロパーにも成長を求められるし、未経験者も新しいプロパーとして育てていく必要がある。そこで起きるさまざまな歪みも、「チーム全体が成功するための方法論」という視点を持たないと、到底やってられないことも出てくる。
つまり、「敵はどこにいるのか?」という判断軸をしっかり持たないと、自分と他人との相対比較において判断を見誤る。
こればかりは常に非連続的に成長を求められる企業の宿命として求められるし、それらの歪みを、うまく乗りこなせた組織だけが無事に成就するのだろう。
これは、本当に簡単なことではない。普通、人間は、そんなことを自分が勤める会社に求めていないのだ。もっと安定的に毎日、楽しく仕事ができればいいと思っている。
ただ、世の中の進化形態として、生き残るためには淘汰が必要で、淘汰は戦いの結果、生き残ったものが新しい種を蒔えていくことで生まれる。つまり、「新しい業界標準」という「破壊的イノベーション」が起きる限り、この進化についていくことが求められる。これは、ハードウエアにせよ、ソフトウエアにせよ、起きている事実であろう。エンジニアとして刺激的に楽しく仕事をしていくために、ビジネスの進化との連動は、不可欠な要素なのだとも思う。
故に戦う力と、守る力の両方を身につけていくことが必要だ。
守る力をしっかり育てていかないと攻める余力がなくなる。
オッサンという立場としても、その結果としての成長をしっかり実現していくのが仕事なのだろうなと思う。今がそれができているか、というと、できていない気がする。それが大きな問題。自分自身もスタートアップとしてのスピードを乗りこなしているのかというと、そうでもない気はしている。むしろ毎日のタスクに追われて、転びそうにながら、どうにか斜面を滑っているスキープレーヤーのようになっているのかもしれない。
みんながちゃんと成長している状況を作れた方が望ましいが、そういうのが他人の手でどれぐらいできるかはわからないものの、まだまだ改善の余地がある。それ故に、大きく転ばないようにしっかりやっていかないとなと思う。
そのためにいくつか思うところがあるので、これから年末、来年にかけて、プランニングしていければなとは思っている。