元CTOが2018年を落ち着いて振り返ってみる

ダイジェストは既にトゥートとかで書いてるんだけど、改めてちょっと今年一年を振り返ってみる。
ぶっちゃけ、技術ではない気がする。
技術は、細かい話が色々ありすぎるし、細々とありふれた内容が多いんだよな…
言えない話題とかも多くて、すごく事業と関係ない感じの話が多くなってしまった。
この記事の中で技術っぽいのは、メトリックとかその辺の話かなあ。

今年の新しい試みなど(結果的なものも含み)

  • 子どもが産まれた
  • 正社員を自分で直接採用した
  • インペリアル・カレッジ・ロンドンと提携してインターンを実施した(大袈裟)
  • AWS Summit Tokyoのスタートアップエリアで登壇した
  • 自分たちの作った会社が解散した(事業譲渡)
  • その他の細々とした試み…CDN風のサーバーをGWANで建てたりするなど
  • 久しぶりにSNSに時間を使ってみた
  • 中途半端に真面目な記事を書いたら中途半端に受けた

今年は、明らかに採用をしないといけない事が分かっていたのと、従来のインターン採用には色々な意味で(当初から分かっていた)限界があるのも知っていたので、初頭から正社員採用をしようとしていた。一方で、出資を受けた子会社ではあったけど、組織的には親会社との統合に向けて進んでいたので、本当にインフル(旧社名)で採用を進めるのか?というような色々な思いがあった。

というようなことを、1月から順に振り返ってみる。

1月

何がきっかけだったのか、半群の表現論とかに興味が湧いて、半群の表現を作ったりして、久しぶりに真面目に数学を考えたりした。なつかしさを感じて、本当に先生に聞いてみようかなと思っていたけど、結局仕事が忙しいなーと思って聞かなかった。
いきなり数学で、業務と関係ない。

某媒体の話を聞いて、とりあえず正社員採用を載せてみたけど、驚くほど閲覧がなかった。

子どもができたのがわかったのも1月だった。
仕事は、相変わらず業務WEBアプリの方が多かった。
自動車学校に行くインターン生がいて、その期間はフルリモートで作業を依頼した。特に問題はなかった。
あと、インペリアル・カレッジ・ロンドンでインターンをしてくれた人が、学校の正規プログラムで6ヶ月受入してほしいという話をしてくれた。これはとても嬉しかった。
以降、4月まで大学当局とメールでやり取りをしたりすることになった。

2月

100事業100億円、とか会社のスローガンを改めて共有したりしていた。
並行して、インターン採用を再開して、それまでと同じように、あっという間にたくさん集まった。
インターン採用は再現性が非常に高くて、時期とかほとんど関係ないんだな、と思ったりした。海外大学生の応募が多い時期とかは、限られているとは思うんだけど。
やっぱりたくさんの良い人達と面接をして、まー落とさなきゃいけないのってほんとつらいなーと思ったりした。そもそも仕事なんて、本来は誰でもできるべきことで、人を選ぶというのはおかしい。まー今言っても、それは建前にしかならないんだけど、せっかく興味を持ってやりたいという意思で来てくれてる人に、冷たい水をかけるのはううーんという感じがある。その辺が、お金を払うか貰うかの違いだなーと改めて思ったりした。

あと、Qiitadonをはじめた。
当時、ポエムに関する記述が色々流行っていて、ポエム問題はそもそもQiita:Teamとかでポエム推奨してるからなんだよなー、というのをもうちょっと広げたかったというのがあった。
ただ、当時のQiitadonは懐かしい話題が多くて、あと、私がSIerで経験してた理不尽に苦しみながらなんとかしている人がいて、主に懐かしさによって結構居着いてしまった。

3月

2月に集めた人たちの勤務がはじまった。まーいつもどおりの感触。
一人、結構とんでもない人がいて、私がべらべらと口で説明をしたら、それをまるっと理解してしまうような人がいた。
面接の時は、まー多少ふわふわしてるのかもなーぐらいだったけど、ふわふわしてるけどとんでもなく飲み込み良いなーとびっくりしてしまった。
こういうのがあると、色々つらい事があっても面白いよね。
いつか機会があったら、父親にあわせてみたいなーと思った(そしてそれは9月に実現した。)

ここから5月ぐらいまでは、とにかく忙しかった。データ分析、業務アプリ、自社サービス、請求、運用サポート、勤怠管理、だいたい社長業と営業業務以外をやってた。
会社の経営的な意味で、まー私一人でやれることも限界があってボロボロ抜けて来そうだから、体制を一新したいなーと考えて、そういう方向に動き始めた。
あと、去年の5月にインターンをはじめて、本当の意味で卒業して就職をする人が発生した。
彼は本当によく仕事ができる人だった。
すごく端的に言うと、いまだに「何も言ってないけど自主的にWBSを作って提出する」という行動を見たことは無い。形骸化したWBSだともちろん意味が無いんだけど、彼は自分で考えて、今後の自分の仕事も見据えて何が必要かを考えた上で、仕事ができる人だった。

4月

あんまり3月と状況は変わらなかったけど、会社を作ってしばらくして、結局最近話してないなーとなって、役員だけで話をする機会を持ったりした。
あと、私がバグってて受入が思ったより早かったので、それで工数が埋まったという紙一重劇場みたいなこともあった。
ほんと4月9日から勤務はじまってよかった。。
正直、詳しくはあんまり覚えてない。

5月

色々と大事な業務が遅滞しつつあって、色々と謝りながら、開発以外の業務を出せるようにした。
あと、そのへんの業務が親子で微妙に分割されているのは不健全だったので、我々が作った会社の方は将来的には解散する方針を決めて、事業譲渡・組織合併の方向で動き始めた。
それに合わせて、一部の主力でないサービスの注力度合を下げたりするために、インターン生の人数を減らすことになった。これも本当に申し訳なかった。自分の能力の無さを悲しんだけど、まー悲しみ続けても仕事ができないので、がんばるかーと思ってがんばった。

一方で、AWS Summit Tokyoに関してAWSの方からお声掛けを頂き、スタートアップ枠で会場の廊下(?)的な場所で登壇する機会を頂いた。これ、正式名称がかなり不明な上に、ネットでもあまり情報が出てなくて、私は最後までドッキリの可能性を疑っていて、現地のバイトの人からも「そんなものはない」的な扱いを若干受けたんだけど、ドッキリではなかった。3回同じ内容を喋った。

あと引っ越しした。引っ越しは妻主導で、妻の多大な貢献によって行われたので、私のコントリビューションはほとんどなく、初日はなんと家の建物を間違えた。建物レベルで。深夜に。
全然関係ない建物の、うちと同じ部屋番号の人、ごめんなさい。あの時はすみませんでした。
当時のトゥート、まだ残ってる(はず)

6月

決まった方針に従って粛々と動きながら、仕事を続けた。
Qiita/Qiitadonのファンミーティングに参加した。やっぱり若年層向けのサービスなんだなと思った。
割といつもの業務という感じだった。
この前後ぐらいに、PaizaのSランク10分で解くチャレンジをしていた気がする。行き帰りの電車とかで。
帰りの電車だと、だいぶ死んでるんだなという事が改めて分かる感じではあった。

7月

会社的な意味で転籍した。ただサービスの案件は順調に増え、所属が変わっただけで作業は全く何一つ変わらず、指揮系統も何一つ変わらなかった。良い環境を与えられた。感謝するしかない。

この頃から、インターンの人がハッカソンに参加するという流れが生じた。うれしい。
私個人は、結局業務でギブアップしたりしてハッカソンに向いてないなと思いつつ、内部でそういう流れが出来るのはとても嬉しかった。
あと、Qiitadonでちょっと伸びた話題を少しだけまとめて記事にしたら、微妙に話題になった。なるほどー、と思った。(マーケティング的な意味で)

あと、徳丸本の勉強会もはじまった。私自身は発表はしないつもりだけど、できるだけ人を集めたいなという気持ちだけはある。(あった。)

8月

子どもが産まれる日が近づいてきた。
私は兄弟が多かったし、一番下は自分の高校受験の直前とかに産まれたので、子どもの扱いに変な恐怖は無かった。ただ、両親教室とかに行っていかに自分が落ち着きのない人間であったかということを目の当たりにしてしまい、色々気をつけないとなーと思ったりした。
私は結構疲弊しがちで、休日に外出かけるのとかほんとに無理というか、疲れて寝込んだりする(別に病気ではなくて単に眠るだけ)んだけど、そういうので子供の物品購入を後回しにした結果、色々とお怒りの言葉を頂いたりする。
あと、購入しに行くと、そういえば自分が割とクラスで一番ぐらいには敏感肌だったなということを思い出し、とにかく綿だけで揃えようとして、少し苦しむ。

※いまだに、娘が敏感肌なのかどうかはわからないんだけど、しかしステロイドの薬とかを使わないと膿んで結構すごい事になるぐらいには皮膚の問題を抱えているので、まー綿以外はやっぱり避けた方がいいんだろうなという感じ。

仕事はいつもどおり。

インターンの人がハッカソンに出て、そのハッカソンはメンバーが分割されたんだけど、そこでは他のエンジニアの人はあまり手を動かさないタイプの人たちが多くて、みんな社会のSIerの現実みたいなものを目の当たりにしていた。感想を聞くと色々面白かった。手を動かさない人が多くを占めるハッカソンなんてイギリスでは見たことなかった、と。そうだろうなー。(メンバーみんな日本人だったけど、大学がそれぞれイギリス、イギリス、東大→ドイツの3人だった)

9月

インターンの人の元々の卒業期日を迎えて、一人二人と減っていきながらも、子供の予定日がやってきた。
まー産まれて来ないので、陣痛促進剤を開始するんだけど、そうすると前駆陣痛的なものでとても痛いらしい。
3日間、朝から晩までただひたすらマッサージだけを行って暮らした。
4日目に根負けして、帝王切開になったんだけど、まー子供だけいきなり病室にやってくるんだよね。いやーびびるよ。いや、その子供置いてくのはいいけど、泣いたらどうしたらいいんだよ的な。泣かなかったんだけど。さすがに産まれた1日目の子供を抱いたことはなかったので、やばこわ。でも初日から2回ほど寝かしつけた。
この関係で、ほぼ1週間会社に行かないというイベントを経験したんだけど、全く普通に仕事ができて、これなら人を増やしてもスケールする体制作れるな、と思ったりした。

あと、少しさかのぼって、産まれて来ない間に私の実父が子供の顔を見るために田舎からやってきていて、まー産まれてないので当然見れないんだけど、せっかくなのでインターンの人と色々話をしてもらった。これは、私も知らない父の半生みたいなのを聞けたので、家庭の時間としても良かったのだけど、多分お互い色々刺激的だったのではなかろうか。
なんせ、適当な居酒屋に入って、2時間ぐらい何も注文無しで話し続けてたからな、、、

そのちょっと後、子供が産まれる直前、インターンの人たちのお別れ会(?)に付き合ってオールで渋谷で遊んだりもしていた。

からの、正社員採用の面接実施。Qiitadonで会社の別事業とか諸々トゥートしたら、それが引っかかった感じ。
これは運が良かった。運が良かったんだけど、でも、それなりの時間を費やした結果ではあったので、やはり事は起こるべくして起こる、という事を思った。

10月

それまであんまりコードレビューしてなかった案件があって、その案件からインターン生をスイッチしてコードを見ると、良くない習慣を身に着けさせてしまった、と思ってつらくなった。
やはり教育というのはちゃんとしないといけない。
その案件は、既に他社の書いたダメなコードの海が広がっていたんだけど、それでだいぶ悪習を身に着けていて、割と落ち込む。みんなの地力に頼るようなことばかりしていて、本当にインターンとして価値のある経験を提供できてたのかとか、色々考える事はあるんだけど、相対的に高額(少なくとも募集媒体の中では当時最高額)であったのは間違いないので、それで許してもらいたい。
ただ、出来てないのは出来てないので、やっぱり人数多少減らしてでもちゃんと自分で見て教えないといけないな、という事を反省する。それからは、見る量を増やすようにはしている。サービスが大きくなってきて、エラーが致命的になり得るようになったのもあるけど。

並行して正社員採用が確定する。うれしい。

11月

メトリックを出すことにちょっとはまる。
去年から作っているサービスのコード量の増大線が、あまりに綺麗だったから。
(詳細は【高速開発】開発環境のバグをチームSlackに垂れ流してノンストップ開発を参照)

トゥートとかで過去にこんな考察をしていた:

色々思い立って他のリポジトリでもgitstatsを見てるんだけど、まー言語で変わるし単純な量で比較をしても難しい部分はあるという前提で、私の月産コード量が他に仕事してない場合で2~3万行ぐらいなんだろうな。
インターンの優秀な人たちが月100~150コミットぐらいで、フルタイム換算の月産コード量が1~2万行ぐらいかな(テトリス1~2日)
この人達がだいたいPaizaでS~ぐらい。
業務委託分コードがフルタイム月産2000~5000行ぐらいかなという印象で、この2000~5000行が感触的には多分PaizaランクでB~Aぐらい(テトリス1週間~2週間ぐらい)
ざっくりとは比例に近い関係があるなーという感じ。

※ただし、品質や機能性、難易度などは必ずしも量そのものに反映される訳ではなく、例えば移送処理を長く書こうと思えば長く書ける…私は原則としてコードは短ければ短いほど良いという主義

書くコードの量に関しては、営業日フルタイムの前提にすると、たぶん私はインターンの人と大きく変わらない…これは知識とか反復作業の慣れを除くと、筋力みたいな身体的能力に近いものかなーと思うので、むしろ若いほうが有利な部分もあるはず。
コードのバグの少なさ(作業精度)とかは差がある印象(私が社会人になってから特に学んだと思っている部分でもある)

別の方向からの検算…
ざっくり1画面1人月らしいんだけど、システム開発の作業全体を100%として、設計~開発~統合テストを60%と考える時、設計・統合テスト抜きの部分の量を仮に全体の40%とすると、3500*0.4 = 1400となる。
HTML/サーバー側処理/単体テストコードとかを含めると、少し重めの画面としてはまーそんなもんなのかなという感じはある(マスタ系の画面とかだと、modelとformの定義だけでほぼ終わる場合もあるので、全部込みで100行あれば十分ということもあるんだけど)

完全に先天的なものではないと思うんだけど、プログラミングができる量というのは、かなり個人差があるというか、俗にいう才能的な要素がやはり強いよなあと思ったりする。(ただし、それが全てであるとは思っておらず、多少書くのが遅くても、むしろ書くのが遅いからこそ気づく課題や実装できる機能、サービスというのもあると思う…プログラミングが楽しい人ばかりだと、何らかの外圧がない限り、あまり作業時間を短縮したいと思わない場合がありえるように(実際そうだとは言っていない))

Paizaで採用を積極的にやるようになって、応募が結構くる。
メトリックの話とも微妙に関連するけど、インターンの面接でやってたテトリス話、Paizaの成績と結構相関があって、ある程度の仮説ができた。

Paizaの問題は、読んだ時に全く解答の検討がつかない感じだと、多分時間をかけても解けないので「調べる」という初手になると思われる。
それは、おそらくテトリスでも同じ事が言える。
もうちょっと掘り下げて、テトリスを作るときの課題(?)って
・データ保持方法
・回転、移動
・ブロックの固定
・ライン消去
・乱数
みたいな感じでいくつかの要素があるけど、それらの組み合わせが、多分A~Sランクの問題4~5個分+デバッグぐらいのステップになるんだろうなと思っていて、ざっくりと見た時にどれぐらいになるか?というのが、それぞれの問題を解く時間に比例する傾向があるのかな、という感じ。

その意味では、そこそこ相関ありそうで、かつ、単にSランク解けた/解いてないという情報よりは、テトリスについて質問した上で突っ込んで聞いた方がどの辺苦手だと思ってるのかとかはわかる。

という考察によると、改めて機能性のある良い質問だったんだな、と思ったりした。考察は完全後付だけど。

業務アプリとかを作る時に、これが絶対的な尺度だとは思っていないんだけど、一つのタスクをこなすスピード感を評価する目安としては機能すると思う。

あと、開発チームのメンバーが、採用した人以外にもテスト関係で一人増えた。それまで、私のシャイなキャラクターによって開発は静かだったんだけど、急に賑やかになってしまった。まあ和やかで良いんじゃないかな。雑談時間が30分ぐらいあるけど…

12月

ソフトバンクの大規模障害の余波で、ネットがやばい時でも色々サービスを継続するために尽力することになった。
直近の最大の課題がこれで、なかなか大変だけど、まーやれば強みになるからやるしかないなーという感じ。
忘年会で、改めて今別の人達が作っている新サービスの方のテコ入れをしないといけないなとか、そんな真面目な話をしたりする。
開発のメンバーもう一人増えたりして、引き続き増やしたいなという感じ。あとうちのチームだけで最低2人は必要…

あとは、お食い初めとかそういうイベントがありつつ、Qiitadonの忘年会とかがあった。隠れQiitadon民だったので妻も呼んだりした。採用した正社員が、とにかくキャラの濃さを発揮していた。

ちょっとした反省

なんだかんだ自分の仕事が溢れてしまうのが、もうちょっと良いやり方あるだろう、という感じはあって、その辺結局あんまり思うことを言えてないんだなというのはある。まーこれは人生の課題だと思うから、ちょっとずつうまく喋れるようになっていくかな、という感じ。

自分一人では、決して今の状態には至っていなかったから、その意味で会社を作ったのは良かったことだと思っていて、それがずっと良かったと言い続けられるように、恩返しはしていく必要がある。
自分の人生を振り返って、恩返しをしないといけない人に対してあまり恩返しをしていない事が多くて、貰うばかりの人生という感じではあるので、その辺がんばらないといけない。
あと、来年は今以上に組織をしっかりと作りつつ、人を増やさないといけない。
給与とか、もう今まで触れたくなかった分野に、しっかり関わる必要があるのかなと思ったりしている。
もう一つ課題は、妻が復職すると仕事調整しないといけないので、そのへん。
子供が産まれる前後のやり取りを経て、まあやり方はあるだろうなと思ってるんだけど、相談とかそのへんに絡むストレスの対応とか、そっちが課題だな。

まーしかしあれだな、つらつらと試しに書いてみても、その時の気分で微妙に切り口が変わっていて、反省の内容が最も根本的な部分以外は結構かわるなー。

むすび

がんばろう!