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

まちいろエンジニアブログ

南池袋のWebサービス開発会社、株式会社まちいろのエンジニアブログです。

まちいろ第3期の取り組みを振り返る

まちいろの文化

こんにちは、まちいろの工藤です。

株式会社まちいろは2016年7月で第4期目を迎えました。
そして私事で恐縮ですが、まちいろに CTO としてジョインして10月で丸1年が経ちました。

まちいろは現在クライアントワークをメインとする会社ではありますが、
自社サービスをメインとした事業構成にシフトさせる、というミッションを掲げており、
3期から現在にかけて、この自社サービスの仕込みのための取り組みを行ってきています。

そこで今回は、主に技術面でこの1年取り組んできたことを紹介したいと思います。

開発環境・フローの整備

魅力的なサービスを作るためには、自分たちが使うツールやサービス、開発フローも洗練されるべきです。

これから自社サービスを作るにあたって、またこれから直面するであろう組織課題に向けて、開発環境やフロー周りの整備を行っています。

メイン開発言語の選定

これまでまちいろでは Java + Play Framework か WordPress + PHP の開発が多かったのですが、新しいプロジェクトからは Ruby を採用しています。

主な理由は

  • スクリプト言語 (PHP) に慣れているメンバーが多い
  • 書いてて楽しい
  • 一つの言語を深掘りしてもらうために、カバーできる範囲が広い言語が良い

といったところです。

オブジェクト指向スクリプト言語 Ruby

コミュニケーションツール

これまでサイボウズ Live の掲示板機能を使って、メンバー同士のコミュニケーションを行っていましたが、 仕様のような蓄積すべき情報と、勤怠連絡のような時系列情報がごちゃごちゃになっていました。

そこで社内のコミュニケーション向けには Slack を、ドキュメント管理用には esa.io + Google Drive を使う方針としました。

クライアントワークでのお客様とのやり取りについては、ご要望に合わせて サイボウズ Live、ChatWork、Slack を利用しています。

slack.com

cybozulive.com

ドキュメント管理

前述の通り esa.io + Google Drive で管理するようにしました。esa.io かわいいので個人的に気に入ってます。

Google Drive はこれまでも利用していましたが、置かれているファイルを見ても何の意味を持つ資料か理解できないので、あくまでドキュメントの窓口は esa.io とする、という方針としました。

またこの機会に、メンバーには暗黙知・属人化といった組織課題を認識してもらい、情報の共有の徹底をお願いしていきました。

esa.io

GitHub の導入

社内 GitLab から GitHub へ随時移行を行っています。

弊社の場合、社員数に対してクライアントワークのためにプライベートリポジトリの数が増える傾向にあるので、現在の GitHub のプランは大歓迎です :)

github.com

コードレビュー

弊社の規模では、複数人で開発しているプロジェクトが少なかったりするのですが、新規プロジェクトから私も入ってコードレビューを実施しています。
またコードレビューの指針となるよう、コーディングガイドラインの整理も行っています。

他の人にコードを見てもらうとなると、今まで意識していなかったことも意識するようになって良い傾向です。

単体テスト、CI

これまではほぼ単体テストコードが無い (!?) という状態でしたが、新規プロジェクトから単体テストコードを書くようにしています。
自社サービスの開発に向けて、当たり前の文化としていきたいと思います。

CI は CircleCI で回しています。

circleci.com

サーバープロビジョニング

インフラは基本 AWS 上に構築していますが、これまでは手動で構築・セットアップを行っていました。

もちろん手順書を作ってはいたのですが、流石に辛いので Terraform で VPC 〜 EC2 まで構築して、Ansible で EC2 上のミドルウェア・ソフトウェアのセットアップをするようにしました。

Terraform by HashiCorp

Ansible is Simple IT Automation

監視

これまで独自に開発した監視システムを利用していましたが、外形監視しかできていませんでした。

弊社の場合はクライアントワーク中心のため、監視したいサーバー台数が結構多く、コスト的にクラウドサービスは利用し辛い状況でした。 ここは悩んだのですが、結局今は Zabbix に落ち着いています。

フロント側の監視も含めて、もう少し考えたいところです。

www.zabbix.com

会議体の整理

随時開催していた会議体を以下のように整理しました。
スタンドアップミーティングを行うことで、今日行うべき業務を事前に整理する習慣が付くようになったと思います。

  • 朝のスタンドアップミーティング
  • 週一のプロジェクト進捗共有・売上共有ミーティング
  • 月一の施策MTG
  • 月一の経営会議

人材育成への取り組み

評価面談の体系化

半期毎に目標設定を行い、その結果と評価を正しくメンバーにフィードバックするよう体系化しました。
半期の途中にも面談を行い、目標と実務のズレを調整していくようにしています。

また、会社で注力すべき技術の明確化した「スキルシート」を作成して、メンバーとの認識を合わせると共に、各自の目標設定の際の参考にしてもらうようにしました。

f:id:mkudo-machiiro:20161019121311p:plain:w400

勉強会の実施

以前本ブログでも紹介しましたが、社内研修としてブートキャンプというものを実施してきました。

tech.machiiro.jp

ブートキャンプでやりたかったことは一通り終えてきたので、最近は次のステップとして、特定の技術書籍で輪読会したり、動画サイトを見ながらハンズオンで勉強したりしています。

まとめ

当たり前と思えることも多いかもしれませんが、まちいろも少しずつ進化しています。
4期を終えて、また沢山の取り組みが紹介できるように今期もメンバー一丸となって頑張ります!