Diary over Finite Fields

515ひかるが書き溜めたメモとコラムと雑記

いかにしてものを作らないか

逆説的だが、最近はいかに「新しいものを作らないで勝負するか」ということを強く念頭に置いている。ものを作らないために考えていると言ってもいいくらいかもしれない。

たとえば、以前のわたしはとりあえず「考えるのが面倒だから作ろう」とか思って実際に作ったこともある。しかし、既製品を上回ることは基本できない。「ありものをつなぎ合わせる」ことのほうが価値につながりやすい。

それはなぜか。わたしの場合は UI への理解が浅いことが多い。実際 Web アプリケーションとかを作ったとしても、それが「使いにくい」ことまでは感じられるが、「どのようにすれば使いやすくなるか」を考えるのは難しい。おそらくサーバー関連や SSL/TLS 関連の設定ができなくてひとりでは Web サービスを公開できない人もいるだろうし*1、何に戸惑うか、手間取るかは人それぞれだ。フルスタックエンジニアなんて存在しないのである*2

だからわたしの場合は、最近はものを作るときに、特にUI部分を作るときに、いかに既製品に頼るかを考える。普段自分が使っているアプリケーション、例えば Slack や Discord。 Google スプレッドシートや Excel。 Chrome 拡張やテキストエディタ。 curl コマンド。なんでもいいが、既に自分の中である程度見知っているインターフェースから、自分の希望を実現するものを作るように考えている。

わたしはスマホアプリが作れないので、スマホから入力したい(いつでもどこでも入力したい)ときは Slack やスマホアプリのあるサービスから入力できたほうがいい。

こうしたことは仕事をする中で意識し始めたことだ。仕事を始めたときはいろんなものを「作ろう」としていた。しかし重要なことはただ闇雲に作ることではなくて、注力して作るべきものは何かを考え選別することだと思うようになった。無駄なものを作っている時間はないし、ものは作らないほうが時間と労力の節約になる。そして「考える」時間に回す。

できるものの品質はコードを書いている間に決まるのではなく、コードを書く前にほとんど決着がついている。

最近わたしが作り始めたものは、 Slack の / コマンドで Google スプレッドシートを編集するというものだ。言語などは制限されるが、インターフェースは Slack だし Google スプレッドシートなので誤った入力をしたりうまく動かなくても最悪スマートフォンで直せる。だから Slack に「どんな形式でデータを入力するかの設計」と、「受け取ったデータをスプレッドシートに格納する部分の実装」だけ作成すればよい。ほとんど何も作らない。今日やっていて認証を通すのが大変だったが。。。

業務中に開発環境が摩訶不思議な状態になるたびに、「いかにして開発環境を作らないで開発するか」ということを考えるが、「いかにして開発をしないか」についても思索を深めていきたい。

*1:最近は簡単になっているとはいえ。

*2:厳密にはフルスタックエンジニアの定義による。