アイデアは依然として重要だ / idea still count
ネット界隈ではよく、アイデアには価値がなく、手を動かして作ることこそが最も重要だと言われる。この言葉には基本的に賛同する。実際の行動が伴わなければ、どんなに素晴らしいアイデアがあっても何の意味もない。
だが、最近少し考えが変わってきた。エンジニアである以上、堅実な基礎を持つべきなのは当然だが、毎日どこかのフレームワークの内部実装を議論したり、また新しいXXフレームワークが登場したり、誰かがXXXを使ってToDoアプリを作ったというような話を聞いていると、一見華やかで多彩な技術交流に見えるものの、ソフトウェア開発のエコシステムの外に出てみれば、それは本当に何かを変えられているのだろうか?と感じてしまう。
誤解しないでほしいが、そういったものが重要ではない、面白くないと言っているわけではない。実際、Reactのようなフレームワークはフロントエンドに革命を起こし、フロントエンドエンジニアリングの本質を再考させてくれた。キャリアの選択も人それぞれだし、要件を明確にし、保守しやすく開発しやすいコードを書き、コンピュータサイエンスの本質を探求することは、確かにエンジニアとしての本分だ。僕自身も、暇さえあれば技術の研鑽を続けている。
だが今、より強く感じるのは、ちょっとした要件を見るだけで、僕たちは可能な限りオーバーエンジニアリング(over-engineering)しなければならないと思い込んでいるのではないか、ということだ。機能なんて二の次で、フロントエンドはReactやAngular、Vueから始めるのがベストで、まずはCI/CD、SSR、DevOps、各種サードパーティ連携、linter、webpackを揃えてから、ようやく機能の話に入る、といった具合に。
Heruoku、Netlify、ZEIT、AWS Lambda、そしてさらに多種多様なクラウドサービスの進化に伴い、それほど時間をかけずとも十分に使えるプロダクトを作れるようになった。何でもかんでも苦労して自作していた昔のような時代ではないのだ。また、WordPressのようなCMSツールもあり、ネット上のチュートリアルを見て、安定したサーバーを探して立ち上げれば、もしかしたら1ヶ月苦労してゼロから作ったWebサイトよりも高速で安定しているかもしれない。
以下は、僕の頭に浮かんだいくつかの例だ。
Github
以前、先輩が共有してくれた例はGitHubだ。
覚えているだろうか、GitHubが以前jQueryを削除した際の記事を。この記事はブラウザの進化を出発点とし、現在のブラウザの大半がモダンなAPIを処理できるようになったことを強調し、GitHubが段階的にjQueryを削除していった経緯を説明している。
それ以降、GitHubが何か新しいフレームワークを採用したという話は聞かないが、GitHubのUIと体験をよく見てみると、最高で完璧とは言えないまでも、確かに十分に安定的で使いやすく、世界中の開発者に利用されている。
裏側はエンジニアから散々揶揄されているRuby on Railsだ。フロントエンドの部分もReactやVueのような流行りのフレームワークではなく、custom elementsを使っている。
GitHubが提供しているサービスと価値は、ソフトウェアエンジニアにとって今やなくてはならない一部になっている。
マスク購入システム
次はマスク購入システムについて話そう。リリース当初は非難の嵐で、システムは使いにくく、UIもひどいと言われていた。
レガシーコードのシステムを引き継いだことのあるエンジニアなら、この状況を理解するのは難しくないと思う。今日追求すべき目標は目下の危機を解決することであり、もし全てを完璧に仕上げようと固執していたら、結局は何も形にならず立ち消えになっていただろう。
これもまた素晴らしいイテレーションの事例だ。まずは実行可能な機能を世に出して急場をしのぎ、ユーザーのニーズを満たした上で、状況に応じて徐々に調整していく。
それに、この機能は感染症の流行が収束すれば(早く終わってほしいが)、間違いなくこれほど多くの人に使われることはなくなる。この事例から分かるのは、いわゆる完璧なシステムなど存在せず、ニーズに合わせて時代とともに進歩していくものだということだ。
健康保険証の実名制によるマスク予約やオンライン購入は、僕にとって非常に素晴らしいアイデアであり、実際に一部のユーザーのニーズを解決した。
好和弦(NiceChord)の字幕付け
数週間前、僕が書いた「クリエイターの台頭 — プログラミング」という記事の中で、好和弦の字幕プログラムを例として挙げた。
好和弦はシンプルなコードとp5.jsを使ってプロトタイプを作り、自身の字幕付けの課題を解決した。やっていること自体は難しくないが、このような方法で字幕を作ることを思いつき、実際に手を動かして作り上げた人が他にいただろうか?
六指淵(Huber)
数週間前、六指淵も動画を公開し、CSSアニメーションとGoogleスプレッドシートを組み合わせてアニメーション制作を効率化していた。 これもシンプルな発想だが、動画の効果はとてもクールに見える。こういった例を見ると、いつも感嘆してしまう。「うわっ!こんなにシンプルな方法でこれほど素晴らしい効果が出せるなんて、なぜ自分は思いつかなかったんだろう?」と。
実際、挙げようと思えばまだまだたくさんある。ここで僕が伝えたかったのは、アイデアは依然として重要だということだ。特に機材やテクノロジーがますます進歩し、アイデアを具現化するハードルがどんどん低くなっている今、手を動かして実装しようという気さえあれば、素人であっても大きな成果を収めることができるのだ。
関連記事
- 人生観を変えた言葉 ファインマン、チャップリン、そして映画『ひゃくえむ。』。劣等感を抱えていた少年から誰かを助けられるようになるまで、僕に最も深い影響を与えた思考と生き方についての共有。
- 独立したウェブサイトを持つN個のメリット ショート動画やSNSが全盛のこの時代に、なぜわざわざ時間をかけて自分のブログを運営するのか?約10年間ブログを書き続けてきた僕の考えを共有する。
- 筋トレ(ウエイトトレーニング)の記録と感想 ここ最近の筋トレの振り返りと感想をシェアする。
- 権限と責任:職場の消耗を生む根本原因 社員に毎日残業させ、経営者のように必死に働かせるにはどうすればいいか?同じだけの株式を渡せばいい