サンフランシスコに引っ越した


Photograph Market Street by Kengo Hamasaki on 500px

アメリカに居を移してからずっと暮らしていたベルモント(サンマテオより南、パロアルトよりは北のあまり知られないがOracleのHQがある駅)の3ベッドルームの部屋が賃上げで$4,000/mo越えを宣告されたところでルームメイト3人の解散が確実となり、どこかへ移る必要に差し迫られていたが、よくもまあ家賃がおかしくなっている中心地に越したものだ。

クリエイティブ都市論という本を @snoozer05 に勧めてもらってから、ちょっとこの郊外で暮らすのはベイエリアに居て勿体ないんじゃないかと思うようになったのと、"シティ"も"バレー"もどちらも味わってからどっちが良かったっていうのを言いたいなと考えた結果、サンフランシスコど真ん中で部屋を探すに至った。

クリエイティブ都市論―創造性は居心地のよい場所を求める

クリエイティブ都市論―創造性は居心地のよい場所を求める


まあ、本音というかミーハーっぽいことを言うと、近所を歩けばTwitter, Uber, SquareのHQがあって、ラーメン食べて部屋に戻っている途中でジャック・ドーシーとすれ違うなんて場所で暮らすというのはウェブサービス好きにとって今のところ飽きようがない。加えて、ウェブに対して世間や他の地域、国よりもちょっとだけ親しい気がする空気感はとても好きだ。

Read more

2014年にリモートで試したミーティング類のパターン

 今年の初めからアメリカに引っ越したので社内の人とのやり取りをどうするかという悩みに現実的に直面し、この1年で色々試したのでセーブポイントとしてまとめておくことにした。(ブログの記事を書かなさすぎてはてな記法忘れつつある...)

チームとミーティングの距離感

f:id:hxmasaki:20141229160507j:plain:w300:right

 8人くらいの会社。誰もがSPOFで、何かに詳しい人間はだいたい一人に絞られる*1。会社として重要な箇所に一人だと心許ないというより、誰も休めなくなってしまうので概ねわかるだろうという他者を含めるか、共有するなりで冗長化して、2人以上がひとつの何かに取り組んでいる形を組織中に点在させている。

 その2人の間や異なる担当間でそれぞれミーティングの時間を取っておきたいが、大仰に週例、月例、毎朝のスタンドアップみたいなミーティングをそっくり入れ込むにはちょっと負荷が大きいので何か工夫が必要だ。

 勤務地は強制していない。オフィスはあるけれど必要になった時に利用したら良いとしている。アメリカに居るとか、東京でも自宅から滅多に出てこないとか、週のほとんどはオフィスでたまに私用に合わせて自宅とか、仕事に全力投球する期間だけ泊まりっぱなしとか色々な勤務形式が伺える。

 ちなみに、「働く場所は自由です!」とは言ってなくて、「パフォーマンスを出すのに必要もしくは仕事をする上で合理的な動き方をしていれば何でもいいよ」という体裁である。(強いチームかどうかは別にして)オフィスを捨てていない。僕は帰国時に、メンバーとコミュニケーションを取ることが仕事に良い効果を持つので、だいたいオフィスに居る。周りはそれに合わせて普段よりオフィスに来るようにするというような変化もあって*2面白い。この自由度だけに溺れると簡単に居場所を失う。

 こうも自由だと、だいたいはコミュニケーションをとる時間やミーティングどうするのという話になるが、働く場所と一緒でうまく行くものを都度見つけ出しましょうというスタンスで試行錯誤しているので、以下はそのまとめとなる。

*1:逆に該当する主担当が無いならこのサイズの組織では存在する意味がない。

*2:気持ち良いというか僕のために来てくれている気分がして自惚れがち。

Read more

WebPayの正式リリースから1年が過ぎた

 何か会社のことを綴るとポエムと揶揄されるからか、単純に忙殺されているのかCEOであるところの@keikuboが特段発信をしないのでそっとこの1年どうだったかを社員1号*1として個人の日記を書いてみようと思う。

 文字ばっかりでびっくりしたので写真を後から添えた。

サービスとしてのWebPay

http://instagram.com/p/nr35lJLMBr/ 正式リリース後、何度かの料金改定、Ruby, PHP, JavaScript(Node.js), Java, Pythonの5言語に対応した公式ライブラリの公開、審査の短縮やオペレーション化..をもろもろやってくるうちに、段々とユーザもついてきて、云億のお金が僕達のつくった仕組みの上を通りすぎていくことに身震いしている。

 「お金扱うのなんか怖くない?」と誰もが尋ねてくれるけど、まさにそう思ってるし、お金の計算の段では毎度ピリピリとした空気で画面に向かい合って、何度もそれが正しいか、カード会社から受け取る明細と合っているかで目を回している。
ことお金の計算になると、自動化の線を決めるのがいつも難しい。銀行の人は夕方に窓口を閉めてこれをやっているのかなあ。

 ペイメントにまつわる性質上、ユーザ登録をしてもらって実際に決済が回り始めるまでのリードタイムにやきもきし、何度も「WebPayってサービスとして成長してるんだっけ」と不安になるkeikuboを大丈夫だよとなだめているうちに、導入してくれたサービス、サイトがトランザクション数を伸ばしていく様を次々と見られるようになって最近は嬉しいことが多いように見えてきた。

 APIとその周りについては足場が整ってきていて、加盟店の審査や各カード会社の接続など表に出てこない大事なところが思っていたよりも綺麗に積み上げられてきている。ついにStripeとの互換からの卒業をして、僕達の思い描くペイメントサービスをまず日本で文句の無い形にするところへ向かい始められるようになった。

 見事にユーザ向けのダッシュボード(僕達はAPIに対してGUIと呼んでいる)側はまともに進化を経ず、ここからツールとして使えるようにしていくつもり。あくまでも主役であるAPIをちゃんと動かすことに集中して、シンプルな形を維持しつつも実現出来る幅を増やしてきていて、GUIはあくまでもそれを利用するためのドッグフーディングで、外部に公開しているライブラリで外の人と同じようにAPIを叩くという開発当初のポリシーを守っていたが、サービスがAPIだけでなくGUIも含めて使われるようになってきたことに合わせて変化が求められ始めている。

hmskの仕事

http://instagram.com/p/o-Zk4oLMBs/

 正式リリースの前後はインフラ周辺、その後ユーザサポート、加盟店審査で顧客とカード会社とのやり取り、月締めの計算を担いながら、ビジネス側の動きと同期した開発の計画と仕様の草案の作成と言い出すとキリがない。あれとあれ以外のだいたい全部ですみたいに言ったほうが早いかもしれない。

 僕自身は未だに何のエキスパートにもなれていないけど、各所間の繋ぎ糊やウェブサービスはこうあって欲しいというエゴを塗りたくるようなことをやる分にはとても面白い。

 開発についてはコアのロジックをゴリゴリというよりは、個々のレビューとリリースマネージャみたいなことやって、UI/UXからは程遠いけど外にどう示すか、どういう態度を取るかという側面を持つもののコードに触れている。(でもサービスとしてのエクスペリエンスだ)
全て、外の世界では名前が付いていそうなんだけど、僕達版のこれは外でいうそれなのかわからなくて、何をやっていますというのはとても難しい。
春からはプロダクト開発の責任者というラベルを貰っているけど概ねやることには変わりがなくて、出来ることをちゃんとやり続けましょうというのを繰り返している。

 専科のデザイナーが居ないのとうまくフィットするように雇える自信がないので隣の部屋で暮らしているメンバーの一人と一緒に勉強を始めた。dribbblerになるのが最近の目標になっている。

 あれもこれも、かつてお世話をしてくれた、はてなで、クックパッドで、ウェブサービスをやっていくことで大事なものを見せてもらっていたのだ(特に対ユーザの態度がそうだ!)と、開発に限らずひとつひとつの考えることに向かい合う度に痛感する限り。とても素晴らしい場所、人、空気でいっぱいだったというのはもうちょっと僕達がうまく行ってからお礼をしたい。

リモート

http://instagram.com/p/i0kFIRLMOT/ 3人ほど、僕、ずっとコアの開発者、最近増えた開発者はリモートワークを前提にしていて、日々のチャット以外は開発の振り返りで同期的なチャットでのミーティングをやるくらい。加えて僕は会社(こういうときは開発以外を指して使う)との心情的なものの同期のために週1くらいkeikuboとPS3で数時間食事をしながら話し込むことで回っている。

 「情報は出す側がフィルタせず、受け取る側が取捨選択しましょう」「どうでも良さそうなことでも共有しましょう」「自分を見えるようにしましょう」...今まで僕が居た職場の人たちが普通にそういう感じだったのが逆に凄いことにやっと気づくことになった。

 ツールには事足りているけれど、マインドを変えるのはこのツールの仕事じゃないよなと苦笑いすることが多い。Slack, Asana, Qiita:Team、ありがとう。

 ただ、まだ見知った人たちと離れているだけ、しかもkeikubo達とは昨年一緒に1年弱暮らしたので、どうにかなっていて、それでもちょこちょこ会ったり、同じ空間で仕事でなくとも何かを共有することには飢えてくるので、全く知らない人が増えたらどうふるまったもんか。いつかGoogleの知人がアメリカにちょっと行ってることに理由を尋ねたら「チームビルディング」とだけ返ってきたのは頭の隅に残っているので、人が増える度に帰国すればいいのかなとも思う。日本酒飲めるし。

個人と組織

 良い所に良いメンバーが入り込んでくれて、僕個人は今までの努力が足りないおかげで大した力もなく、いつも申し訳なくなるのだけど、まず小さく回すことには成功している。

 ただ、オペレーションも何もかもそれぞれ得意な人のところに居着いて時間を食べてしまっていて、どうスケールさせたもんかというのは常に葛藤で、自動にすることを前提にやってもうまく行かないし、やっていることを自動にしていく作業の間はキャパシティの急増を求められている感覚がする。ちゃんとやりなさい。

 何度かメンバーの追加には失敗をしていて、うまく仲間を見つけてうまく一緒にやっていけるようにするというのはとても難しい。Instagramがずっと数人で回していたのを想像して、彼らの言う「足りないことがフォーカスを生む」という意味もわかってそうありたいと思うのと同時に、周りのスタートアップがじゃんじゃん人を雇ってうまく回しているように見えることには焦るばかりだ。

 そして、凄く仲間にしたい人が凄く僕達と一緒にやりたいと思うようにするのはめちゃくちゃ難しい。

引き続き宜しくお願いします

 ペイメントのサービスでなかなかココロオドルとか言えない面もあるけれど、渋く、黒子のように振る舞って当たり前に使ってもらえるような態度を保っていられればいいなというのは個人の見解で、所属する団体の考えとは直接的な関係はありません。

 あんまりスタートアップのことよくわからないので、自分たちで素敵なウェブサービスをつくることに取り組んでいますというのがここまでのまとめです。

 WebPayでは、今月の中旬にはミートアップをやることになりました。最初に書いたサービスのリリースから1年のことをもっとわかりやすくお伝えすることが出来るはずです。

 導入してくださった方、導入しようと考えている方、WebPayを気にかけてくれている方にお会い出来ることを少ないメンバー一同心待ちにしております(人数埋まるんやろか...)

 これとは別に毎週なり隔週なりでペイメントの導入からまつわること、アメリカの様子まで気軽に話しに、聞きにこれるような小さなミートアップを帰国中くらいは続けてやっていけないかなと考えています。ご興味ございます方は @hmsk まで。

*1:厳密には2号なのだが、FounderではないEmployeeの最初ということで1号

アメリカに引っ越した


Traffic through the fence by Kengo Hamasaki on 500px.com

 個人的な希望と仕事上の理由が都合良く一致させられたところがあって、就労ビザもどうにかなったので、2013年末を以て海外転出届を出し、15分そこそこ歩けば Oracle があるようなところに引っ越した。

 ずっと居るとか、いつ帰国するとか何も決めていなくて、むしろそれは暮らしてみてから決めることなのでしょうというところ。


 仕事も話題の?リモートというやつになって、 PS3ビデオチャットといくつかのウェブ上のツールで今のところはどうにかなっている。小さなチームの(自分で言うのは気が引けるが)コアの1人がリモートでやるというのは、結構無理な話だと思っていたものの、ここ1年間くらい、 @keikubo と @sowawa と一緒に暮らしたのが大分功を奏しているというのは違う話題なので別の機会に。


 いわゆるシリコンバレーと呼ばれるような場所にやってきて、しかも今までにそれを望んだようなアウトプットを繰り返しているものの、それが叶った感慨はあまり無くてびっくりした。漠然としていて具体性に欠く希望だったものが、現実味を帯びる時に改めて理由を認知することで高揚感を失わせているみたい。実際、甘えて飲み会に行かないとか、天気が良いとか、ウェブサービスであまり嫌な制限を受けないとか字面を見るとちょっと不安になる。

 穏やかに暮らしています。ハッピーバレンタイン(現地)

#wedding-sに向けてTwilioでお祝いのメッセージを集めた

 #wedding-sは、@kei-s と @yuca の結婚パーティ。夏に二人と食事をしたときに「二次会とかやんないんすかー、人生で人呼びつけられるのそんなにないっすよ」ってくだ巻いたら結婚式翌週のパーティの幹事のようなものになっていた。僕も葬式くらいは灰になるときに人を呼びつけたい。

 幹事をワンマン不安になってすぐに @june29 と @darashi に泣きついて何をやるかとか話して、そこからいっぱい助けられて先週末無事に会が終了した。

 コンテンツとしては

  • 新婦の思っていること*1を書いたテストコード(Expectedが見えないRSpec)に全部グリーンになるまで新郎が実装を書く新郎新婦初めてのTDDによるペアプログラミング

というのを一番やりたかったけれど、成功のイメージが一切思い描けなくてちゃんと没にした。

 ちょうどその頃WebPayのサポート周りの改善で、「電話での問い合わせ」を録音してスタッフ全員で共有していて、メールで投げつつ電話してきたり、電話したけど後でメールしますねみたいなユーザが結構居て、僕たちとユーザの間で無駄なやり取りが発生してユーザに余計な迷惑をかけるのを防ぐような対策をしていて、その電話の録音や通知の仕組みのところに @keikubo がTwilioを使っていたというのが着想で、Twilioを使って、結婚した二人へのお祝いのメッセージを電話で集めることにした。

wedding-s-messenger

 Twilioは電話がかかってくると指定したURLにXMLを見にきてくれて、Twimlで定義されているフォーマットでレスポンスすると言う事を聞いてくれる。

 シーケンス制御を組み立てる感じで分岐を作って

  • (1) 電話を受け付けてウェルカムなメッセージを流す
  • (2) メッセージ入力方法の説明を流す(終わったら#押してねみたいな)
  • (3) 発信音を鳴らして録音を実施する(#で終了する)
  • (4) 録音したメッセージを流すよと宣言して流す
  • (5) このメッセージで良かったら"1"を押せ、もう一度録るなら"3"を押せと促しつつ入力を待つ
  • (6) 入力された数字が、"1"なら(7)へ、"3"なら(2)へ、それ以外なら(5)へリダイレクト
  • (7) お礼を流して電話を切る

 Twilioがtwimlを見に来てくれるときは、GET/POSTでよしなにパラメータ付きでやってくるので、やってくる先をSinatraによるウェブアプリにしておいて、やってくるメッセージの情報をよしなにデータベースに保存するようにした。この仕組みを会の名称に合わせてwedding-s-messengerと名付けた。

上のシーケンスまわりのソースは概ねこんな感じ

そして、アプリ側では管理画面を作っておいて、メッセージの削除とかダウンロードとかを行えるようにしておいた。

 ちなみに、これの電話番号は結婚式やインターネットで新郎新婦に分からないように撒いておいて、新郎新婦の電話番号から万が一かかってきたら別ルートに分岐するという対策もとっていた。

 一番大事だったのは受話器に流すメッセージで、テスト用には僕が自分で喋った声を入れて流していたのだけれど、ちゃんと喋る力を持った @mamipeko の声に差し替えた途端に栄えたし、これは本当に価値があるのかと不安なプロダクトに対して自信を持てて、コードよりも価値があった。Retinaディスプレイかと思った。
 特に自分の声だと、なんだろ、ホテルのユニットバス系のトイレで用を足してて自分の股間が鏡越しに見えるような虚しさに近かった。

 僕のブログでその声を聞けるというのはどうしようものかと思っていたらご本人が公開してくれたので良かった。MacbookPro 13 inch Retinaも薄く軽くなったことだし。


 新郎新婦の日頃の行いもあって(メッセージを入れることを快く引き受けてくださった皆さんありがとうございました)、200件近い録音が行われたけどこれで負担額は$5そこそこ(もちろんかける側も電話代を負担しているが)
当日集まったメッセージの「けいさん」「ゆかさん」「おめでとう」を切り抜きまくって重ねまくった音声を流しつつ、刻印を入れたiPod Shuffle(シルバーだと結婚感ある)に全ての音声を入れてお渡しできた。

 @darashi が「これはもう祝電2.0ですよ〜」と事前準備で会った時か僕の夢かで言っていたのがとても印象的だった。

 この仕組みで、少なくとも幸せになれるユーザが世に居るのが分かるので、いい感じにASPとかにしたりするのはどうだろう。今回はサプライズなやつだったけど、電報感覚でまー会場に届いてますっていうのに声が追加されるのは素敵なことだと思う。もうあるのか結婚したことがないからよくわからない。

あまり関係ないけどgit-subtreeが便利

にもあるように本会の準備の進行に主婦と一緒にGithubを使っていたのだけど、このwedding-s-messengerがリポジトリの中に/messenger というディレクトリをルートとするアプリとしてpushしていて、これではHerokuにデプロイするのが不便なのではという時にgit-subtreeが最適だった。

git subtree push --prefix messenger heroku master
で、messengerディレクトリがルートなアプリをHerokuにデプロイできる。

 あと、HerokuだとRack appがお休みなさるので、ずっと監視用のリクエストを叩き続けていた。

*1:ありそうなのは子どもが何人だとか