Spinach Forest

December, 2019

/ Fragments #38   / Fragments #37   / A Short Reflection 2019   / (Audio)books 2019   / Book: Why We Sleep   / Learning at work is work, and we must make space for it | Hacker News   / Fragments #36   / Publishing 2019   / A Long Reflection 2019 (7) – Not Looking Forward   / A Long Reflection 2019 (6) - The Failure   / A Long Reflection 2019 (5) - Extracurriculars   / A Long Reflection 2019 (4) - Attention and Citizenship   / A Long Reflection 2019 (3) - Bigness   / A Long Reflection 2019 (2) - Grit and Expectation   / A Long Reflection 2019 (1) - Timeline   / A Long Reflection 2019 (0) - Looking Back   / Fragments #35   / Book: Competing with Unicorns   / Fragments #34   / ... 

Fragments #38

|

2020-01-05 (Sun)

  • At Starbucks. 三週間ぶり。
  • 時間予算日記 (18)
  • Snippets Train に参加復帰するものなり。体重と運動の頻度をレポートするだけだが・・・。
  • Preschool, parent-teacher conference が夕方にあったりするのだが、そういう nanny 前提の予定をつっこんでこられるの厳しい・・・。
  • Audible で聴いていた本がいまいちだったので返品。Subscription の場合だけとはいえ「聴いてみたらいまいちだった」という理由であっさり返品できる Audible おそるべし。
    • 一方 Play Books の audiobook はどうかというと・・・。サンプルが長め、という方法でがっかりリスクを軽減している気がする。これはこれでアリだけど、ebook のサンプルと比べると体感的にちょっと短い気がするね。30 分くらい試聴できると完全に不満なくなりそうだけど、10 分だと前書きが終わらない。

2020-01-04 (Sat)

  • (backfill して書いてます)
  •  テレビとソファを処分。
    • テレビは自分たちがまったく見ていなかったので。たまに子に YouTube 動画を見せたい時があるけれど、タブレットで代用。
    • ソファは、他のもの(具体的には台所用品)を置くスペースを確保するため。引っ越してきた時に購入しリビングに鎮座していたが、子が生まれてリビングが遊び部屋になってからはダイニングに追いやられ、ついに引退となった。猫のひっかき傷でボロボロだけどそれなりに愛着があったので、やや寂しい。Modern Love にもそんな話あったな: The Junk Removers Manhandle My Heart - The New York Times
    • ついでに自分のデスクも台所用品置き場に明け渡す。デスク、買ったけど結局ほとんど使わなかったね・・・。だいたいベッドかダイニングで作業してる。
  • 今年の目標とやらを考えたい気もするが、ねえよバーカ、みたいな気分。誰に悪態ついてるのかまったくわからないが。なお仕事にはいちおう目標らしきものがあり、ほんと仕事しかしてないんだな・・・と思う。

2019-12-30 (Mon)

  • 奥様が子をつれて出かけるからその間は好きにしな、とのことだったがふつうに家事やって終了。病気してるなどでかなり溜まっていたせいもあり、やむなし。
  • 冬休みは夏休みより短いが、雨季だし寒いし夏休みよりやることがないので苦痛は高め。夏は外で遊ぶなりプールに行くなりなんとでもなる。はやく学校はじまらんかなー・・・。

Fragments #37

|

今週は・・・

  • 火曜まで雪のある山の麓の別荘を二泊三日 AirBnB で借りて子に雪遊びをさせ帰宅し、
  • その後子から風邪をもらい、両親ともにダウン。様々な appoinments をキャンセルさせてもらいつつゾンビのように生き延び、
  • ようやく直り始めたかな、くらいで週が終わりました。厳しい年末となったぜ・・・。

A Short Reflection 2019

|

今年の振り返り。

仕事:

  • 自分のなかではがんばって働いたつもりだけれど人事考課に変化はなかったので、成果はそこそこということでしょう。チームがだいぶ強化された結果、あれもこれもやらなくてよくなったのはよかった。
  • 課外活動の時間はどんどんなくなって、クビになるまで今の仕事にしがみつくしかないという現実の壁は高くなる一方。これを打破するには健康か今の仕事か家庭のいずれかを損ねるしかないとはっきりしているが、そうはしていない。

生活:

  • Podcast をやめた結果、個人的な時間/心的予算をとりすぎている後ろめたさはなくなった。一方で子供や家のために十分に考えたり行動したりできているかというとそうでもない。自分は selfish な成分が強すぎ、子のことをいつも気にかけている「良き親」でない。なんというか intrinsic な drive がない。結果として後手に回っては後悔してばかり。システムで後押ししないとだめそう。
  • 運動する時間すらなくなって、精神衛生に不安がある。

自分の行き場のなさに向き合うと暗い気持ちになってしまう。とはいえ今のところ子は健やかに育っており、自分も奥様も概ね健康で、まともな職もあり、そういうベースラインが維持できている事実は appreciate したい。ベースラインの維持は割と高く付くこともわかったけれど。

(Audio)books 2019

|

12冊。うち子供関係 3 冊。健康関係 3 冊, self-help 2 冊。アメリカ関係 2 冊。軽い技術書 2 冊。がっかりなスループットとラインナップだが、たまにはがっかりさを直視しないといけない。いつもしている気もするが。つんどく、つまみぐい、中断したやつらは書いてない。

ぜんぶ雑に感想をつけられたのはよかった。

どうでもいいウェブをみるノリでどうでもいい技術書を読むのは悪くないかもしれないと、どうでもいい技術書二冊を epub で読んで思う。ブラウザのタブに pin しておくのがいいのかもしれない。いっぽうどうでもいいもの読むならウェブの記事でよくね、とも思う。

来年は・・・と意識高い目標を口にしかかったが、嘘になる確率がたかいのでやめておく。

Book: Why We Sleep

|

睡眠学者が睡眠の重要性を説く本。睡眠をおろそかにしてた自分を反省した。

個人的な発見は、まず睡眠は睡眠不足してる間だけでなく永続的なダメージがあるということ。なので「一時的にがんばる」みたいのは一見するほどアイデアではない。どのみち生産性がおちるので良いアイデアではないのだけれど。

もうひとつは寝不足時の自動車運転のヤバさ。わかってはいたけど具体的な数字を挙げあれるとウっとなる。寝不足とアル中は事故率に大差ないのに寝不足が放置されているのは社会としてよくないと著者は説く。

睡眠のリズム。体のリズムは固定されていて急にはかわらないので、日によって就寝にばらつきがあると睡眠の質がさがる。つまり遅くまで起きていたぶん朝寝するとか、前の日が寝不足だったぶん早く寝るとか、意味はあるが規則正しく寝起きするより効率が悪い。

自分の朝の活動は睡眠不足だったと反省し、目覚ましを使うのをやめた。八時間睡眠 (sleep opportunity - 布団に入ってから起きるまで) を推奨されているので 21 時に寝て 5 時に起きることにして一週間くらい経過。わかったこととしては、なにもしなくても普通に 5 時くらいには目が覚める。自分は 2-3 時すぎたあたりからずっと眠りが浅く、どうしたものかと思う。ただ眠りが浅いからといって 3 時とかに起きると昼間眠いので、浅いとはいえいちおう睡眠の効果は得られているっぽい。

カフェインも昼に一杯飲むだけに変更など、ほかにも細々と生活を見直した。なお睡眠 good practice などは特別新しい話はなく、それよりは睡眠不足のヤバさを突きつけるのが主な論点。ただ論点を示された上でこうしろといわれるとだいぶ説得力がある。

朝の活動の時間が減り、かつ夜もダラダラせず寝るようにしてるので、一日が 1-2 時間短くなった。ただでさえ時間がないというのにどうしたものかと考える。が、それは別エントリで書きます。昼間の眠気は今のところ完全になくなった。


しかし朝の活動の寝不足なんてかわいいもので、自分は結婚するまでずっと寝不足だった気がするな。インターネット依存にありがちなこととして。寝不足がはじまったのをふりかえると・・・たぶん学生時代の夜間インターネット定額制度(テレホーダイだっけ?)あたりな気がする。あれはマジで壊滅的な制度だったと今にして思うのだった。テレホーダイ世代は集団訴訟すべき。まあ人のせいにしても仕方ない・・・。

最初の会社の頃なんてたまに徹夜したりとか夜中まで酒飲んだりとか、そんで昼間は会社で居眠り。狂ってたとしかいいようがない。まあ若い頃は色々おかしかった。そういう愚かな若者にならずちゃんと暮らしてた人がエリートなのです。

Learning at work is work, and we must make space for it | Hacker News

|

via Learning at work is work, and we must make space for it | Hacker News

HN のコメ欄は本文を読まずヘッドラインだけみて言いたいことだけいっているクソコメで盛り上がっているが、自分も興味のあるテーマだったので PDF を買って読んだ。

内容としては: "Boot Camp" みたいのでなにかを勉強したり教わったりしてスキルや知識を身につけるのは "Incremental Learning" であって、大きな飛躍はない。一方 "Playground" で実際になにかをやって、その体験を内省的に振り返り、新しい自分を発見する "Transformative Learning" には飛躍がある、そういうのをやろうな・・・みたいな話だった。Kate Matsudaira 的 BS 感・・・というと語弊があるが他人事感・・・を拭いきれないが、著者は HR 方面の人なのでそれも仕方なし。

たとえば delegate できないリーダーが例として登場する。そのひとたちは失敗できないがゆえに delegate できない、だから色々なことを試してちょっと失敗してもいい learning のための space をつくってやるのが組織に必要なことである。みたいな話をする。そして企業が transform するには、そういう space をシステマティックにつくる playground をトレーニングに組み込もうな、と結論づける。後半にいくほどどうでもいい。しかしこの記事は企業の digital transformation (ってなに?) を応援する issue の一部なので、書き手に文句をいう筋合いはない。釣られた HN が悪い。

自分はというと、出世パスに乗っていないおかげでまあまあ transformative learning  をする機会を持てているなとは思う。一方、下っ端プログラマが生存するために必要なのは仕事を通じてものの見方を transform することではなく、機械学習とかクラウドとかがわかるようになることではないか、というと極端だけれども、知識やスキルというのは下っ端には必要なのだよ。リーダーシップの皆さんはそういうの足りてる前提で話してますけどね・・・。

というわけで「俺は仕事中もコソコソ勉強してるぜ」みたいな HN のコメが本文を読んでないゴミであるといいつつも、その sentiment には共感があるのだった。


ところでなにかと脊髄反射で悪口をいいがちな Kate Matsudaira, いま何してるのかなこのひと、と見てみたら・・・あまり人の悪口とかをいうのはよくないですね、という良い例でありました。はい。ごめんなさいね。

Fragments #36

|

2019-12-21 (Sat)

  • 少し寝坊したあとスタバに行こうとしたら子が起きてきてそのまま朝食準備へ。なにもできず。

2019-12-20 (Fri)

  • Impeachment のニュースは読んでるだけで暗澹たる気分になる。今の大統領はアメリカ民主主義の Game Day だと思っていたらシステムにバグがありすぎて disaster になっちゃいました、みたいな。しかも治らなそうだし。
  • Feed 更新後もエゴサーチ結果に変化なし。ふたたび勝利(敗北?)宣言。

2019-12-19 (Thu)

  • Berkeley researchers launched Anyscale with $20.6 million from a16z - Business Insider Ray というプロジェクト、まえ論文読んだたら Java RMI みたいのを Python で実装し (ただしデータまわりは Arrow とかでそれなりに高速化されている) それを "Reinforcement Learning のフレームワーク" と銘打つ代物で、こうやって異業種の人も AI にいっちょかみしようとするのか必死だな・・・と思った記憶がある。が会社になったの!すごいね。
  • 壊れたブログの feed URL を直して push しなおしているが・・・こいつも cloud build にしておくべきだった、と反省。しかし今それをやる気力なし・・・というか cloudbuild.yaml に繊細な情報が書き込まれているので public git repo には push できませんな。GCP 側におかせてくれ。
    • HTTPS に移行したときにはこの際フィード読者は置き去りでいいかな、と思った記憶もあるようなないような。まあいいです。このくらいのエゴはあるのです。エゴなのか読んでくれてた人への義理みたいなのか。もはや判別できない。
  • The Impeachment of President Donald J. Trump - The New York Times Trump のろくでもなさはおいておくとして, Biden がダメすぎる事実についてはもうちょっと議論されるべきだが「証拠はない」みたいな扱いになっており、そのへん NYTimes には若干がっかりしている。たまたま Congress  も House も Democrats が抑えてるから pass したけれど、若干無理矢理感は否めない。2020 に backlash するという Trump の脅しも、あながちハズレではない気がしてしまう。
  • Facebook is building an operating system so it can ditch Android | TechCrunch VR は latency とかシビアだしどうせアプリはぜんぶネイティブだろうから Android じゃない方がよい面はおおそうだけど、Linux はどうするのかな? Vulkan とか minor OS にのっけてもらうの大変だよね。
  • Pointless な作業をして完全に一日を無駄にしてしまった・・・ Sigh.

2019-12-18 (Wed)

  • 子のデイケア、本日で「卒業」。お世話になりました・・・。奥様負担増で心配だがやむなし。
  • 奥様の夜なべにつきあって寝不足。健康や生産性だけが人生ではないからまあいいんだけど、ねむい。
  • 高速化パッチを送ってくる謎の助っ人団二人目、いまいちコンテクストを共有できてない気がしたので会って話すことにする。というのも2つ上のフロアにいたので。もうちょっと早く会っておくべきだった・・・。なお予期していたとおりできる子であった。モバイル部門、hiring は機能している。そのできる子を最初のプロジェクトで他所のチームのランダムな高速化につっこむ management が機能しているといえるのかはやや疑問だが・・・。
    • 助っ人団のコードを見ていて思うこととしては、まあできる高速化はだいたいやってしまったよな(自分が)、ということ。その事実が高速化人材によって検証されるのは有り難いことだが、どっちかつうと OS の側に手を入れて助けてほしいなあ。
  • 今年は誰にも気づかれずにブログを更新したぜ!と向井さんに話したら「そういえば自分も購読してるはずだけど見てませんね」とのコメント。あ・・・とコードを確認したら RSS をリダイレクトしてなかったわ・・・。逆にいうと anemone.dodgson.org 移行後から購読を始めた人はいないということだが、これは予想の範囲内というか、 feed reader とかおっさんしか使ってないですからね。
  • 組織のツリーが深くなったなどの事情からやたらと "all hands" ミーティングがあってやや辟易。まあ参加はせず録画をビデオでみるだけなので、大した負担はないんだけど。
  • 今週で仕事納め。独り身だったらどうせ誰もいないし会社にきてダラダラ趣味のコード書いたりインターネットしたりしつつちょっと仕事をつつきながら過ごせば良い年末も、家族がいるときちんと休暇申請しておでかけ、となるのだった。といった事実にきづける程度には家族持ちとしての心の余裕がでてきたぜ。
    • 自分は年間 25 日バケーションがあるらしいが、子供の夏休みで二週間 (=10日), 冬にちまちま一週間くらい(=5日) とるともう 10 日しかのこらない。夏休みは実際は二週間より長いこともあるので、雑用などで消える日も考えるとわりとギリギリ。
    • 個人的には二週間続けて休んでも疲れるだけなので細かく散らして休みたい。しかし休みというのは休みではなく、家族のためになんかする日に過ぎないのだった。まえは月に1回なにもせず休んで夫婦で過ごす日などをつくりたいと考えていたけど、それだけで 12 日。残り 13 日じゃ夏休みと冬休みを賄えない。世知辛い。四半期毎に一日くらいならなんとかなるかな。
    • とか考えだすと働きたくないでござる病が悪化するのでここまで。
  • Google claims copyright on employee side projects | Hacker News 社員同士が言い争っていて醜い・・・。「あまり嬉しい制度でなくて残念」という主観的な感想を「業界標準だから」と退けるのは社畜的すぎはしないか。しかも Linux カーネルハッカー社員が「俺は割とたのしくやってるぜ」とか、そうでしょうとしかいいようがない。オープンソースでコードを書くのはむしろ簡単な方で、副業しようとおもってもほぼ不可能。副業というとしょぼいけど、スタートアップ始める準備プロジェクトみたいのは厳密に適用するとできないね。大企業勤めの税金みたいなものだと思っているが、悲しさはあるでしょ。それに「趣味がランダムなパッチ書き」みたいな人には向かないよね。
    • 昔は見ないふりをしていた自分も会社員力が高まった結果としてオープンソースコードを書かないという形に落ち着いた。いまでも細かいゴミは面倒なので public に置いている。たとえばブログのリダイレクトをする app engine のコードとか誰にとっても確実になんの価値もない設定ファイルみたいなもんだからそっと public にしている。勤務先がその著作権を要求してきたらどうぞというだろうけれど、いってくるはずのないゴミの確信があるおかげで public に置ける。
    • 会社がやってる、あるいは参加しているオープンソースプロジェクト相手なら許可はいらない/すごい簡単なはずなので、無駄なリスクを侵さずオープンソースしたいならそういうのから探すのが良いのだろう。まえ仕事で WFL にパッチ書いたときどうしたんだっけ。許可いらない枠の範疇だったのかな。
    • それとは別に、会社の著作権のままオープンソースにすると github.com/google/ に公開されるのだが、しょぼいゴミをちゃんとした仕事コードと同列のプロジェクトにするってどうなの・・・とは思っている。書いたコードはゴミでもなんでもデフォルトでオープンソースというマインドセットとは互換性がない。

2019-12-17 (Tue)

  • 朝、遅刻を強いられるフラストレーションの消耗度合いについて。
    • 自分がコントロールできない要素であること。自分がいくらできることをやったところで、他人の起床や身支度や食事が早くなるわけではない。クリティカルパスは他人に踏み固められている。
    • インクリメンタルかつ不規則であること。遅れることは想定できるが、どれくらい遅れるかは想定できない。30 分遅れが確定しました、と一回でわかるならストレスはその瞬間に発生するだけだが、細かい遅れを次々と突きつけられるのはイライラする度合いが高い。
    • 代替が難しいこと。自分の時間を削るなり睡眠を削るなりして補填するのがむずかしい。なぜなら退社の時間も決まっているからである。
    • The stake is high であること。労働、しないと給料もらえないんですけどね。わかってますかね、みたいな苛立ち。
    • 辛い。
  • ふと思いつきで Pocket Cast を uninstall してみる。しばらくは audiobooks を聴こう。
  • 会社で筋トレをして思ったこと: ヨガマットが必要。テラスじゃなくて会議室でやろうかなあ。
  • Among the World’s Most Dire Places: This California Homeless Camp - The New York Times Oakland の slum は Mexico よりひどいぞ、という話。ホームレス、一時期は自分もホームレスになるかもしらぬと恐れその手の本をよく読んでたけど、思わぬ形で身近になってしまった。

2019-12-16 (Mon)

  • 自分のマインドシェアにおける仕事/会社のどうでもよさと、月曜の朝に出社したとき一息ついて感じる安堵の矛盾。
  • Google AI Blog: Improvements to Portrait Mode on the Google Pixel 4 and Pixel 4 XL Pixel4 は bokeh のバグが減った気がしていたが、なんかやってたのか。残念ながら paper はなし。Tone map の前に bokeh やる、というのは当たり前な気もするが、意外とやってなかったのだね。

Publishing 2019

|

見直したら毎年書いていたのでいちおう記録をしておく。

お手紙活動の影響もあり、今年はついにアップロードを誰にも気づかれないという偉業 (?) を達成した。寂しいが、意図通り。ちょっと速くなり HTTPS にもなり、いちおう進歩はしている。

来年もたぶん似た感じでやっていく予定。ほんとの newsletter platform を使ってみたいという見栄の欲望は引き続きがあるが、書くことないのが現実。衝動的に色々試すかもしれないのでそういうときお手紙仲間の皆様は温かい目で見守ってください。

A Long Reflection 2019 (7) – Not Looking Forward

|

もくじ。

普段から断片的に書いていることの繰り返しも含め、だいたい書きたいことは全部書いた気がする。こうした反省を踏まえてどうするかというと・・・特になにもない。「あのときこうすべきだった」という反省は「あのとき」という条件付きの宣言だから。できないことも、今となっては意味のないこともたくさんある。そして「あのとき」の前提がないものは、できる範囲で実行にうつしている(と思っている)。だからこの文章を踏まえてなにかを変えたいとは思わない。

こうした反省とは別にぼんやり考えていることは色々あるけれど、それらはまた別の機会にぼんやり書いていきたい。

A Long Reflection 2019 (6) - The Failure

|

もくじ。

ウェブ標準の仕事について。

あのプロジェクトは失敗したと言って良いと思う。出荷はしたし使われている部分もあるので全体として完全な失敗ではないにせよ、長い時間がかかったし評判も期待したほどではなかった。自分が担当した部分については完全な失敗で、誰も使ってない。仕様は deprecate され実装も消されることが決まっている

なんで失敗したのか、どうすればうまくできたかと繰り返し考えた。自分にとっての結論はあるようなないような状態。もう情報が増えることもないし、いい機会だから書き出しておきたい。

端的には:野心的な目標に対してチームが実力不足だった。いうまでもなく自分もだいぶ実力が足りてなかった。

なんでそんな野心的な目標を持ってしまったのかというと、時代の空気かなと思う。勤務先、および該当製品は、世の中からも割と愛され当事者は調子に乗っていた、と書くとかんじわるいけど、勢いがあって強気だった。

一方、ウェブテクノロジは行き詰まっているように感じられた。Node.js を中心とした JS のエコシステムは盛り上がりはじめていたが、まだ中心が定まっていなかった。たとえば ES6 Modules はまだなくて、複数のモジュール化標準が入り乱れていた。ウェブフロントエンドのフレームワークについてもかなり混沌としており、ぜんぶぱっとしなかった。(まだ React はなかった。)ので調子に乗っていた我々は、ウェブ標準の力でこれを解決したいと考えた。

どのへんが実力不足だったか。DOM のようなコアのウェブ標準をいじる経験は誰にもなかった。それまで同ブラウザが足した API はデスクトップ OS の機能を expose するようなものばかりだったから(データベースとか。)実装の側もようやくフォーク差分を upstream しおえたくらいの時期で、まんなかの方をがちがち触れる人間は限られていた。

野心的なプロジェクトに挑戦して失敗した。それは仕方ない。挑戦しない方がよかったとも思わない。こうすればうまくいったかもという反省は、色々考えたけれどもう一回やる機会もないし、だんだんと忘れてしまった。


勤務先はさておき、自分がやるべき仕事だったのかについてもよく考える。

自分は標準化というアイデアがそんなに好きでない。必要性は理解しているが、あまりお近づきになりたいとは思っていなかった。この感覚がプロジェクトを通じて強まったのは事実だが、標準化というのは根本的に design by committee. 自分が好きでないのは当たり前。

ついでに自分はプラットホームとかフレームワークとかがあまり好きでない。「ウェブプラットフォーム」に「フレームワークとしての API」を足すプロジェクトを仕事でやる。きびしい。特に自分はウェブ開発者としての専門性がまるでない。そんな人間がフレームワーク API とか設計してもいいものができるわけない。設計は他の人がやってくれるという期待があったけれど、やはり自分の肌感覚がないものを作るのは落ち着かないものだった。設計も、細かいところは結局自分で決めないといけないし、大きな変更をする必要だってあるかもしれない。けれど直感が働かないからそれができなかった。

標準化にブロックされ、オープンソースにブロックされ、チーム内の終わり無い議論にブロックされ、コードを書けない時間がとても長かった。この非生産的で無力な自分にはもっと自覚的になり、なんらかのアクションをとって解決すべきだった。プロジェクトを変えるべきかもしれなかった。

でも総体として同じプロジェクトに stick した自分の判断が間違っていたとは思っていない。自分はそれまで job hopper だったし仕事はしょぼいものばかりだった。このときは難しい、価値のある問題を放り出さず向き合いたいと思っていた。だから自分にとっても難しいことに挑戦して失敗したプロジェクトだった。難しさの種類がチームにとってと自分とでは少し違ったというだけで。そこに学びはあった。だいぶ高くついたが仕方ない。


自分にとっての学びはなんだったか。

まず、価値判断が自分でできる仕事をするのが重要ということ。ウェブの API の良し悪しは自分にはまったくわからない。そういうのを仕事にするのはよくなかった。標準化みたいのも好きでも得意でもないから、やはりいまいちだった。価値判断の重要性は、受託開発で働いてきた自分が自社製品開発をする身として学ぶ必要のあることだった。受託開発だと、価値判断はしばしば麻痺された方がよいからね。いつもそうだとはいわないけれど。

もうひとつ、他人にブロックされることが多い仕事はよくないということ。ボトルネックは自分の側にあった方がよい。それはストレスでもあるが、自分ががんばっただけ進む仕事の方がよい。一見ブロックされているが努力によって unblock できる問題もあるから、この判断はそれほど自明でない。とはいえある程度の期間仕事をすれば gut feeling を通じて傾向は判断できると思う。

あとは、製品やプロジェクトの良さと自分との相性は必ずしも足並みを揃えないということ。仕事のウェブブラウザは製品としても良かったし、組織もよく回っていた。会社の調子もよかった。自分もブラウザというテクノロジは関心をもてた。ただ開発者体験を良くするための新しいウェブAPI の標準化という仕事は自分と合っていなかった。

トレードオフもある。オープンソースの仕事をするとかアメリカの会社で働いてみるというのは自分にとっては意味のあることだった。うまくいっている製品チームの一員として学ぶこともたくさんあった。だから負の要素に目をつぶるのは、ある程度は理にかなっている。程度の問題。

たとえば自分の今のアプリの仕事だと、本当にコアの部分・・・たとえば画質・・・みたいのは自分では価値判断できない。そこに後ろめたさはある。ただ画質以外の要素・・・たとえば速度・・・の良し悪しはわかるので、画質のような本道ではなく速度のような補助的な役割を担うことで妥協している。製品のコアな価値を担えたらかっこいいとおもうけど、そういう仕事はなかなかみつからないね。それは勤務先のせいではなく自分のしょぼさだと思っている。

他人によるブロックについても、大企業だったりチームがある程度でかかったりすると細々とブロックされるのは日常。そういうのは複数の作業を持つことで乗り切っている。今は以前とくらべだいぶブロックされることが減り、ボトルネックを自分の側に近付けられていると思う。これはチームやプロジェクト自体の性質もあるし、立ち位置選びがうまくなった面もあるし、チーム内での自分の tenure も関係ある。時間をかけて信頼を高めればそれだけ自律性が増すし、ブロックされにくい道もよく見えてくる。これだけだと 10 年前に戻っただけだけど、リーダーシップ的なのをほぼ完全に捨てることで組織オーバーヘッドを最小化できているのが進歩といえば進歩かもしれない。


話を少し戻して、件のウェブ標準プロジェクトはどうすればうまくいったのだろうか。

越権を承知で無責任かつ雑に書くと、たぶんレンダリングエンジンじゃなくて JS という言語の側に注力すべきだったんじゃないかな。JS は愛されているし人々は気にかけている。レンダリングエンジンは、そんなでもない。たいした根拠はないし、言語をいじったところでいいものができた保証もないけれど。あとは abstraction ではなく真の capability に的を絞ったほうが良かったとも思う。ユーザとプラットフォームの役割分担として。

プロジェクトの最初期は JS の拡張も含めた様々なアイデアが模索されていたけれど、結局レンダリングエンジンの側をなんかするところに収束した。なぜかはわからないけど、たぶん当事者の多数がレンダリングエンジン側の開発者だったから。手にある武器で殴りたくなるポップカルチャー的 conway's law の帰結、に思える。Abstraction に手を出したのは・・・立案者の趣味かな。たぶんね。

同じ人々はその後 service workers という capability focused でずっと広く使われる標準をずっと短い時間で出荷した。同世代の野心的失敗プロジェクトである Native Client も競合たる ASM.JS と手を組んで Web Assembly という広く使われそうな標準に至った。組織もまた学びを糧に前に進んでいる。もっと fail early しろと Eric Ries に怒られそうだけど、それは仕方なし。


自分は今の会社に入る前から何年も仕事をしていて失敗プロジェクトもいっぱいあったのに、あまりそれらに関する反省が思い出せない。あまり反省しなかったのだろうか・・・。とおもったが、昔のブログを見ると少しは反省しているね。メランコリックすぎてわかりにくいけど。

あと、プロジェクト自体がしょぼすぎて色々責任転嫁の余地があったのを言い訳に、自分の不足に目を向ける誠実さを欠いていたとも思う。自分のだめさに自覚的であるべきだったが、中二病ってのはそういうことしないんだよ。

A Long Reflection 2019 (5) - Extracurriculars

|

もくじ。

業務ではない課外活動。趣味プロジェクトとか勉強とか。

趣味プロジェクトは、実用性を重視しすぎて小物ばっかりつくったのがよくなかった。役に立とうが立つまいが挑戦として OS なり言語処理系なりを作ればよかった。そういうのをやらなかったのは根性がなかったせいでもある。そして実用といいつつ使えたものは殆どない。なさけなし。

座学/読書は、もうちょっとノートをとるだとか環境に気を使うとか、ムダに挫折したり放置したりしないよう勉強の仕方というものを気にすべきだった。ここ 4-5 年で多少改善したけれど、時すでに遅し。挫折や放置はそれ自体も問題だけれども、そのあとしばらく勉強する気を削いでしまうのもよくない。

コード読み。少しはやったが、日常にするところまでたどり着けなかったのは残念。コードを読む日常に憧れがあったが、どうすればよかったのかはよくわからない。雑誌連載は動機づけにはなったが、ややきつかった。

競技プログラミング。全然やらなかった。まあいいです。何らかのコードを書いていればそれでよいと思っている。個人的に趣味プロジェクトをがんばりたかった。

英語。まあ、こんなもんですわ。入社直後、あるいは引っ越し直後にもっとがんばればよかったとは思う。やる気と時間のバランスがよいはずの時期。あと、やはり勉強法みたいのにもっと気を使うべきだったね。特にキャリア序盤。

総体として、もうちょっと高い目標をもって根性だしてメタスキルも高めて継続的に色々挑戦できればよかった。昼まで寝てマンガ読んで酒を飲みに行くのが青春だった身には、まったく高望みだとも思うけれど。


他人となにかやること。

小さい活動をもっとたくさんやればよかった。たとえば自分はむかし小さな読書会をはじめた。実際の運用は別のちゃんとした参加者の人が引き取ってくれたから続いたのだけれど、これはよかった。たまに友達と小さなプロジェクトをやってみたり、「もくもく会」みたいのに顔をだしたりして、それもよかった。こういう小さな集まりをもっとカジュアルかつ継続的にやればよかったと思う。場所を探すのが億劫だった記憶があるけれど、別に自宅で 2-3 人の集まりを持てばそれでよかったね。最後の数年住んでいた広尾のボロアパートはさすがに厳しいかもだが、日頃そういう集まりをしていたら引っ越しに際しマシな部屋を選んだかもしれない。

よその勉強会みたいのは、まあ、たまに出るくらいでよかったかな。自分が話さない勉強会はきほん意味なかったなと思う。自分が話すのはオフラインで個体を認知される意味で良い。飲み会を尊ぶ声をオンラインでたまに見かけるけど、自分にとっては二日酔いになるし喉をやられ風邪をひくしで、あまりいい思い出はない。その割に頻繁に顔を出していたが・・・。

オープンソース。自分の勤務先だと「仕事で使うから」みたいな理由をサードパーティのプロジェクトに見出しにくく、結果としてコントリビュートする気があまり起きなかった。残念だけど、本業として数年やったからいいかなとも思う。残ったものはないけれど、やっている間は楽しかった。会社のカネで meetup にも参加できたし。趣味と仕事が一致していた瞬間。


これらを書き出してみて思うこと。

趣味や勉強の支えとして、友達と一緒に勉強したりコードを書いたりをもっとしてよかった。特に若い頃はまわりのひともみなヒマなわけだし。なぜそれをしなかったのか今になって思うと不思議だけれど、内向的すぎとか臆病とか腰が重すぎとか色々理由はあげられる。あまり考えもしなかった気がする。友達とやることなんて、酒のむか飯くうくらいだったような。結局、そんなに意識高い身分ではなかったのだよ。

友達となんかやる方がいいという感覚は snippet train なり podcast なり、比較的最近の経験に裏付けられた気分にも思える。結婚して引っ越してヒマも相手もいなくなった後に気づいたのは残念。

ライフハックやメタスキルみたいのを重視するようになったのも最近の傾向で、むかしはもうちょっとバンカラ志向だった気がする。年を取って自己啓発にかぶれたと見ることもできるが、パッショネイトバンカラ野郎を気取るには期待値に対し素の実力が足りない。

A Long Reflection 2019 (4) - Attention and Citizenship

|

もくじ。

少し脇道に逸れ、インターネット芸人活動について。これについては過去に何度か書いている(1, 2, 3, 4)。自分はある時期までは無自覚な attention addict であり、それが自分のキャリアを損ねたと思っていた。その反動で、一旦は原理主義的な意見に至った。すなわち、関心/承認欲求のためにオンライン活動をするとプログラマとしてのキャリアを損ねる。それよりは実力の足しになるようなこと・・・たとえばコードを書くとか・・・をするとよい。その結果引き起こされる関心だけが本物の通貨で、あとは贋金である。

これはあまりに draconian で、関心/露出/知名度にはキャリア上の利点もある。自分はそれを享受している。だからその「偽物らしさ」に自覚的であれば、必要悪のツールとして芸人になるのもよい。原理主義化したあとは、そう考え直しもした。

「自覚的である」ことはそれなりに難しい。とはいえ関心への飢餓感が孕む危険は主に聴衆側の成熟によってある程度は理解が進んだ。たとえば「炎上芸」みたいな語彙は昔はなかった。今は、プログラマはともかくウェブで悪目立ちする一部の「ブロガー」を人々は失笑しているし、YouTube personalities の burnouts などもしばしば報道されている。

そうした芸人としての罠がオンラインで活動するプログラマにもあてはまることを理解した上で、趣味としての芸を楽しむのは別にいいんじゃないか。最近はそう思っている。プロ芸人でない自分たちのようなプログラマにとって関心の病を自覚するのは案外むずかしいこともあるが・・・。

依存症の比喩からこう考えることもある:自分は依存症を通じて脳が変質したからアル中やヤク中がそうであるように依存対象すなわち関心からは自由になれない。だから諦めと受容を通じ距離をおいて付き合っていくしかない。

外国ぐらしをするようになり、自分にとって日本語圏でのアテンションの直接的な価値は下がった。結果として見栄に引きずられず芸人活動の趣味性を楽しめるようになったのはよかった。これは Podcast で特に顕著だったとおもう。いまでもアテンションは気になるが、前よりはうまく距離を置けている気がする。出羽の守化がさほど進行せずにすんでいる(と信じている)のは、解毒の成果とみることもできるし単に加齢のせいかもしれない。


自分の社会的アイデンティティを考えると、また違った見方もある。自分はインターネット「芸人」である以前にインターネットの「住人」で、自分の人間関係にはウェブを通じて作られたものが沢山ある。オフラインが起点の知り合いでも、互いがオンラインに書いたものを通じ理解しあった関係もある。発言の場としてのインターネットはそうした人間関係を育む土壌であり自己表現の舞台なのだから、芸人だの関心だのと腐してばかりはフェアでない。相応の重要度と敬意を持って接するべきではないか。有り体に言えば、自分はインターネットと一緒に人間関係を放棄していないか。

これらの矛盾する見解は、それぞれ正しいと自分は思っている。ただ互いに矛盾しているので歯切れの良さはない。まあ、仕方ない。 これからも試行錯誤が続くだろう。

A Long Reflection 2019 (3) - Bigness

|

もくじ。

大企業について書こうと思ったが、自分にとっては外資系というか非母語で働くという変化と受託開発から自社製品開発への変化も同時にやってきたのでれらは切り離しにくい部分がある。まずは別々に議論してみる。

まず大企業と大規模プロジェクトについて。自分は今の会社に入るまでは中小企業で働いていた。気づいていなかったが、働き方も中小企業に傾いていた。それを補正するのに苦労した。

規模と細分化

中小企業の働き方は役割が未分化である。製品のコードベースも大きくないからフロントエンドからバックエンドまでふつうに全部さわるし、人手がないからマネージメントはしないまでも TL っぽい立場にはなりやすい。色々やる。

その色々の品質は高くない。多くの場合、とりあえず動けばよい。ひどいところは直そうかな、くらい。要素技術を売るスタートアップのコア技術とかだとまた違うのかもだが、中小企業というのは基本的にしょぼいものをしょぼしょぼ作って売っているのである(殺されそうな発言)。しょぼいは酷い言い分で、ニッチというほうが良いな。

大企業は人がいっぱいいる。仕事も規模がでかいので、役割が細分化されている。マネージメントも管理職以外はそんなやらなくてよい。偉くなりたいなら TL くらいはやった方がいいだろうが、別にやりたい人(偉くなりたい人)はいっぱいいるので自分がやらなくても他に人はいる。ビジネスは成功している(からでかくなった)ので、その先に積み上げるものへの期待値は高い。

細分化の結果、個々人は専門家として仕事をしないといけない。その専門はわかりやすい(市場価値のある)切り口の場合もあるし、製品固有なニッチの場合もある。マネージメントも専門である。TL はある意味ではジェネラリストだが、それでも守備範囲のスコープは狭い。なぜなら個々のチーム自体の守備範囲が(相対的には)小さいから。"Uber TL" という TL の TL みたいなポジションもあるにはある。割とすごいプログラマがすごい視力をもってやる仕事とされている。なおスコープが小さいといってもコード量が少ないとは限らない。コードの総量が多いので。

自分はというと、チームのつくっている特定のアプリの性能の専門家となっている。でも性能の指標をすべて見ているわけではなく、起動レイテンシや Jank のような限られたメトリクスしか扱っていない。たとえば画像処理のスループットとかメモリ消費とかは他の人が見ている。前のチームは今より小規模だったので、もうちょっと色々見ていた。一方その前のチームは今よりずっと巨大で、自分が性能の専門家になる余地はなかった。

大企業というか大きなプロジェクトは仕事が進まない。具体的にいうとコード産出のスループットが低い。なぜなら満たさなければいけない期待値、品質のバーが高いからである。性能改善とかはその傾向が顕著かもしれない。コードを書くよりプロファイルやトレースを睨んでいる時間の方がずっと長い。

現実の問題に裏付けられた専門のニッチにどこまでも踏み込んでいく知的刺激は得難い。一方で、どうってことないコードをフルスタックで雑にいっぱい書く方がコード書きの筋肉はつくし潰しは効くだろうなと思う。

Small autonomous team で Microservices みたいのは大企業が中小企業の身軽さを取り戻す術とされている。Microservices でなくても、新規製品の立ち上げみたいなプロジェクトにはこれらプロジェクト規模の問題がなく比較的ザクザクとコードがかけるため、勢いのある人たちに人気。ただ自分はそういう仕事はしていない。今のチームも新機能やっている勢はそこそこコードのスループットがある気はする。コードを書くという視点だと、性能仕事は微妙。

まとめると、大企業はプロジェクトの規模が大きくなりがちで、結果として仕事は細分化、専門化しがちで、期待値の高さから品質のバーはあがりがち。ただし弱小製品や新規プロジェクトなど例外も多い。コードを書く量は総体としては少なくなりがちだが、程度にはばらつきがある。うまく仕事を選ぶと雑用がすくないぶんコード書きに集中できる面はある。

自分は専門家になるより E2E でコードを書きたいと思っていたし、TL/TPM 的にプロセスなどをコントロールできないことに強いフラストレーションを感じていた。性能の仕事はコードを横断することができるので良い。ただし新機能実装みたいな機会はない。プロセスについては超非生産的な年月を経て慣れた。どちらも適応には時間がかかった。

社内固有の事情

大企業はでかいので、社内固有の事情が色々ある。そうした社内固有の事情に関する知識は、転職を見据えると基本的には無駄。ただ日々の仕事には欠かせない。

社内知識にはスタックのように技術なものと書類や人間関係のように技術的でないものがある。運用のプロセスみたいのはその中間くらい。

まず技術的な知識について。自分の勤務先はオープンソースにあるような分野のものも色々内製している。そういう内製スタックに詳しくなるのは無駄だからと、なるべく近づかないようにしていた。

ただ後から気づいたこととして、その内製スタックの上に作られた製品固有のテクノロジ(画像処理、検索などなど・・・)はオープンソースに代替品が存在せず、ものによっては業界最先端だったりする。そうした製品固有のテクノロジを学ぶ税金として内製スタックは勉強しても良かった。反省。とはいえ規模の問題もあるので、製品固有テクノロジを学びたいならそのテクノロジの上で仕事をしないといけない。片手間で理解できるような代物ではない。検索について知りたいなら検索を仕事にしないとだめ。たぶん。

もうちょっと汎用的な内製技術スタックが「時代の先を行っている」とされている場合、未来を見るメガネとしてそれを学ぶのには意味があるのか?個人的にはあまり無いと思う。「時代の先を行っている」はだいたい当事者の思い込みで、実際はニッチな袋小路に過ぎないことが多い。その未来は来ない。上に書いたような理由からそれを理解するのは悪いことではないけれど別に未来じゃなくね?やはり論文なりオープンソースなり世間で評価にさらされないと勝敗はわかない。

しかし学ぶ意欲を得るにあたりファンタジーが助けになるのも事実。自分も、自分を騙せる勢いが残っているうちに内製テクノロジにどっぷりすればよかったなと思う。まあブラウザとかもオープンソースなだけでニッチ性は内製テクノロジみたいなもんだから、それを学んだのでよかったのかもしれない。未だに心のどこかでサーバサイドには「秘伝のタレ」があるというファンタジーを捨てきれてない。

技術的でない社内知識。たとえば人脈とか部門間の関係とか他部門の動向とか。ほんとに社内でしか価値がない情報だけれど、ゴシップ的な面白さはあるのでひやかし程度に詳しい人の話を聞くくらいでいいんじゃないかな。チームメイトなど、直接接点がある人たちとの関係を良好にするのは大事だと思う。自分がこれらをちゃんとできているとは思わないが。

半分くらい技術的な知識。たとえばプロセスや、それをとりまくツールと人間。自分が agile とかが好きなせいかもしれないけれど、これが一番学ぶに値するものだと思う。プロセスというのは細部は組織固有だけれど big picture は存在し、それはソースコードほどオープンでないし知識として明文化するのも難しい。そこそこ機能している "The Way"には学ぶ価値がある。そして座学で学ぶより実際に動いているものを目にするほうがずっと身につく。それらのプロセスが最適であるとは限らない。でも何も知らずに完全にランダムな解空間を探索するよりは良い。

企業 blog やオープンソースにはじまり Devops movement やその周辺 SaaS へと続く情報開示によって、様々な大企業 ways も段々と標準化、商業化されているような気はする。そうやって小奇麗になったバージョンを学ぶほうが効率的に思える一方、土着のプロセスが動く生々しさに触れる良さもある。自分は一時期こういうのに興味があったけれど、モバイル部門は音楽性が合わなすぎて興味を失ってしまった。ただ各種の社内ドキュメントはもうちょっと熱心に読んだほうが良いのだろうなあ。

官僚的なものごと

大企業が官僚的であるというのはたぶん事実だが、体感するフラストレーションはばらつきがあった。

ミーティング。自分はいま週に 1.5 時間くらいかな。チームの定例が一個と、1:1 が隔週から月一回くらい。隔週の demo day は時期によって開催頻度はまちまち。自分がヒラ社員すぎるせいとはいえ、これは会社の規模によらず割と少ない方ではないか。(しかもたびたびすっぽかしている。よくない。)

出張とか経費精算とかのペーパーワークはずいぶんラク。人事考課は、ちょっとめんどい。ただフェアさを考えると妥当かなと思う。制度に改定があるたび、下々の手間は少し減り、同時に透明度も少し失われている。

非同期でやるミーティング相当の行為。コードレビューとか、ドキュメントのレビューとか。まあそこそこ。やはりヒラなのでそんなに多くない。バグのトリアージは今の仕事はすごい多くて苦痛。ただ割と例外的な気がする。メールはそんなに書いてない。読むのは適当にやってる。

リリース。相当めんどくさいはずだが TPM がぜんぶやってくれる。専業の人間がいる時点で官僚的なのは事実。TPM ではなくエンジニアがやってるチームもある。自動化はされているが、自分たちのチームは割と激しく cherrypick するとか QA チームによる手動のテストが挟まってるとかのせいでめんどくささが増していると思う。官僚的だからというよりは、チームの練度不足に思える。

なんか新しいことをはじめる。自分の裁量でできる範囲なら特に面倒はない。人が欲しいとかエンドユーザから見える違いがあるとかだと大変。製品の表面積が小さいほどエンドユーザ向けの機能を足すのは大変だと思う。カメラアプリとかだいぶ大変。電子書籍はもうちょっとラクそうだった。どちらでもプログラマがやりたいと言い出した機能が入り込んでいくのを見たので、機能の筋の良さと本人のパッションに依存している。たとえばカメラの RAW 保存とかはプログラマ発だった気がする。

機能ではなく、新しい製品を始めるのは、きっとすごい大変。自分には無理だし、エラ目の PM とかでないと正しい攻略パスを進めないんじゃないかな。PM と仲良くなれば良いという話かもしれないが。

新機能にしろ新製品にしろ始めるのは大変だけど世に出すのはもっと大変で、リリース前のプロジェクトはしょっちゅうキャンセルされている。世に出たものもよくディスコンして世間の顰蹙を買っているけれど、あんな生易しいもんじゃないんだぜ。今のところキャンセルでもクビにはならないのはめでたい。

日々の仕事の官僚性。ビルドが遅いとかテストが遅いとかは技術的な官僚的オーバーヘッドと言えよう。コードレビュアがみつかんないみたいのは、昔でかいチームだった頃はよくあった。今はあまりない。忙しくて全然レビューしてくれない時はたまにある。分散バージョン管理のおかげで、仕事の並列化はやりやすくなった。多少ブロックされても遅延を隠せる。

コードにおける官僚性。なんかのインテグレーションをするとか、コードの静的チェックとか。UI の見た目の足並みを他アプリと揃えるとか。まあまあある。そして、これは大きいチームにいるより小さいチームにいる方が負担を感じる。なぜならシステムが巨大なチームのために作られているから。大きなチームだと、面倒なことは割と誰かがやってくれる。(自分がその面倒な担当にならなければ。)

総体として、自分の役割を果たしている分にはたいしたオーバーヘッドを感じないが、役割を超えてなにかしようとすると非現実的に大変な印象。自分は最初のころ役割をよくわかってなかった。そのせいで無駄に苦労をした気がする。

英語と外国

英語と外国の影響は理論的には大企業である事実とは直行しているはずだが、自分の場合は大企業による影響を reinforce している。すなわち、フルスタック雑用リーダシップではなく末端専門家プログラマとしての振る舞いを後押しされている。

英語の影響、すなわち言語バリアは、プレゼンやメールや立ち話といった自然言語による説得を難しく、かつ高価にする。その結果、1. 事前に説得するより実際にコードを書いて結果をだしてからもっていくようになる 2. 主観的な性格が強いもの(例: コード品質)より成果を客観的に見せやすいもの(例: 性能)を目指して仕事をするようになる。3. 人に頼むのではなく自分でやるようになる。4. 他人の仕事に口を挟まなくなる。全体として、リーダーシップ/マネジメントではなく末端/ICであることを志向するようになる。

外国であることの影響、すなわち人的ネットワークの喪失の影響。これは日本で育んだネットワークが役に立たないからでもあるし、言語バリアのせいで新しいネットワークを育てられないせいでもある。家族がいると社外のイベントの類も全然顔をだせないし、社内の業務外グループみたいのに参加する余力もない。結果として、仕事では人づてに裏で口を利いてもらうとかはできないし(これは日本にいたときもしたことない気がするが)、同じく人づてに面白い仕事を探すこともできない。社外でも社内でも。結果として 1. 転職とかをする気がおきない(人づてに行き先がみつからないから) 2. 自分のプレゼンスを高めるためにがんばる、みたいなことをしない。(プレゼントする先がないから。)といったことがおきた。最初のチームにいたときは社内ソーシャルメディアで管をまくチームメイトもいたので自分も割とやっていたが、今はもう社内ソーシャルメディアもしなくなった。

まあ社外とか社内の遠い何処かとかはさておき、チームの隣人に対してはもうちょっとつきあいよくしてもいいかもしれないと最近は思っている。人として。人間的な接点がないと仕事場に「所属してる感」がなくてやや寂しい。ただ同僚とランチとか時間の使い方として贅沢すぎてちょっときびしい感があるし、週末に遊びに行くとかありえないかんじ。子供ができる前にもうちょっと社交しておくべきだったと思う一方、既婚者にはそれもバー高めなのだった。


全体として、大企業/外国ぐらしは自分を専門的なテクノロジを末端で行使する人にしている気がする。専門性がニッチに先鋭化していくのは望ましくないが、技術以外の側面を捨てるよう後押しされるのはプログラマとして生きていく上でいい圧力ではなかろうか。職業人生の前半と互換性がなさすぎて苦労はした。最初から大企業にいる人々はエリートネイティブという感じでうらやましいが、彼らは大企業にいるからエリートなのではなくエリートだから大企業にいるのだった。

もうひとつ、こうした圧に任せているとまったくエラくはなれないね。外国人でも圧と戦いながら大企業の中で偉くなっていく人々には尊敬がある。でも自分は舵を切りたくなったらそれを後押しする圧のある環境に移る方がいいな。そういう日が来るのか、そういう日が来たとして異なる環境が自分を受け入れてくれるのか、不安はあるけれども。

A Long Reflection 2019 (2) - Grit and Expectation

|

もくじ。

事実関係の振り返りを横断的に眺めると、繰り返しあらわれる話題がある。自分の気分の底を流れるテーマも頭をよぎり始める。

まずひとつめは、このひと根性ないね・・・ということ。これはモダン根性論に感化されて以来より一層思う。特に大学時代の自分のやるきの無さときたらやばい。学費の!もとを!とるきあんのか!

つぎ。これは根性のなさに少し関係があるけれど、仕事の決め方が雑。不確実性を扱うのが苦手で、探索が苦手。仕事を選ぶタイミングというのはすごい自由度があり、それゆえ不確実なことも多い。だから色々な手を考え、それだけでなく実際に話をきいて、いくつものオプションの中から選ぶ方が良い。自分は考えることは一定程度しているが、おおむね思い込みでバンと決めている。話を聴くのをさぼっているし、不安定な状態を嫌っている。これは自分のコミュ障や臆病の帰結ではあるけれど、もうちょっとがんばっていいのではないか。とおもって前回はちょっと頑張ろうとしたが、そもそもレジュメでお断りされてしまったのだった。なおバンと決めてる割に現状さほどひどいことになってない点は自分の運を讃えたい。

仕事選び雑さという点だと、割といつも仕事が辛くなって雇用主やチームを変えており、それが雑さにつながっている面もある気がする。ほんとはもっと心に余裕のあるとき仕事を変えると良いのだろうね。その反省から前回は三年たったらチームを変えようと思っていたが、三年待たずにトラブルに巻き込まれてしまったのだった。

つぎ。大企業と中小企業の違い。中小企業時代の反省というのはあるわけだけれど、それらは今の大企業の文脈にまったくあてはまらない。例えばチームやプロジェクトのリードの仕方、みたいのは考えても無駄。リードしないし、チームの構成人員もリソースも全然違う。まあ10年近く前のことを反省しても仕方ないんだけど、このギャップは未だに埋め切れていない感がある。同じような大きな飛躍として受託開発と自社開発の違いもある。国の違いもある。ただ自分の中でこれらは大企業と零細の違いとうまく区分できていない。こうしたギャップを埋めるのに自分はだいぶ苦労したなと思う。これはきっと稿を分けるのが良いでしょう。


大企業に関するメタな感想として、自分の期待値はきっと釣り上がっているのだろうとも思う。感じの悪さを恐れず書くと、大企業の中やその周辺の人々はわりかしエリートである。そういう人々の振る舞いを baseline にすると自然と期待値があがる。しかし現実の自分の baseline はどちらかというと中二病気味なボンクラである。中二ボンクラな自分の期待値と大企業エリートの期待値には重なる部分もある(「すごいプログラマになりたい」とか)が、大きな違いとしてボンクラにはロードマップがない。エリートにはある。別の言い方をすればボンクラの期待値はファンタジーだがエリートにとっては現実だ。ファンタジーを現実として突きつけられると、あ、ごめんなさい・・・みたいになる。とはいえいまさらファンタジーに戻すこともできないので、無理な期待値にちょっとでも近づけたらとできる範囲でしたばたしてる。(にも似たようなこと書いたな。)

ボンクラ・・・というかノン・エリートによるロードマップレスの「がむしゃらな頑張り」がファンタジーを現実にすることもたまにはあるらしく、そういうストーリーはそれはそれでかっこいい。ただ自分は該当していない。あとここでいうエリートは長期間着実に努力と成果を積み重ねられる強い自制心の持ち主という意味で使っている。これは現実のいわゆるエリートとだいたい重なっているが、もっと地味なエリートもいる。とはいえ自分くらいの年齢になるとまあまあ結果がでてる気がする。

A Long Reflection 2019 (1) - Timeline

|

もくじ。

まず・・・どこまでもどればいいんだろうか。大学?自分は私立大学の推薦入学というやつをして、それはよくなかったと思っている。ちゃんと受験勉強を戦う根性を出すべきだった。ただ当時の自分がそこで迷った記憶もないので、自分の根性の無さの帰結とみなす方が自然に思える。いくつか候補がある中で情報系を選んだのは、なかなか先見の名があったと思う。市場動向とかを調査した記憶もないので、まあまあマグレではある。プログラマなんてゲームプログラマしか知らなかったし、プログラミングもしたことがなかった。なお「手に職」と親に強く念を押されていたため、文系は考えていなかった記憶。これは親がえらかったともいえるが、別に文系にだって職はあった気もする。我ながら雑である。評価としては、大学受験をしなかったのはダメな判断だが情報系という選択は、運の要素もあるが良かった。

そのまま同じ大学の大学院に進んだ。大学院大学みたいのも教員に勧められたが、田舎の山奥で寮暮らしをして正気が保てるとは思えなかった。(インターネットには大学院大学在住の変人がいっぱいいた)。まあこれらは言い訳で、根性がなかったね、やはり。評価:根性なくてだめだが、無難ではあった。

学生時代は最初は本屋でバイトをしていたが、プログラマのバイトをしたいんですよねと教員に話したところ授業の TA を紹介してもらい、その TA の仲介でいわゆるエンタープライズ孫請けみたいな会社で Java を書くバイトをした。それとは別に、これはきっかけは忘れたがウェブで組込系の会社のバイトをみつけ、そっちでも Java を書いた。組み込み系の方は家から遠かった上に時給も安かったので一年ぐらいでやめた。もう一個のエンプラ孫請けは 2-3 年くらいやってた気がする。

プログラマのバイトは、まあ、よかったね。本屋よりお金をいっぱいもらえたし、仕事でコードを書く様子を覗き見られた。特に当時の一大産業である「エンタープライズの Java 開発」というやつがどんなものか体感できたのがよかった。それらのバイト先が特段優良企業だったとは思わないが、自分も別にコードをかけたわけではないから、実力を考えると良い仕事だったと思う。評価:運がよかったというよりは時代が良かった。時代の波にのる良い判断ではあった。


大学院生には「学校推薦」という優遇雇用枠で就職できる利点があり、自分も大学院に進む時は視野にいれていたと思う。ただ実際目の前に来てみると、企業からの様々なしがらみに関する噂や雇用枠を巡って学生の間に漂う微妙な空気など、めんどくささの総量が自分の許容範囲を超えていた。なのでふつうに就職することにした。そこで説明会とかに行くことにした。

最初に行ったのはマイクロソフトだったと思う。ただ説明によるとトップ大学卒でないと話にならなそうな雰囲気だった。会場で「質問」みたいのを繰り出す学生の意識高い感じも厳しく、ああ二流私大のおたくはお呼びじゃないのねと退散した。安い革靴で痛んだ足の記憶ばかりがはっきりのこっている。もう説明会に足を運ぶのも面倒になり、先に一年だけバイトをした組み込みの会社に求職し、説明会とかも一通り行って、採用された。エンタープライズ系のバイト先は仕事の印象が(本業の候補としては)よくなかったのでパスした。エンタープライズ受託は親も子も孫もイヤだと思っていた記憶。

つまり自分は説明会には二つしかいかず、求職したのは一社だけだった。やるきねえなーーー。本当に根性がなかったとわかる。今振り返ると数年後にやってくる就職氷河期に巻き込まれたら就職できなかった可能性あるね。あぶなかった・・・。

評価:一社にしか求職しない根性のなさはダメだが、その後の学校推薦をとってるメーカー系大企業のぱっとしなさをみると、それらを退けた判断自体はよかった。エンタープライズ IT を避けたのが良かったのかどうかはわからないが、それが自分のバイト体験に基づいた判断である点は地に足がついていたよかった。


最初の組込系ブラウザの会社。かなりハードワークしたが三年弱で辞めた。

ベンチャーという触れ込みだったが今振り返るとストックも自社株もないし、顧客が大企業だったせいか仕事の仕方もぜんぜんベンチャーぽくなかったし、社員も年寄りが幅を利かせていたし、やたら会議が多かったし、なにより労働時間の長さは異常だし、いまいちだった気がする。

一方で、作っているものがウェブブラウザなのはよかった。後に今の会社に入る役にたったのはさておくとしても、来るウェブ時代の基盤技術に仕事を通じて詳しくなれた。自分は別にウェブブラウザがやりたくて入社したわけではない(特にやりたことはなかった)ので、これは運がよかった。

会社の偉い人たちは、本人らが主張するほどテクノロジの重要性をわかっていなかった気がする。おかげでコードを書くのは新卒入社数年目みたいな若者が中心だった。これは会社の競争力という点ではよくなかったが、新卒入社の身分である自分にとってはよかった。自分は入社早々組み込み SVG レンダラを開発したけれど、初期バージョンを書いていたのはグラフィクスを何もしならない一年上の新卒社員だった。しかしこの SVG は Macromedia (当時) Flash と戦う必要があったのである。新卒入社一年二年、しかも専門性のない素人を西海岸と戦わせるとかアホなの?ふつうに考えたら社内の使える TL を軸にゲーム業界とかのグラフィクスわかる人員を雇って脇を固め、新卒はせいぜい補助的に手を動かす仕事に回すとこじゃね?ところがそういうことは微塵もおこらず、自分がビットシフトとかしながら Bitmap にピクセルを置くコードを書いていたのだった。やばい。勝てるわけない。しかしそのあり得ない期待値のおかげで上から下まで自分でぜんぶデザインして書く、という得難い体験ができた。

会社の中に人はいっぱいいたので、これはスタートアップの人手不足ストーリーとは少し違う。組織の価値観の歪みによって生まれた機会という方が近い。社内の同世代も、似たような事情で沢山コードを書く人が多かったと思う。もっと気の毒な感じの仕事に回されてしまった人もいたが・・・。

評価: 選択の根拠やプロセス自体はそんなによくなかった。運良く沢山コードがかけたのはよかった。ウェブブラウザだったのも運がよかったが、それなりに勢いのある会社を選べばどこでもそれなりに時代に合ったテクノロジには触れられたんじゃないかな。労働時間が長すぎるのはよくなかった。これは運の問題に思える。


つぎは外資系の名を冠した SI の会社に転職した。二年くらいいた。特によいことはなかった。グラフィクスの仕事をできるという触れ込みだったが、入って最初にやったのは Java で Web をつくる仕事だった(なんで?)。最終的にグラフィクスの仕事も少しはできたけれど、半分以下だったと思う。一つ前の組み込みの会社も今おもうとプログラマの扱いはひどいものだったけれど、この SI の会社はほんとにプログラマ・エンジニアをリソースとして見ており、エクセルとにらめっこする上司を横目に、ああ人月ってこういうことなのねなるほど・・・とある種の感慨があった。

後から振り返るとこの転職のきっかけは過労すぎなどで損ねていた前職時代の精神衛生だったので、精神衛生や健康は仕事より大切にしなさいね、というのが教訓。

なおこのとき仕事への思い入れみたいのが完全に失われた結果、仕事のクソさにもかかわらず精神衛生は回復した。あと仕事のやる気のなさの反動でインターネット執筆活動がはかどり、ブログの時代の追い風もあってそこそこオンラインの知名度が高まったのは良くも悪くも後の身の振り方に影響している。趣味プロジェクトも捗った。

評価: 判断も結果もよくなかったが、前の段階でよくない判断をしてしまう状態に身を置いたのがよくなかった。一方で、それも若さ/時代かなとも思う。メランコリックな若者だったし、IT といえば過労で鬱という時代だった。インターネット活動は、自然言語よりコードを書いた方が良かったとは思うけれど、文章も書いたなりに影響力を持てる時代だったので悪くはなかった。


次は零細ゲームミドルウェア会社。大手ゲーム会社の子会社だった。小さい会社がいいなというのと、速いコードを必要としているところがいい、という判断だったと記憶。三年弱。

社長はスタートアップぽい野望を色々もっていたものの、別に金もないし子会社で株もないしで、別にスタートアップではなかった。ただ前の二者と違い社員 20 人とかの小さい会社で、小ささ自体は悪くなかった。エラそうなことをいいつつ沢山コードをかけたのは良かった。エラそうにする必要はなかったけれど、たとえばアジャイルごっことをしたりとかは小ささの利点だった。同僚も気のいい人々で、おおむね楽しく働けた。(なんとなく擁護しておくと、一つ前の会社も同僚は概ね良い人たちだった。)

ただ本当にまったく儲かっておらず、儲かるあてもなく、経営や採用も雑で、企業としての先行きは暗かった。実際じぶんがやめた一年後くらいに店じまいしてしまった。

この頃からインターネット活動でも身元を明かすようになった。小さい企業なのでそのへんは気楽でよかった。インターネット芸人成分が増したとも言える。

評価: 小さい会社にいく判断自体は, job hopper になってしまった身からすると悪くなかった。大きい会社は雇ってくれなそうだったから。小ささの恩恵は堪能した。どうせならもうちょっと儲かりそうなところに行けば良かった気もする。一方で自分の中の天邪鬼は儲かってて軽薄そうな空気を嫌がっていたので、そんな判断を出来た気もあまりしない。


つぎ、外資系大企業でオープンソース。

入社じたいは、まあめぐり合わせと運みたいなもんです。ブラウザつながりだけど、東京にウェブブラウザやる仕事がある理由からして未だに謎というか特になかったと想像する。雑だから、くらい。

最初の 4 年くらいは新しいウェブ標準の提案実装をやった。これについては前に何度か書いた。なにかもう少し書くことはある気がするけれど、稿はわけておきたい。このプロジェクトの最後の方で転勤した。

そのあと一年くらいは割と実験的なプロジェクトを手伝っていたが、気がつくと新しい OS やらマイナー自社言語の UI フレームワークを作るプロジェクトに姿を変えており、どちらも自分の価値観とあわなかったので一年くらいで退散した。プロジェクトを選んだ時は想像していなかった展開なだけに運が悪かったとも言えるが、大企業の野心的なプロジェクトは自分の価値観とはズレがちという事実は知りつつ踏み込んだわけで、自業自得。仕事の作業自体も色々な事情で全然はかどらず、たぶんこの一年は職業人生の中で二番目くらいに非生産的だった気がする。(一番非生産的だったのは SI 勤務時の数カ月だが、それは自分の意思でさぼってただけ。)

評価: 運の要素もゼロではないとおもうけれど、それよりは野心的プロジェクトを通じた出世の欲をかいて価値観や原則にあわないことをしたり、前のプロジェクトで染み付いた非生産性を払拭できなかったりと、入社以来降り積もった自分のダメさが結実したような一年だった。ただ転勤を助けてもらった義理を果たす面もあったので、一年やったこと自体は妥当と思う。

そのあと二年くらい電子書籍アプリ。ウェブがモバイルに負けると言うならモバイルというものを見てやろうとモバイルアプリを選び、Web の知識が役に立ちそうなので電子書籍。結局半分くらいの時間は WebView の中でうごく JS を書いていた気がする。ウェブの知識で成果を出しつつモバイルに入門するという狙いどおりにいったのはよかった。チームはそんなに大きくも強くもなく、それは良いところも悪いところもあった。大企業モバイルのベストプラクティスみたいのはまったく触れる機会がなかった一方、割と雑にいじっても見逃してもらえたので裁量はあったと言える。サーバ側もちょっとだけさわれたし。コードは割とレガシーで厳しかったが、チームを説得してそれをガっと書き換えるのが自分の職位に期待されていることのはずで、それができたかったのは実力不足。文句をいう筋合いはない気がする。じっさい自分がやめたあとにけっこう人がいれかわり、今はだいぶ近代化されたと伝え聞く。育児休暇のあと復帰した際に巻き込まれた Git to Monorepo の移行プロジェクトに伴いチームの空気が悪くなり、いたたまれなさが限度を超え逃げ出した。

評価: 欲をいえばウェブからモバイルに寝返る勢いでもっとでかくて勢いのあるチームでバリバリ働く道を選べばよかった気もするが、現実的にはこういうプロプリエタリなコードを書く小さなチームでオープンソースや超大規模開発からの禊をするのはリハビリとしてよかったと思う。新しいチームを決める前ににいくつかのチームの話を聞けばよかったかもしれないが、そんなに候補もなかった記憶。チームの空気が悪くなったのは残念だったけれど、結果的にみるとリハビリを切り上げるにはいいタイミングだった。

そのつぎが今いるカメラアプリ。もう二年くらいやってる。これについては繰り返し書いているので割愛。総合的には割といい判断だったとおもっている。

A Long Reflection 2019 (0) - Looking Back

|

一年を振り返る季節だが、とくにかわりばえのしない一年だったというと言い過ぎだけれども仕事的には去年と似たようなもんだし来年も似たようもんであることが予想されるので、今年は趣向を変えて自分の職業生活をはじめの方からふりかえって評価してみる。特に転職等の大きな判断の良し悪しを遠くから見直したい。何年かに一回書いている内容。

ダラダラ書いていたらだいぶ長くなったので分割した。目次:

話がそれ過ぎたのでこれとは別に今年の反省をすべきな気がしてきたが、それはまたあとで。

Fragments #35

|

2019-12-15 (Sun)

  • 今朝見た夢: 夫婦の仲が良かった時期を再現しようとする年老いた自分は Middle-earth で Google I/O を開催すべく地下世界への洞窟に潜る。たどり着いた約束の地で monorepo の打ち棄てられたディレクトリを辿りながら資料を探していると、遠くの方でみたこともないほど巨大なドラゴンの歩く姿見えて戦慄する。
  • クリスマスパーティを二軒はしご。会社のともだちが開催したほうは、参加者たちから羽振りのよさが伝わってきてため息。

2019-12-14 (Sat)

  • 年内は PT 中断して考え事に費やしたい気分。
  • 健康が回復しているので扁桃腺写真を比べてみると・・・腫れてない・・・きがする。口蓋垂は腫れている気がするが。

2019-12-13 (Fri)

  • 写真習慣化プロジェクト、平日はマジ banal で撮るものねーとおもっていたが、どうでもいい日常も timelapse にすると割と楽しいのに気づいた。しかしビデオをとってもミラーレスを買う練習にはなってない感。写真はともかくビデオはスマホじゃないと無理。あとから加工とかしない。
  • Xbox Series X: Microsoft’s next Xbox console for 2020 - The Verge 無闇にかっこいい!

2019-12-12 (Thu)

  • 奥様風邪のため半日休んでプレスクールイベント代行、のはずだったが諸事情から夫婦で参加となった。イベント後に色々 mess up してしまい結局 WFH に移行。疲弊。自宅の WFH 環境を整えないと厳しい。バグのトリアージくらいはできるようにしたい。要大画面。
    • 仕事も使用も会社支給の一台の laptop で済ませられると色々ラクで、10 年くらい前はそれも実際まあまあ可能だったのだが、仮想化技術の発展とセキュリティの厳格化という相反する進歩によって可能性は引き裂かれたのだった。まあおまえ家でやることなんて blog と colab なんだからできるじゃん、といわれるとそうだけど、Docker つついたり AndroidStudio つかったりしたいじゃん。あと会社一番人気 Macbook Pro をあんまし使いたくないせいで良いラップトップがないせいでもある。
  • A Long Reflection 2019 (0) – Looking Back

2019-12-11 (Wed)

  • 今朝見た夢: コンピュータが人体表面の微細電流を読み取れる事実を悪用し、ウェブサイトが個人を fingerprint できるという脆弱性がみつかる。Intel の研究者が書いた mitigation の論文が電車の窓から見えるビルの壁面に広告として貼られている。自分は向かいの席にすわる高校生カップルにそれを読んで説明してやる必要があるのだが、そんな生物学みたいな話ぜんぜんわかんねーよ、と途方にくれている。
  • ソーシャルメディアをドメイン名で検索したところ誰一人ブログの更新に気づいた様子はなく、完全な dark launch (誤用) に成功した模様。インターネットから消えた自分に寂しさはあるが、友人以外誰も読んでない(お手紙は正しい相手に届いている)事実を再確認できたのはよかった。
  • 玄米と雑穀米に適応した結果、たまに白米を食べると味がない・・・というといいすぎるけど、なんか風味が退屈に感じる。
  • Android Developers Blog: Code Search with Cross References for the Android Open Source Project 出たよと教わる。Blame layer があるのがよい。自分はしょっちゅう社内のコードサーチで Android のコードを読んでいるけれど、こっちの方が出来がよさそう。
  • The Best Bidet Toilet Seat or Washlet for 2019: Reviews by Wirecutter 記事の存在に笑いをこらえきれない。

2019-12-10 (Tue)

  • 準備ができたのでブログの差分を push. 年明けまでほっとこうかとおもったけれど、手元においておいてトラブルがあってもやだし push したら continuously に deliver されてしまうし、そもそもいつだしても大差ない内容だし。
    • Travis を使った push, 盲点は CloudFront のキャッシュを invalidate しないといけないことだった。(HTTPS 化に伴い CloudFront を挟むようになっていた。) TTL によれば一日待つとどのみち更新されそうだけれど、ちゃんと動いてるのを確認したいからね。
    • create-invalidation — AWS CLI 1.16.299 Command Reference で自動化できそうではある。あとでやろう。
    • JS いじりの成果はどうかとスマホから見てみると、満足いく速さになっていた。よしよし。テキストだけのサイトはこのくらい軽くあるべし。といっても 500ms とかなのでもうちょっとなんとかならんのか感は否めない。
  • どこからともなく現れた性能おたすけ団のパッチをレビューしているのだがこのコードはちょっと・・・いったい君は誰なんだと社内名簿を見るとわりかし入ったばかりの人だった。無茶ぶりマネージャにあたってしまって可哀想・・・。心を改め優しめのフィードバックをする。しかし人を突っ込めばいいってもんじゃねえんだぞ。人月の神話読んだの?
  • 超えてはいけないと考える人もいる一線すなわち Amazon Essential で衣類を買う(パジャマ。)割と良い。
    • Amazon Essential のページを見て思うことととして、コモディティ Amazon 製品には圧倒的な強みがある。すなわちレビューがチートしてないという安心感。有名ブランドとかはまあチートしないだろうという期待がある。しかし価格で戦ってる連中の中でそう信じられる売り手は少なく、結果として Amazon Essential の credential が際立つのだった。肉を切らせて骨を断つとでもいおうか・・・。
  • Wunderlist, ついに shutdown の日取りが決まったらしい。なお一足先に Hangout したはずの Hangout は FB Messenger に移行した。いっそ TODO アプリも Facebook が作ってくれないかなー。MS TODO 悪くないんだけど、MS アカウントというのが色々と取り回しが不自由すぎるのだよ・・・。Google アカウントでのログインを求める声があるが・・・ほんとにそれやったら MS 評価はまた 10 段階くらい上がることでしょう。
  • ウイルス性胃腸炎、子の流れ弾が奥様に被弾。自分も時間の問題だなこれ・・・。

2019-12-09 (Mon)

  • 昨日と今日で anemone.dodgson.org 公開の準備おおむね完了。今年6月まで。
    • やったことは、WP からのインポートスクリプトの更新。Letters/Fragments 制度の導入にあわせてフィルタを直す。あと zip を展開した XML からインポートするつくりだったが、コンテンツが増えて XML が複数生成されるようになったのにあわせ zip から直接読むようにするなど。日付のフィルタは WP 側でできるので自分が書く必要はなかった。
    • コンテンツの直し。主に URL に日本語が入ってる記事にアルファベットのみの slug を与える作業。眺めていると細かい誤字脱字がぼちぼちあるが、どうするかなー・・・うかつ発言の検閲作業も兼ねて一通り眺め、気がついた範囲で直そうかね。けっこう量があるのが難。
    • Theme もちょっとなおす。Git submodule になっているのがかったるい・・・。
    • JS 遅いのをなんとかしたいと思ってプロファイル結果を睨んだところ、一番のガンは password manager が inject する JS だった。こいつはほんとに隅から隅まで出来が悪くてウンザリ。もうちょっと出来が良いと評判なやつに乗り換えたいと思っているが腰が重くてやってない。ただ JS の inject が必要なのは Chrome に API がないせいな気もするので、あいつらはちゃんと API を生やすべき。Android を見習え!Android Chrome のパスワードマネージャ機能はしょっちゅう壊れているが・・・。
    • プロファイルを睨んで学んだことそのにとしては、最近(じゃない気もするが)はFirst Meaningful Paint という指標があるらしい。プロファイラはこの指標のタイミングを表示してくるのだが・・・何を根拠にそこが meaningful だと主張しているのかナゾ。Android には reportFullyDrawn() という同等メトリクスを報告する仕組みがある一方、ログに一行時間が表示されるだけというカスのような機能しかなく有り難み 0.01 くらいなのだった。といいつつ最近はこの指標をベンチマークに使っているのだが・・・。
    • まあとにかく、検閲作業をしたあと公開といたしましょう。
  • 雨があがったので一週間ぶりにスクータ。ストップウォッチしつつチンタラ漕いだつもりが記録更新で、道路の混雑具合が全てと学ぶ。
  • 今日から一週間 hackathon, なのだが、よそのチームからのレビューは容赦なくやってくるのだった。

Book: Competing with Unicorns

|

Competing with Unicorns: How the World’s Best Companies Ship Software and Work Differently by Jonathan Rasmusson | The Pragmatic Bookshelf

人気の Agile 入門書 The Agile Samurai の著者が自分の Spotify での体験をもとに "Unicorn" ... いわゆるテック企業、インターネット企業を指す用語として使っている ... の働き方をエンタープライズな読者に説く、という内容。なのだが、だいぶどうでもよかった。

目次を見るとわかるとおり、割と総花的である。薄い本 (150p. 薄いのは良い)なので個々の踏み込みが甘いというか、全然踏み込まない。そして切り口に方法論として軸がない。テック企業の働き方というのは資産(出資金にせよ利益にせよ)があるからできる博打の一部という面もあるわけで、方法論というよりは俺たちがカネののちからでやってることをおまいらもやるといいよ、みたいな話がぼちぼち入り込んでいる。そうでない話題もあるが、そういう話題と混ざってるせいで台無し。

Unicorn (インターネット企業) というくくりも雑すぎる。大企業とスタートアップじゃずいぶん違うでしょうに。そしてスタートアップの方法論というのはここ 5-10 年くらいでだいぶ文書化されたから、この本に新しいところはないように思える。一方の大企業ウェイというのは規模の制約を規模の力でねじ伏せる別のゲームをやっているわけで、スタートアップとは同列に議論できないし真似しないほうがよいものも多い。

偏見だけど, Agile 信者がテック企業に入ったら Kool-Aid でやられてしまったのだな・・・という印象。自分も似たような部分があるのである種の共感がなくはないが、Agile Samurai はもうちょっとマシな内容だった記憶があるだけにがっかり。自分が悲しく汚れちまっただけななのだろうか。

Spotify 固有の部分は半分ゴシップ、半分ケーススタディとして興味深く読んだ。無理に一般化しようとせず What I Learned At Spotify みたいな本にすればよかったのにね。


がっかりの反動で唐突に Eric Ries の The Startup Way を聞き始める。同じくエンタープライズにスタートアップ方法論を売り込む話なのだが・・・この本はいいね。

The Lean Startup は Pivot だの MVP だのを流行らせ growth hack や startup methodology の先駆けになった。そういう movement を生み出しただけあって、Eric Ries の話は説得力があるし、理論もよく整理されている。語り口も良い。この本自体はさすがに三番煎じくらいで新しい話が少ないのかあまり売れなかったようだが、個人的に Eric Ries は割と影響を受けているのもあり、久しぶりに話を聞くと気分が盛り上がる。宗教家としての格の違いを感じる。なお Audio book は Eric Ries 自ら narrate している。さすが教祖。

スタートアップ論には方法論も精神論もあるわけだけれど、unicorns の皆さんと compete しようと思うなら 150 ページの薄い本を読むよりはこの Amazon で The Startup Way の関連書籍に並んでいるような奴らを順番に読んでいく方がいいのではないかなあ。

自分はその手の本には若干食傷気味かつ他人事なので足が遠のいていたが、来年は教養/気分転換/ドヤ顔素材としてもうちょっと聴いてもいいかもしれない。

Fragments #34

|

2019-12-08 (Sun)

  • At Starbucks.

2019-12-06 (Fri)

  • 風邪、喉いがいはだいがい復調。月曜からだから、発症から回復まで 4-5 日かかるかんじ。喉の復調にはもう一週間必要。
  • The Advice I Gave My Students - Study Hacks - Cal Newport "Use your smartphone only for the following activities: calls, text messages, maps, and audio (songs/podcasts/books)." カメラはダメかい・・・?
    • 自分は書籍と Podcast 以外のひまつぶしアプリは NYTimes しか入れていないが、結局ブラウザがあると台無しなのだよね。一時期ブラウザを殺していたこともあったが、今度はサーチが使い物にならないため諦めた・・・が、ふたたび試してみていいかもしれないと思い直し Wellbeing で Chrome 予算を 20 min に設定。NYTimes はまあ、いいです。新聞読むくらい許してくれ。
    • Intent で受け取ったサイトだけを表示し一切のナビゲーションを許さない WebView アプリみたいのが必要に思える。普通にブラウザとして使うと相当ウザそうだが普通にブラウザ使いたくない人むけの道具だと思うとまあいいのでは?ムダ?
  • 「コンパイラのバグ」で写真が壊れるレアな事例を目的する。コンパイラ、アプリにくらべたらバグないけれど、トランクについていくとさすがにぼちぼち壊れる模様。問題の変更は upstream ではすぐに修正され、新しい trunk を pull して事なきを得たっぽい。Pull する仕事の人は大変だね。
  • 給与改定。インフレ分くらいはあがったぞ!家賃の上昇カーブよりは緩いがそれは俺のせいじゃねー案件。引っ越してきたあたりから増え続けて恐ろしかった株の割合、グラフを眺めた感じここ 1-2 年で落ち着いた模様。偉くなるとまた違うらしいが。
  • Jupyter に %%javascript という magic があるのを知ったので早速 Colab で alert("hello") してみたところ、おまいの環境は sandboxed ですとエラー。なるほど・・・。
    • なお自分が知りたかったのは magic ではなく special variable だった。すなわち "_" で一つ前の cell の結果。_<n> もすばらしい。読んでよかったマニュアル。
  • React Conf 2019 - YouTube 楽しくやってんなー.
  • [1912.01703] PyTorch: An Imperative Style, High-Performance Deep Learning Library 特に目新しい話はなさそうだが、どうやって trace とれるのかは気になる。
  • o11ycon2018 - YouTube Honeycomb の blog は読まねばと思っていたが、こんなカンファレンスもしたのか。読もうとしていたブログシリーズリンク: Instrumentation: A Series - Honeycomb

2019-12-05 (Thu)

  • 風邪、ピークは過ぎて喉以外はだいじょうぶっぽいので出勤。しかしこんどは子の風邪が悪化・・・。季節が来てしまった。
  • Preferred Networks、深層学習の研究開発基盤をPyTorchに移行 | 株式会社Preferred Networks Chainer が終了し PyTorch 移行と伝え聞く。この切替のはやさが今時の企業であることよ。自社製品とともに滅びるのは平成でおわり。しかし勤務先は平成の会社なので心配。
  • 夜、腹が痛いと子が泣くので念のため病院へ。Stomach flu とのこと。やはり・・・ウイルス性胃腸炎、だいたい親に感染して cascading hell になりがちなので気をつけたい・・・があまり気をつけられることもない。
    • Urgent Care にかかるとき数百ドル(推定)を躊躇せずにすむのは払いのいい仕事のおかげなので、やはり収入を削って新しい仕事に挑戦とか親としてナシだな・・・という気分。cf. Why So Many Hospitals Are Suing Their Patients
    • 医者の問診を躊躇するほど医療費が高いのはどうかと思う一方、でその financial bar が wait-time free を支えているのも事実に思え、社会の善と自分の都合はしばしば両立しない。まあ医療費さがって病院混んでもいいですよ社会が平和になるならね・・・。
    • ところで保険があっても医療費高いとおもうんだけど、Medicare For All ってその問題は全然解決しないよね?ほんとに private insurance の問題なの?なぞ。

2019-12-04 (Wed)

  • 引き続き風邪で欠勤。喉を覗いてみるが、扁桃腺が腫れているのかはよくわらない。写真をとっておき、健康なときの snapshot と比べよう。
  • Book: Competing with Unicorns

9-12-03 (Tue)

  • Opinion: We need to know what happened to CRISPR twins Lulu and Nana - MIT Technology Review 長期的 (1000 年とか) にみると人類が gene editing をやらずに我慢できる気はまったくしないが、序盤はこの論文にあるように impossibly unenthical なので unpublished でどっかの dictatorship regime なり billionare foundation なりがこっそりすすめるのだろうね。
  • 風邪で欠勤。ここで悩まず休めるシーズンオフであることよ。
  • Raw Data という podcast を少し前にみつけて気に入っていたのだが・・・終わってしまった!かなしい。やはりがんばって作っている番組は永遠に続けるのが難しいのだろうなあ。In a meantime, Special Episode: The Jungle Prince - The New York Times が面白い。ちまちま聴いている。
  • A letter from Larry and Sergey 姿をみなくなってしばらくたつ。もう事実上の引退なのだろうなとおもっていたが、正式に引退となった。TGIF もなくなって創業者も引退して、物悲しい会社員の年の瀬なり。
    • L 氏は社長としてはだいぶ残念なかんじだったので、実務家の S 氏が引き取ったのも無理はない感じはしていた。だから創業者ががんばっていれば会社が今のようにぱっとしなくなることもなかった、とは思わない。一方でいまの「雇われ社長」体制が機能しているのかというと、どうかね。会社が傾いて社長交代になったのではないだけに、前の社長はここがダメだったら俺はこうするぞ、みたいなことを言えない難しさはあるのではないか。それは Cuppertino の T 社長も同じかもしれないが・・・。
    • そろそろ何かが大きく変わらないといけない気がするが、そうした気配はない。どうなんのかね。
    • At Annual Snapdragon Tech Summit Qualcomm Unveils Roadmap for Bringing 5G Mainstream in 2020 | Qualcomm なにひとつわからない・・・。

2019-12-02 (Mon)

  • 休暇の脂肪を落とすため、年内は勤務中断食とす。(社交はのぞく。)
  • 来年のプレスクール学期 (9 月開始) の申し込みが始まる、というのでゆこっぷ(奥様)に申し込んでもらう。その学校は学費が高いのをさておくと良いところなので、うっかりあぶれないようにしたい。
  • Coursera の宣伝メール。ふと気が向いたので最近のコース事情を眺めていたら UPenn の Foundations of Positive Psychology というクラスがあった。Upenn といえば・・・と記述を眺めると "Grit" の Angela Duckworth と "Leaned Optimism" の Martin E.P. Seligman がいる!すごい!Upenn, 気づいてなかったけどモダン根性論のメッカだったのか。そして自分が「モダン根性論」と読んでいた自己啓発の系譜は "Positive Psychology" だったのか・・・。(大学のサイト)
  • Google is killing Google Cloud Print | Ars Technica なんかの誤読でしょ、とおもってスルーしていたがプリンタがほしいので読み直すと・・・。ほんとに?どうしたらいいかわからないのだが・・・。もうプリンタの設定とかできないよ・・・。たとえばこの HP のプリンタを買ったとする。どうしたらプリンタ使えるようになるの?ドライバとかないでしょ・・・。そしてエンタープライズ向けの機能なら殺されまい、という期待も失われた・・・ありえん・・・。Google Fi もないわという気になるのではなかろうか人々。
  • Google AI Blog: Astrophotography with Night Sight on Pixel Phones Night sight paper! HDR+ となんか違うんだろうか・・・とみると、けっこうちがうっぽいな。こういうクール機能の UI とかを手伝って謝辞に名前を滑り込ませたいものである。なお論文は印刷しようとしたらでかすぎるのかプリンタが根を上げた。
  • 電話機、新しい OS の (major) version すなわち master 的なやつ、が dogfood に降ってきた。案の定色々壊れている。やはり二台体制が正解だな・・・。
  • 風邪っぽい。寝る。