読者です 読者をやめる 読者になる 読者になる

Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

2015年振り返り - 優秀な人達との出会い、可能性が広がった1年

f:id:tbpg:20151231140353j:plain

2015年 を振り返って。
今年は外とのつながりが増え、出会いと可能性が広がった1年でした。
またフェーズとしては今後のための下地作りと言えそうです。

仕事

コンテキスト

業務に関する詳細やドメインについては話せないのですが、

という立ち位置で仕事をしています。

私達の部署は自社(グループ)向けの Web システム ( Rails ) の開発が主業務だったのですが、
もう1レイヤーが上がって、全社的に業務効率を上げるためのシステム群の業務分析・設計・開発を行う部署になりました。
これは長期戦略上は未来の会社を支えるものになるため非常に重要な部分を担うことになります。

私は Developer Productivity 的なやつを主担当でやっています。
小さなチームなので雑多に色々やりますけど。
Developer Productivity については Kaizen Platform さんの求人をみると分かりやすいと思います。

スコープを変えることで無理をしない。基本的に残業がない。
荒ぶる四天王(時間・予算・品質・スコープ)が荒ぶらない現場です。

2014年から2015年の状況

去年の振り返りを参照

tbpgr.hatenablog.com

2015年

組織レベルの活動を開始

担当が範囲が変わったことでまずは

  • 現状分析
  • ボトルネック分析
  • 長期戦略
  • 競合調査
  • 各所とのすり合わせ
  • 役員への説明
  • 開発者の採用
  • 開発環境・文化づくり

などを主に社長・上長・私の3人で行ってきました。
方針自体二転三転したので、やってきたことの量の割に最終的な成果に結びつく活動が
少なかったように感じますが、必要な紆余曲折だったんでしょうね。

今までこういった類のことをやってこなかったので新鮮でした。
業務に必要なスキルということで、 TOC を学習・活用しはじめたのですが
このスキルは他の場所でも役立つ汎用的なものとなりました。

現在は大きな方針は固まったので、組織レベルの話に関しては上長が主に担当していて
私は開発基盤の強化に集中しはじめています。

開発基盤

大幅に方針を変えて開発を進めていく、ということもあり開発周りの基盤を整備中。

開発PCを Windows から Mac に変更しました。

  • OS XCLI連携に強い
  • 生産性の高い開発を支えるツール類がWindowsと相性が悪い物が少なからずあるが OS X なら問題なく動く

などの理由によるところが大きいです。
少人数での生産性の高い開発を徹底するためですね。

各開発者は Mac に慣れていない人が多いため慣れるコストも必要になっていますが
それを加味しても導入した方が長期的に好ましいという判断です。

今後は Microservices アーキテクチャを採用し
自動テスト・CI・CDで品質を確保しながらすばやくフィードバックを回していく予定です。
現状はレガシーのリプレイスが終わっていませんが、 GitHub Flow による Pull Request ベースの開発や capistranoによるデプロイは導入済みです。

インフラはもともとAWSを利用していたのですが、そこに加えてHashiCorpプロダクトDocker を組み合わせて
Immutableなインフラ構築をする予定です。
この辺りはどういった構成にして、どのようなツールを利用するか現在も選定・検討中です。

チーム強化

対象業務の範囲が大きくなったこともあり人員増強をしました。
2015年に2名増員。2016年の1月に1名増員。

  • サポート要員

少人数のチームということもあり、事務的なあれこれや雑用的なものも各担当がやっていたのですが
そういった業務を一手に引き受けるサポート要員を1名増員しました。
これにより、各自が集中してまとまって作業できる時間が増えました

彼は新人で開発者ではなく職種の方向性も決まっていないので、こういった雑多なタスクとともに
いろんなことに挑戦してもらいつつ適性をみている状況です。
開発者じゃないので、ちょっとしたことで不足があって指摘されることも多いでしょうけど
皆の役にたってます。ありがとうSくん。

  • フロント強化

開発範囲の変化によりフロント周りをリッチにする要件が必要になってきます。
移り変わりが早く、必要なスキルセットが多岐にわたるフロントの強化のために増員を行いました。

採用は私が個人的に関わっていることもあり CodeIQ で行いました。
この件に関わる話は以下のエントリで。

tbpgr.hatenablog.com

tbpgr.hatenablog.com

上長と私で行ったこの採用は大成功でした。
10月に入社してくれましたが、業界未経験ながら個人的に多くの学習をしていた彼は
即戦力として活躍してくれています。

私が入社する以前も含め、基本的に採用は開発者である上長が行っています。
私の採用時、私より前にいるメンバーの採用時は上長が人選をしてペアプロ面接をしました。
今回も CodeIQ を利用した Meetup 後に、上長と彼でリモートペアプロをしたりしながら
お互いに一緒に働くかどうかを決めました。
この彼、私のアウトプットに頻繁に反応してくれていたのもあって
その点もあってお互いに安心感があったというのもありました。

私のチームは基本残業なしなのですが、業界的に嘘に見られることが多いのですが
私が日々のブログやTwitterの発言でその点に触れていることもあって
残業なしの情報やモダンな構成での開発などについても信頼していただけたことが大きかったようです。

  • 開発基盤強化

開発全体を大幅に変えて生産性を上げる、という方針になったのですが、
基本的には未経験のことを調べながら作り上げていくためにけっこうなパワーが必要です。
そこで開発基盤のメンバーも増強することになりました。

2015年頭あたりから個人的に交流をしていて、開発者としてのキャリアお悩み相談などをしていた
若手の子がいたのですが色々話す流れの中で弊社に興味を持ってくれて入社することとなりました。
最初から採用目的とかは全然なかった(そもそも出会った頃は増員の予定はなかった)ので巡りあいとは不思議なものです。

私の紹介で上長とのMeetup+リモートペアプロなどをしてお互いにぜひ一緒に仕事がしたいということで
リモートペアプロの部分で技術評価は問題ないということで役員面接だけして採用が決定しました。

2016年初営業日に出社したら私の隣に彼が座ることに。
楽しみです。

  • チーム強化まとめ

そんなこんなで気づいたら二人の採用に関わることとなりました。
この二人の採用において自分の個人活動が大きな影響を与えています。
なんといってもシステム開発は人です。2015年最大の成果はこの二人の採用を決めたことです。
優秀な人さえいればなんとかなるものです。
引き続き個人活動にも力を入れて行きたいと思います。

たぶん、こちらが人を欲しくなるタイミングと私や他のチームメンバーの日頃の行動の中で
つながりのできた人が流れで新たなメンバーになるんだろうな
と思います。

クリエイターズネクスト

コンテキスト

2015年6月末から 株式会社クリエイターズネクスト のお手伝いをすることになりました。
形としては自社の業務の一環として週に1回金曜日はクリエイターズネクストのオフィスで働いています。

クリエイターズネクストの社長と別の現場で一緒に業務をしたのですが、
その際に私のことを非常に高く評価していただいたことがきっかけでお声がけいただくことになりました。

この会社はSEO対策を小手先のものではなく、継続的なコンテンツ強化で対応する」ということを
提案し、導入し、継続改善していくのが主業務のWeb制作会社です。
過去の改善経験で積み上げたノウハウを元にコンテンツ改善のレポートを自動生成する
システムをつい最近ローンチしたのですが、そのシステムの継続的改善のためにシステム全体をみる
担当として私がお手伝いしてます。

役割

週1日という制約もあるため、できることは限られていますがざっくりいうと技術顧問的な役割をやってます。

  • 技術面からの方針の決定
  • ボトルネック分析
  • ワークフローの改善
  • ツールの導入
  • 開発者の採用・選定
  • 情報の共有、文化作り

など。
私自身、年齢の割に業界経験が少ないため豊富な経験と高度な知識があるわけではなく、

  • ブラックな環境で短期間に大量な時間を過ごし、実践的に覚えてきた改善の知識・経験
  • 自社で導入、実践してきた新し目の技術・要素の導入・検証経験
  • Webで大量に摂取してきた情報を元にした知識
  • 閃き

などを元に実際に中の業務も手伝いながら内側から改善していくイメージです。
大きく物事を決めていくカリスマ的なリーダーというよりは、
仲間と一緒に作り上げていく先頭に立つ特攻隊長という感じです。

技術ブログの執筆も担当しています。

技術ブログの第一の目的としては
技術的、組織的なノウハウ・事例を外部に共有することで業界に貢献をしたいということがあります。
私達は個人や組織のブログに助けられて仕事をしています。
Webで検索ができない状態で仕事をすることなどほぼ考えられないのが
システム開発の仕事だと思います。
普段助けられている分、こちらも助ける側として協力していきたいと思っています。

第二の目的としては外部向けに継続的に行っていることをアウトプットしておくことで

  • お客様からの信頼を得ること
  • 未来の同僚となる開発者へのアピール

の両面を含んでいます。
システム開発やWeb制作はその内情を知らないお客様から見ると、表からみた仕様を満たしただけのものを
納品している企業と、価値あるものを効率よく品質よく開発している会社の差は見えにくいものです。
それは求職中の開発者からみた開発会社も同じです。

こういった効果は自社の採用時などにも感じているので、
今は目に見えて効果を発揮していませんが将来効いてくるものと思われます。

第三の目的としては社内メンバー向けの情報共有があります。
特にクリエイターズネクストは自社と違ってシステム開発のみの会社ではないので
システム開発周りのことについて分かりやすくまとめて認識を共有しておくことで
開発職以外のメンバーとの認識のズレをなくすことができます。

副産物

外部企業を手伝う際に外部企業側へは以下の様なメリットをもたらしています。

システム開発現場の改善のノウハウ(ナレッジ共有, タスク管理)を複数の現場に持ちまわる

あんまり外部企業というと現場の皆さんが悲しむのですが、便宜上といことで。
気持ちは中の人としてやってます、はい。

逆に、クリエイターズネクストは自社と大きくことなる業務内容であり、文化があり、
優秀な人材も豊富にいることからこちらが学ばせていただくこともとても多いです。
それは

  • 組織的ノウハウ
  • 技術的ノウハウ
  • 優秀な人の思考ルーチン
  • 個別事例への対応のノウハウ

など多岐に渡ります。
これを自社に持ち帰ることでさらなる好循環を作り出しています。
コンテキストスイッチのコストや人材流出を懸念することもあるとは思いますが、

組織・チーム内に一人か二人くらいは外部の企業と継続的に関わっている人がいる

というのは大きな効果をもたらすのでは?
と今年の経験をもとに感じています。

CodeIQ

2013年12月より出題を開始。
2015年も CodeIQ 漬けな 1年でした。

今年は自動採点への切り替えや執筆量を増やす依頼もあったりと
去年よりもサービス側から出題・執筆者へ求める内容の変化が大きかった1年でした。
最終的に

出題数 25
執筆数 19

になりました。

詳細は下記を参照

tbpgr.hatenablog.com

また手動期から自動期に切り替わるときに、アイコン制作を湊川あいさんに依頼しました。

f:id:tbpg:20151231140507j:plain

成果物が素晴らしかったのでその後もデスマコロシアムのアイコンや私の個人アイコン制作も依頼しました。

f:id:tbpg:20151231140512j:plain

イラストの力や自分にない大きな力を持っている方に手伝っていただく心強さを実感しました。 個人アイコン制作に関しては下記にまとめてあります。

tbpgr.hatenablog.com

手動期

今年は途中から自動採点が導入された影響で出題内容が大きく代わりました。
手動採点の時期については、去年から引き続き

  • デスマコロシアム
  • 新規分野
  • 変な問題

を軸にしつつ「変な問題」のところは途中から
RubictionaryというRubyのライブラリに関する問題のシリーズに変えました。

リファクタリング問題とかyo!lang問題とかけっこうざわついてて、良かった。
また、 @supermomonga さんとのやり取りで生まれた不適切なFizzBuzz問題とかも、
Twitterでやり取りしてから速攻で運営確認・作問・納品したのが懐かしい。

codeiq.jp

三女が生まれたことやクリエイターズネクストの業務が追加になったことで
時間的な制約もあって、手動採点の終焉とともにデスマコロシアムシリーズをしえるさんに引き継いだ。

デスマコロシアムシリーズはCodeIQでの私の代名詞ともいえるシリーズだったし、
挑戦者の皆様と最も色濃く交流出来たシリーズだったので感慨深い。
皆様多数の挑戦および交流誠にありがとうございました。今後もよろしくお願いします!

自動期

自動採点の導入と共に、出題の制約が強まった。
採点コストが大幅に下がったので、クリエイターズネクストの業務も追加になった身としては
時間的に都合の良いタイミングだったとも言える。

とはいえ、「色物系出題者」としては標準入出力ベースの「かっちりとした問題」を
仕上げることが前提となってしまい結構悩みどころだった。
回答者の皆様との交流も加味して出題していたこともあって、直接的にはそれがほとんどなくなることも
踏まえなければならなくなった。

全体の出題傾向としては、

あたりが大多数。

「易しめで業務っぽい問題」を出すことで、アルゴリズム・計算量の問題とかだとやる気がしないけど

業務っぽいちょっとしたプログラムなら挑戦してみたい

という層をペルソナとして作問することにした。
結果として、かなり多くの方に挑戦者していただくことができているので成功と言えるだろう。
私の問題やちょまどさん連動の問題を入り口に他の問題の挑戦に繋がるとよいな、と思う。

これで転職支援サイトとしてのCodeIQの求人側、求職側双方の間口を広げ、
ソフトウェア開発者の遊び場としても他の出題者さんがカバーしてない領域の間口を広げることができているはず。
お客様、お客様のお客様を見てお仕事をする。それを意識出来たんじゃないかなと思います。

補足になりますが、自動採点の移行と共に標準入出力ベースの「かっちりとした形式」になったこともあり
入出力に関する細かな条件を明示し、サンプル入出力を数例提示する形式にしました。

CodeIQ MAGAZINE

1年で19記事書いた CodeIQ MAGAZINE。
その中でも特にバズった記事を抜粋。

codeiq.jp

codeiq.jp

Miira

11月頭から pplog でつながっていた2人と個人的につながっていた1人と私の計4人で
毎日 Slack にあつまってお互いの日々の進捗を報告したりするチームができた。
チーム名は Miira(ミーラ)

その経緯の一部はこちらにまとまってます。

note.mu

ちょっと前に話題になっていた Hajime Morrita さんの週報仲間の記事とかが
内容的に近いかも。

bellflower.dodgson.org

お互いに近況を報告しあうことで

  • モチベーションを高める
  • 刺激を受ける
  • 新たな発想・アイデアを得る

などの効果を生んでいます。
仲間が努力し、前に進み、悩み、解決している。

まだMiiraチームを発足してから二ヶ月ですが、そんな日常を共有できるのは
物凄く価値のあることだと感じています。

4名のうち2名が開発者なのですが、 bot や Slackの分報など
気軽に何かを試せる場所でもあります。

個人的なこと

家庭

10月に三女が生まれました。ウルトラかわいいです。はい、親バカです。

f:id:tbpg:20151231140651j:plain

  • 親バカツイート

病気

11月末にメニエール病の診断を受ける。
けっこう無茶してたので「なるほど」といった感じ。
現在はたまに軽くクラクラするくらいで落ち着いている。

SlackでBotに ( ˘ω˘)ネナ してもらったりしてる。

f:id:tbpg:20151231140702p:plain

湊川あいさん作:Miiraちゃん

ということで、今年は睡眠時間を増やします。

アウトプット

一時期に比べると大分おちついた感じ。
やることが増えたのでアウトプットに割く時間を削ったのと、
プログラミング以外のことや組織のことで外部にアウトプットできないようなことを
担当する機会が増えたことが要因。

  • はてなブログのアウトプットを年別に比較すると顕著に減っている

f:id:tbpg:20151231140712p:plain

  • Qiita

Qiitaのランキングは42位。おお、縁起が悪い。

f:id:tbpg:20151231140718p:plain

http://qrank.azurewebsites.net/

  • Stargzr

Stargzrのランキングは23位。ミスター「エモい話」こと「こにふぁーさん」の次の順位。なんか嬉しい。

f:id:tbpg:20160101020021p:plain

stargzr.net

今年は開発メインで動いた感じじゃなかったのであまりものを作らなかった。
個人用のツールとかサンプルコードをちらほら。
あとはOSSのちょっとしたバグとか誤字とかをみつけたらPull Request送ったりとか。

外界

家にこもって黙々と物事を進めるタイプの人なのですが、今年は外との関わりが増えました。

こういった出会いの中で、非常に優秀な方々とやりとりをさせていただくのは
大きな刺激を受けますし、そういった方々の考え方や行動やテクニックを知ることは
とても貴重でありがたい財産となっています。
こちらからも何か提供できているといいな、と思いますしそうできるように励んで行きたいと思います。

勉強会、カンファレンスのような多くの人達が集まる場は苦手だけど、ネットである程度お互いを知った上でマンツーマンで
会うのは苦手ではないようです。
逆に苦手なはずの場であるにもかかわらず、居心地の良く過ごさせていただいたのが情報会議。
オーガナイザーのお二人の手腕は凄いものだと思います。

また、もともと参加する予定がなかったYAPCは友人からチケットを譲り受けたことがきっかけですし、
参加中にもTwitterのフォロワーさんからT-シャツ付きチケットを譲り受けたりととてもうれしい出来事がありました。
お二人ともありがとうございます。

2016年に向けて

2015年は一人でプロダクト全体を作り上げられるように、という目標を掲げていましたが見事に逸れました。
とはいえ、成果をみると想定した以上になっていました。

ここ最近物事の変化や突発的なイベントが多く、目標の設定があまり意味を成さないことも多くなってきたので
1年単位の目標よりも人生の目標のようなものを改めて整理したいと思っています。

仕事については、自社・クリエイターズネクストともに下地作り的なフェーズの2015年でしたが、
2016年は実績を作ってどんどん改善するフェーズに突入したいと思っています。

基本的にはほっといても頑張りすぎるくらい頑張る人なので、来年以降も引き続き行動しつづけます。

外部資料