Webサービスの設計の勘所
個人開発で色々作っていて、Webサービスは最初の設計が大事だなと感じる。ここでいう設計とは仕様とかデザインとか技術選定とか色々なものを含んでいて、何か新しいサービス・新しい機能を作るときに考えること、みたいな広い意味。良い設計は変化に強くて柔軟性がある。
Webサービスはリリースして終わりではなく継続的に改善していく。改善の方向は自分の好みだけでなくユーザーからのフィードバック、AIなどの世の中の技術トレンドによっても影響を受け、リリース時点では思いもよらぬ方向に伸びていくこともある。そうなると重要なのが、変化に柔軟に作ること。例えばメモアプリを作るとして、最初は書いたテキストを保存できるだけのものを想定していたとする。しかし、将来的にはテキストだけでなく画像や動画もメモとして書きたくなるかもしれない。太字や斜体などの装飾をつけたくなるかもしれない。パソコンで書いたのをiPhone/Androidアプリで同期したくなるかもしれないし、書いたメモをURLにして知人にシェアしたくなるかもしれない。出発点はシンプルでも、改善を重ねるごとにどんどん複雑度があがっていく。
書いたテキストの文字数をカウントして表示するような、アドオン的な機能は後からでも作りやすい。iPhone/Androidアプリにも同期するような、システムの根幹に影響するようなものは後から作ると時間がかかる。最初から考慮して設計できていれば比較的容易に作れる。最初にどれだけ拡張性高く作れているか?が後の機能追加のスピードに影響する。
ただ、常に最大限柔軟に作れば良いのかというとそうでもない。柔軟に、汎用的に作ると変化には対応しやすくなるが、何でもできすぎると逆に理解や管理のコストが高くなる。ソースコードを見たりデータベースの構造を見たりするときに、なんでこういう作りなんだっけ?と毎回自問することになる。汎用化すると基本的にはコードベースは膨らむので、少しの機能追加にも時間がかかるようになる。作っているサービスに将来どういう機能がつく可能性があるかを考えて、抽象度を適切にコントロールする必要がある。
用途をある程度絞った方がよいのはユーザー的にもそうで、「これで何でもできます」というサービスは基本的に使われない。インターネットは広く様々なサービスに溢れているので、ユーザーと接する短いタイミングで「あなたがやりたいコレを叶えるサービスですよ」と伝える必要があり、そうなるには特定の分野に絞って提供するのが理にかなっている(Notionは例外で何でもできて売れているので本当にすごい)。例えばメモアプリにはApple TVにミラーリングする機能はいらないだろう。プライベートな内面を書く日記アプリでは書いた内容を全世界に公開する機能はいらないだろう。こうやって必要・不要を精査しながら仕様と設計を落とし込んでいく。
設計が上手くなるには設計を経験していくしかない。いろいろなものを作ったり他サービスを研究したりする。他の成熟したメモアプリにはどういう機能があるかを見ておくとイメージを膨らませられる。最近流行ってるサービスは複数人で共同編集できるものが多いな、とか知っているとその機能が必要かどうか早い段階で検討することができる。いろいろ作っては設計を後悔して、次やるときはもう少し上手くなる。そんな感じで日々設計力を磨いている。
Twitterを使いづらくする
(正式にはXですが心の中でTwitterと読んでいるのでそう表記します)
何の中毒かといわれたらTwitterの中毒で、気がついたら見てしまう。スマホを握ると無意識に見てしまうし、パソコンだとブラウザの新規タブを開く→ "t"と打ってTwitterを開く → チラッと見てすぐタブを閉じる を1日何度もやってしまう。5分に1回とかで見てしまう。そんなにフォローしてるわけでもないので新着ツイートは当然ない。それでも開いてしまう。習慣は恐ろしい。
Twitterとの距離感を適切にするべく、iPhoneからアプリを消し、見たいときはSafariでブラウザ版を見るようにしている。さらに「Control Panel for Twitter」というアプリを使ってブラウザ版の表示を改変し、おすすめのタイムラインやトレンドなど不要なものを非表示にしている。これはかなり効果があって、自分の時間を取り戻せた感覚がある。
ところで、最近はnoteを書いたりこの日記を書いたりして、Twitterに投稿する頻度があがっている。そうなると「いいね」などの通知欄が気になってしまう。スタンスとしては反応があるかではなく自分の思ってることを書き出せているかを重視したいと思っているが、それでも読んでもらえらやっぱりうれしいので、反応が気になってしまう(特にnote)。でもそれも本当はたまにチェックすれば良くて、1日何回も見る必要はない。Twitterをチェックする頻度があがってしまい、これではイカンということで対策を考えてみる。できるだけ見ないようにしよう、みたいな意思は習慣の前では無力なので仕組みで解決できないかを考えてみた。
最初はiPhoneのスクリーンタイムで制限を入れようとしたが、Safariで特定のサイトだけを制限を入れるのはできないっぽい。そこでちょっと調べ、「BlankPage」というアプリを見つけた。これはURLを登録するとSafariからそのサイトにアクセスできなくなるというもの。応用的な機能として曜日や時間を指定してブロックするスケジュール機能もあるが、これは自分には必要ない。単純にTwitterのURLを入力して登録し、スマホからアクセスできなくした。緊急の連絡をTwitterですることはないし、必要あればパソコンから見ればいい。どうしてもスマホからツイートしたいときは投稿専用アプリの「FasPos」を使えばよい。
1日これで回してみたが自分がどれだけ無意識にTwitterを開いていたか再確認できた。Twitterが見れないと手持ち無沙汰になり、代わりに日経アプリを開いたり気になる技術を調べたりするようになった。これで良い。再び自分の時間を取り戻せた感覚になる。しばらくこれで運用してみたい。
本を読むと何が良いのか
趣味の一つに本があり、エッセイ、日記、ノンフィクション、小説、自己啓発、ビジネス本、技術本などジャンル問わず幅広く読んでいる。仕事の忙しさや気分によって波があるが、1ヵ月1万円分読むのをなんとなく目標にしている。この1万円というのは確か「レバレッジ・リーディング」に書かれていた金額で、社会人の始めの頃にそのアドバイスに触れて、よくわからないけどいったんこの基準でやってみよう、としたのが今でも続いている。特に社会人初期は本に1万円使うのはお財布的な影響が大きかったが、読書の習慣がついたことはそれを遥かに上回る良いことがあった。
SNSはレコメンドエンジンが発達し、自分の興味関心に沿った情報だけが流れてくる。日常的に自分の考えと近いものばかりに触れるようになり、さらにその考えが強化される。エコーチェンバーやフィルターバブルというキーワードで指摘される現象だが、これは世界の分断を生む。自分から見える景色が強化されすぎて他の人の意見や価値観に耳を傾けるのが難しくなる。読書はこれを解決してくれると思っていて、他人の考えや世界を知ることができる。例えば最近『「コーダ」のぼくが見る世界――聴こえない親のもとに生まれて』を読んだが、こういう本を読まなければその人の体験や心情を知る機会はなかなかない。いろいろな考えを知ることは明日からの仕事に使えるわけではないが、相手の立場に立って考える(共感/エンパシー)のに大事なこと。自分の価値観は限定的な世界で培われたもので、その価値観を人に押し付けてはいけないな、と最近はよく思う。
エンジニアの世界ではXが人気で、最新の技術動向はXで得られるといっても過言ではない。エンジニアは情報をオープンにする傾向があると思うが(OSS=オープンソースソフトウェアという文化がある)、Xはその性質と相性がよく、技術を試したり何かを作ったりするとそれをXでシェアすることが多い。界隈の人をフォローしておくと、いまこれが流行ってるんだなとか、みんなこういうのを最近勉強してるな、みたいなのをなんとなくキャッチできる。トレンドというのはふわっとしていてGoogleでは調べにくいものだが、Xのおかげでぼんやりと可視化されている。
ただXで得られるのは断片的な情報なので、そればかり追っていると上辺だけの知識で終わってしまう。エンジニアといっても実際の仕事内容は幅広いので、いろんなトレンドを当てもなく追っていると膨大すぎて疲れてしまう。最近はAIニュースに派手に驚く人も増え("プロ驚き屋"と揶揄される)、彼らはインプレッションを稼ぐために実態より誇張して評価する。Xだけを見ていては地に足をついた学習は難しい。ここでも読書が解決策になる。
技術本はそのトピックが体系的にまとまっているので、一通り読みながら手を動かすと全体感が掴める。実際にコードを書いたり、自分のプロダクトに当てはめて考えたり、そうすると確実に身になる。Xのように10分とかで読み終えることはできないが、時間をかけたリターンは確実にあると思う。何か新しい分野を学びたいとき、オススメなのはまずそのジャンルの本を3冊くらい読むことで、3冊読むとけっこう同じ内容が書かれている。そうするとそれは核の部分なんだなと思うし、逆に特定の本にしか書かれていないのならその著者の思いとか、限定的な状況で活きる方法だと理解できる。入門のときこそ本は重宝する。
何かに悩んだり苦しんだりするとき、本に救われたことが何度かあった。自分のモヤモヤが言語化される、新しい視点を授けてくれることもあったが、内容関係なく読書そのものの時間が救いになることもあった。『プロジェクト・ヘイル・メアリー』を読んでいたときは、毎晩寝る前にちょっとずつ読み進めていたので、ベッドに行くのが楽しみになった。どの場面も本当におもしろく、どんどんページが進むが意識的にそれを止めて眠る。翌日この続きを読めるというのがうれしい。読み終わってしまったときは明日からベッドで何をすればいいのかと悲しくなったほど。フィクションでもノンフィクションでも、本を読むのは面白い。
執着を手放すということ
若いのを良しとすると、歳を重ねて老けていくのを残念に思う。お金持ちになりたいと思うと、自分より収入が高い人に会ったとき自分が小さく見える。どの分野でも上には上がしるし、なにかに執着するということはそれを基準に比較が生まれるということ。この考え方は幸せになりにくい。
幸せとはどういうことか?それは没頭できる時間が多いこと。何かに打ち込むとき、誰かといるとき、楽しい時間は一瞬で過ぎる。過去や未来に想いを馳せるのではなく、その瞬間を目一杯感じる。こういう時間をどう増やせるかを考えると、他人ではなく自分が基準になる。手を動かし、頭を使い、自分の興味に進む。それがたまたまお金になることもあるが、あくまで本質は没頭する時間の最大化。幸せとは特定のゴールではなく、日々の没頭の状態のこと。
将来の不安、過去の後悔。考えることは山のようにある。そんななかでイマを生きるのがマインドフルネス。雑念と距離を置き、いまこの瞬間にフォーカスする。マインドフルネスのワークでは呼吸に集中するが、何かの取り組みに没頭しているときも近い状態になる。ゾーンに入るというのも近い気がするし、脳汁が出ている状態といってる人もいる。
自分の中の話なので、外からの情報は基本的にノイズになる。適量なら着想のヒントや刺激、自分の引き出しになるが、情報を摂取することは没頭によってはマイナス要素。外部の状況を知り過ぎると取り組もうと思っていたことのブレーキになることがあるし、取り組みが外部から評価されると突然おもしろくなくなってしまう。他者から見て意味がなくても自分にとって価値があればそれでいいのだが、創作は儚いものでそこまで自信を持つのは難しく、自分の取り組みを客観視して手を止めてしまうことも少なくない。
人からの評価はアテにならない。自分の取り組みを100%理解してもらえることはまずないし、そもそも何かを評価するということ自体が難しい(死後評価され始める画家がいる)。何かを相談するといろんな人が自分の意見を言ってくれ、時には活動に対して評価されたりする。それでやる気を失うことも多い。基本的には黙って黙々とやる方が続きやすい。ただし誰にも相談しないと孤独が大きいしフィードバックがなくて少し不安になる。そんなときはトピックごとに相談できる相手が1人いると良い。会社ならこの人、プライベートならこの人、趣味ならこの人、みたいな。相手はそのトピックの経験者で、かつ人の話をよく聞いてくれる人だとうれしい。ありがたいことに今そういう人たちがいるが、彼らは自分の意見を押し付けずに話をよく聞いてくれる。自分への尊重を感じるし、モチベーションが枯れずに興味がさらに掻き立てられる。没頭の時間がさらに色濃いものになっていく。
対話がないと疑心暗鬼になる
チームや組織で働くと、必ず自分とは価値観の異なる人とやり取りすることになる。相手の言動に疑問を持ったとき、その疑問は相手に直接聞いてしまうのが多分一番良い。これ聞くと失礼かな?と考えて躊躇ってしまうが、聞かないとそのモヤモヤは晴れずに胸中で生き続ける。モヤモヤが残ってると、次また同じことがあったときに「この人はいっつもこうだな」みたいに自分の中で勝手にそれを濃くしてしまい、疑問が熟成されていく。言動ではなく、その人自体を疑問に思ってしまう。
『他者と働く - 「わかりあえなさ」から始める組織論』では、他者のナラティブ(物語。文脈のようなもの)を理解する重要性が説かれている。価値観の違う、対岸にいる人。彼らとは同じ川岸に集まることはできないが、川辺まで寄り添ってよく話を聞き、そこに橋を架けることはできる。橋を架けるために大事なのが対話で、ある意見が出た時、それがどういう価値観から出たのか、どういう状況下で生まれたものなのかを考える。頑固に自分の意見を曲げない人がいるとして、実はチームの目標が厳しく周囲のメンバーのためにどうしてもそう言わないといけないかもしれないし、過去に同じような成功体験があってそれで意見が強くなってるのかもしれない。同意はできないかもしれないが、相手の立場になること、相手を分かろうとする姿勢が重要。
対話がないとどうなるか?埋められなかった差分を、こちらのロジックで勝手に補足していまう。仕事にやる気ないのかなとか、こういう性格だからそうしてるのかなとか、自分から見える景色だけで勝手に着色してしまう。自分と違うものは怖れる傾向があるので、よっぽど意識しない限り悪い方に着色する。それで疑心暗鬼になり、一度疑ってしまうとその人と真っ正面から話すのがどんどん難しくなってくる。火は熱いうちにではないけど、気になることは早めに対話して疑問をひらいていきたい。