Posted on

2017年の抱負

2017年になって1Qが終わろうとしているけど、年末に考えた2017年の抱負を書こうと思う。

2017年の抱負

いろんなことはできないので3つ+サブ目標で考えた。

  1. 生産性
  2. ビックデータ
  3. ビジネス・インテリジェンス
  4. サブ目標
    • フロントエンド
    • 英語

生産性

これまでも開発の生産性を意識した活動をしてきたが、全員の開発効率アップ、品質アップのような守備的な活動が多かった。けど今年はスクラム体制にして攻撃的な面も加えていきたいと思う。

去年までの振り返り

去年までは2人1組のような小さなチームで開発し、できたらリリースするというサイクルで開発していたが、以下の問題が細かく積み重なってきていた。(サービスの規模がそういった状況に陥る状況にまで成長したとも言える。)

  • マネージャーの管理コストが高い
  • 要件定義して開発に仕事を振る側の負担が大きい
  • 開発者が指示待ちになる
  • 開発した機能が属人的になる
  • 開発メンバーが他のメンバーが何をしているか把握できない(チーム感がない)
  • 開発・営業・運用で足並みを揃えるのが難しい

これらの問題を一気に解決する為に2017年からはスクラム体制で開発を進めることした。

スクラムのチーム構成

最初のスクラムチームの構成は以下の7人体制

  • プロダクトオーナー
  • スクラムマスター(自分)
  • 開発チーム
    • デザイナー兼コーダー
    • 中堅エンジニア
    • 2~3年目のベトナムメンバー(2人)
    • 新卒エンジニア

スクラムを始めるあたり読んだ資料と書籍

Wikipedia

まず最初に見たのがWikipedia。スクラム自体はある程度決まった型があるので、ここを見るだけでも大体の流れを確認することができた。また、スクラムガイドがリンクされているので合わせて読んだ(こちらも17ページ程)。

SCRUM BOOT CAMP THE BOOK

次に読んだのがこちら


この本はスクラムについての概要はわかったけど実際どんな風に進めたらよいかが分からないという方におすすめ。実際の流れを漫画を交えて説明してるので読みやすいし一連のスクラムの流れがわかる。個人的にはスクラムガイドとこの本を読めばスクラムを開始できると思う。

スクラム実践入門

他の書籍も一応見ておこうと思って呼んだのがこちら


この本ではいくつかの企業の事例が紹介されている。スクラムを始めるきっかけなどが書かれているので事例を見てみたいという方には良いと思う。

Joy,Inc.


この本は直接スクラムには関係ないけど、おもしろい取り組みをしていて、開発の生産性をあげたいという意味で参考になっておもしろかった。スクラムを始めるにあたって読んでおいてよかったなという一冊。

ビックデータ

2つ目の目標はビックデータを本格的に扱うこと。数年前にバズワードになったけど、本格的にあたり前のように活用されるのがこれからだと思う。
データがたまり、インフラが整いデータを安価で扱いやすい状況になってきている。ビックデータといっても様々な文脈があるが、個人的な活動の目標としては「GoogleBigQuery」、「AWS」を触りつつ手元にあるデータをいろんな形でこねくり回せる状態にする。というのを目安に進めていく。

ビジネス・インテリジェンス

3つ目もビックデータの文脈だが、データから有効な示唆出しをすることが一つのゴールになるのでそこを見失わないようにしたい。いろいろ触って「データサイエンティスト」の雰囲気がなんとなくつかめてきた。という状態にしたい。

サブ目標

いくつもやりたいことをこなすなんてことは自分にはできない。けどサブとしてでもやりたいと思ってるのが以下の2点。

フロントエンド

  • jQuery脱却して一気にモダン化させたい(楽に開発をしたい)

英語

  • 英語の勉強をするというよりは英語を使う環境に身をおける状態にする
  • 英語の技術系podcastを聞く

今年の抱負のまとめ

  • 生産性を最大化しつつデータをこねくり回せるようにする
  • できればフロントを最適化して英語も多少はコミュニケーションがとれるようにする
Posted on

2016年の振り返り

2017年になってもう3ヶ月が過ぎようとしているけど、今年初投稿なので今更ながら2016年の振り返りをする。

2016年前半

2016年前半はWeb業界に来て初めてWebサービスの受託開発をした。5年前にSIerからWeb業界に来て以来初めての受託開発だった。プロジェクト前半は若手エンジニア2人いたが、色々な都合により後半は自分1人になりそこからは1人最後までやることになった。
SIerにいた頃、小さめのプロジェクトであれば自分一人でやることはあったが、今回のような大きめのプロジェクトで0→1のサービス開発をマネージメントしながら開発するというのは初めてだった。ローンチ後は何事もなく稼働しているのでよくやったと思えたもののWebサービスの受託開発の難しさを思い知った。

Laravelについて

開発はPHP+Laravelを使った。初めて使ったフレームワークだったが、日本語ドキュメントがしっかりしているのでほぼそれだけで開発を進めることができた。

主なプラグインは以下を使った。

  • laravel-debugbar
  • laravel-ide-helper
  • Intellij Laravel-Plugin

2016年後半

サービス開発に戻り、戻ってからは主に以下のことをやった。

  • 決済システム導入
  • CI環境の再整備
  • ステージング環境の整備と追加
  • PHPUnit+Phakeによるユニットテストの本格導入
  • サーバのオートスケール

決済システム導入

これは、受託開発が都合により伸びた為、設計までして他のメンバーに引き継ぐすることになってしまったが、その後、また引き継ぎ開発を進めていった。「決済」といったシステムを扱ったことで良い経験ができたように思う。

CI環境の再整備

サービスの拡大、人の入れ替わり、増加により以前自分で立てたJenkinsのCI環境が整備されずひどい状況になりつつあったので整備した。Jenkins2へのバージョンアップもこのタイミングで行った。

ステージング環境の整備と追加

人員に対してステージング環境があきらかに枯渇していたので再整備と追加をした。具体的にはシステムだけでなく運用者もリリース前テストで利用する為、ステージング環境利用待ちのようなものが発生している状況だった。また、いくつかのサービスがつながっていることもあり環境がブラックボックス化していたのを再構築しドキュメント化しつつ環境を増やした。テスト環境大事。

PHPUnit+Phakeによるユニットテストの本格導入

UnitTestも以前は書くよう推奨していたが形骸化している状況だった。また、新卒メンバーが入ってそもそもテストが書けないメンバーもいる状況だった。これに対して、ハンズオンを開催しある程度書けるところまで持っていき、それ以降はプロダクト開発時にフォローするという形で最終的にはメンバー全員が必ずUnitTestを書くというところまで持っていくことができた。また、テストが増える従って、修正時の確認コストが減り品質が上がってきている実感が得られた。

サーバのオートスケール

アクセスが増え、ときに突発的に高負荷が来るという事象が増えてきて、その度にサーバをたて、デプロイスクリプトに新しいサーバを追加しデプロイするということをやっていた。それもいい加減面倒だし事前アナウンスがなければ対応ができないので、常にS3に最新ソースを配置しておき、あとは負荷検知により自動的にサーバを増やすという仕組みを導入した。

社外活動とアウトプット

2015年末に子供が生まれたことと2016年の前半の受託開発に忙殺されたことで全くできなかった。2017年は落ち着いて来たこともあり活動を増やす予定。

まとめ

2016年後半の取り組みに関しては、2017年から始めるスクラムの取り組みの為の下準備という意味合いもあり、テストや環境系の整備をメインに行った。これにより2017年からの取り組みをスムーズに始められたと思う。