2018年 OKR的まとめ

今年の3月からGEP子会社の一つのGSA Onlineの社長業をしてきました。 GEPで開発チームを率いつつ、実際コードも書きつつ、(就業時間的にも)120%の力で走り続けてきたように思います。

お気に入りドラッカーの本を読み直し 成果をあげること に焦点を当てることを心に決めました。

僕が社長業をする前は、オンラインビジネスは動いているから大丈夫という感じでした。 そこにPDCAを回す余力はなく、どのタイミングで何をすべきかという具体的な指標、方向性なども欠けていたように思います。

時系列的に何をしてきたのかをふりかえってみると、

3, 4月 - オペレーションフローのレビュー/改善

実際にオペレーションのSlackチャネルに入り、何が起きているのかを観察し、タスクの見える化が必要と判断しJira導入。この時点でオペレーションある程度回るというという判断をしました。

成果: 24時間以内のメール返答率などの指標、タスクの見える化された。業務のドキュメントも少しずつできてきた

5, 6, 7月 - 入学フローの簡潔化

優秀なマーケーターが入社し、彼と二人三脚で入学フローをシンプルにした。

成果: 簡潔化により、30%のコスト削減に成功。同時にスケーラブルになり、多くの入学者をさばけるようになった。実際、これを行なっていなかったら、9月の前年比200%越えの入学者をさばけなかったと思う。

8, 9月 - 新しいコースを導入

Global step academyの目指すところはただのオンライン英会話サービスではない。これをはっきりさせるために英語で英語を学ぶを科目を増やすということにフォーカス。プロマネ的な役割で進捗させた。

成果: 三科目の導入に成功。マーケティング的にもユニークなポジション二ングが可能になった。

10, 11月 - ホームページの刷新

デザイナー、コピーライター、マーケティング、開発、全員で集中し、オーガニックトラフィックを増やす施策を施した。

成果: SEOはすぐに反映されないのでまだ具体的な数字を出せないが、lighthouse auditでは、SEOスコアが満点の100に。パフォーマンスも90越えのスコアになり、150%以上の改善できた

12月 〜 now - 新しいインターフェースの実装

成果: 1月末までに完成予定なので成果はまだなし。Rails+Reactでごりごり開発している。

もちろん、これはMajorなプロジェクトで、日々の開発・サポート業務も並行して行ってきました。忙しいかったわけです。

今年一年、色々経験し、たくさん学んだが、同時に課題もあります。

  1. リモートやアウトソースに頼ることになってきていて、一つのタスクに時間がかかる。海外勤務による時差、日本語ができるスタッフが少ない中、数回のフィードバックがおきるとあっという間に1週間が過ぎてしまう。バーンレートを考えるとオフィスにこれる人材をコストをかけてでも雇った方が結果的に全体的にはコストを抑えられそうに思う。
  2. 自分が開発に入ると経営改善が止まる。パラレルでタスクに向き合えない自分が不器用かもしれないが、プログラミングも時間がかかり、集中する必要があるので難しい。(開発のリードできる人を探しています!)。
  3. 勉強する時間がない。技術は進歩するし、それにキャッチアップしていくことでビジネスに適用できるアイディアを蓄えることができる。その時間があまりにも少なく培った知識の切り売りをしている感じになっている。もっと手を動かしExperimentalなコードを書く時間が欲しい。

自分の長所は、IT/開発側からビジネスを改善できる点と、Executionできるというところだと思っています。 実際、入学フローの改善も自分のアイディアてはなく、社員の提案を確実に実行させた結果です。

当たり前のことですが、体感するのは会社というのは一人で回るものではなくチームワークでかつ各々がきちんと成果を出すところにあります。 いっしょに働く会社のみんなには非常に感謝しています。(経理等のバックオフィス、ファイナンシングを考えることなく自分が開発とオンライン事業にフォーカスできる環境を作ってくれていたことも感謝しかないです)

彼らの成果の方向性を導くのがマネジメントの役割であり、リソースのないベンチャーにとってはその決断一つ一つがクリティカルで非常に大事です。 会社が良い方向に行くようにじっくり考察し、着実に実行していければと思います。

個人としては、経営者視点だけでなく経験を持ったエンジニアとしてユニークなキャリアを開いていきたいものです。

毎年ながら来年は勝負の年になりそうです

[Linux] timezone/zoneinfoの確認方法

Heroku-16でブラジルのタイムゾーンが間違っててブラジルに住むユーザさんから時間がおかしいとの問い合わせがあった。 どうやって確認したかというtzdataのzoneinfoをzdumpすればタイムゾーンでの時間がわかる。

~ $ date
Sun Oct 21 22:58:21 UTC 2018
~ $ zdump /usr/share/zoneinfo/Brazil/*
/usr/share/zoneinfo/Brazil/Acre       Sun Oct 21 17:58:53 2018 -05
/usr/share/zoneinfo/Brazil/DeNoronha  Sun Oct 21 20:58:53 2018 -02
/usr/share/zoneinfo/Brazil/East       Sun Oct 21 20:58:53 2018 -02
/usr/share/zoneinfo/Brazil/West       Sun Oct 21 18:58:53 2018 -04

で、Heroku側に問い合わせると、Heroku-18にアップグレードするかbuildpackでtzdataを上書きしろと。。 heroku16は使ってるrubyバージョンがなく動かないのをしっていたのでrubyを最新バージョン、railsを5.0001から5.07にアップグレードして解決

sshのknown_hostsのチェックを無視する方法

動的にドメインを貼るようなシステムだと毎回SSHするたびにknown_hostが違うと怒られる。これを回避するには、いくつか方法があるが.ssh/configに下記を書くのが一番簡単だと思う。

Host myhost.devany.net
  StrictHostKeyChecking no

RubyでAWS Route53にレコードを追加/削除する方法

Aws ruby version3 での話です。CLIはjsonを作らないといけなそうですが、rubyだとそこが必要ないので楽。UPSERTはドキュメントによると無ければCREATE、あればUPDATEとのこと。 またactionにDELETEを指定することでレコードを削除できる。

client = Aws::Route53::Client.new(region: "ap-northeast-1")
resp = client.change_resource_record_sets({
  change_batch: {
    changes: [
      {
        action: "UPSERT", 
        resource_record_set: {
          name: "xxx.example.com", 
          resource_records: [
            {
              value: "192.0.2.44", 
            }, 
          ], 
          ttl: 60, 
          type: "A", 
        }, 
      }, 
    ], 
    comment: "Web server for example.com", 
  }, 
  hosted_zone_id: "YOUR_HOST_ZONE", 
})