新規事業のエンジニアとして意識していること
はじめに
こんにちは、オールアバウトシステム部の@sinpey_g2です。
弊社では今年の7月に、PICUPというサービスをリリースしました。
新規事業のエンジニアとして、私が普段どういうところを意識しているかについて書かせていただきたいと思います。
こちらはAll About Group(株式会社オールアバウト) Advent Calendar 2017 の12日目の記事です。
All About Group(株式会社オールアバウト) Advent Calendar 2017 - Qiita
自己紹介
私は2017年度4月入社の新卒1年目で、8月くらいまでTABLESというiOSアプリを開発していました。
TABLESに関しては、以下の記事も合わせて読んでいただけるとうれしいです。 allabout-tech.hatenablog.com
その後、9月からPICUPという新規メディアのエンジニアをしています。
PICUPについて
PICUPは、専門家がユーザーの「お買い物」をサポートしてくれるお買い物情報メディアです。日用品から、家電、ベビー用品、スポーツ用品など、さまざまなジャンルのモノを専門家が紹介してくれることによって、自分に合った商品を見つけることができます。
詳しくは、以下のリンクよりご覧ください。
新規事業におけるエンジニアの役割とは?
チームメンバーには企画、ディレクター、編集、デザイナーなど様々な職種の人がいますが、開発は私一人でやっています。開発が一名しかいないので、メンバーとのやりとり、課題の設定、工数見積、実装などを全て一人で行っています。もちろん困ったことがあれば、適宜先輩エンジニアに相談しています。
私が今のチームでエンジニアとして一番意識したい役割は、「人と時間という限られたリソースをいかに最大限に発揮させられるか」だと思っています。
例えば、編集が記事を書くために使う社内CMSを使いやすくすることによって、同じ時間でより多くの記事を作ることができるようになれば、記事が増えて売上も伸びます。
このように、とにかく時間を有効活用させることが私の役割だと考えています。
チーム内ではエンジニアという意識をあえて持たない
事業をグロースさせるためにはチーム一丸となる必要があります。よってエンジニアだから、企画だからという意識は持たないようにしています。編集業務やビジネスサイドでわからないことが出てくれば必ず聞くようにしていますし、そのような技術的じゃない話でも意見を言うようにしています。
メンバーとのコミュニケーション
限られたメンバーで行う新規事業では、メンバー間のコミュニケーションが特に大切になってきます。弊社ではチャットツールにSlackを使っていて、進捗の共有や仕様の相談、本番環境にリリースした内容の報告などを行っています。
Slackを使うときに注意していること
Slackを使用するときに注意している点は以下の2つです。
- 緊急でない場合はなるべく口頭ではなくSlackでやりとりをする。口頭でやりとりした場合も内容をSlackで共有する。
- プライベートチャンネルや、ダイレクトメッセージでのやりとりは極力行わない。
これらを意識することで、やりとりの可視化をするようにしています。
コミュニケーションコストを下げる
気軽に話せることが仕事の頼みやすさにも関わってくると思うので、お互いのコミュニケーションコストを下げることは最終的にグロースのスピードにもつながると考えています。
一緒にランチに行って仕事以外の話をしたり、オフサイトミーティングとして丸一日社外に出てご飯を食べながらお話をするといった取り組みも行っています。
座席も、弊社では職種に関係なくプロジェクトごとに近い座席配置にしているので、チーム内でコミュニケーションしやすい環境になっています。
開発業務について
ここからは、開発面に焦点をあてていきたいと思います。
システム構成
PICUPのシステム構成をざっくり紹介します。
CMS(Contents Management System)で記事を作成して、その記事情報をサイトで表示しています。記事のPV数のランキングなどはBatchを使って更新しています。
フレームワークはLaravel5.4を使っていて、CMSではフロントエンドのフレームワークにVue.jsを採用しています。
Vue.jsについては社内LTをした記事があるのでこちらを参照してください。
案件の種類
私の普段の開発案件は大きく3つにわけられます。
1. 新機能の実装
1つ目は、売上を伸ばすための新しい施策の実装です。こちらは主にサイトの開発になります。サイトに新しい売上のための導線を追加したり、ABテストで効果があった施策を実装したりします。
事業の売上に直結する最も大切な案件です。
2. メンバーの業務効率の改善
2つ目は、メンバーの業務効率を改善するための実装です。CMSに使いづらいところがあったり、業務フローの変更に伴ってCMSの機能と業務に乖離がある場合には、機能の改善を行います。
これによって、編集や企画メンバーの業務効率があがり、最終的に売上につながるので、非常に重要な案件です。
3. 開発効率の改善
3つ目は、私自身が開発をしやすくするための実装です。例えばJavascriptのコンパイルをCIツールで自動化させたり、リファクタリングしてソースコードの品質を保つことで、開発面での作業効率をあげます。
こちらは優先度はそこまで高くありませんが、上記1と2の案件の合間を見つけて少しずつやっています。
開発の優先度
基本的には上記1、2、3の優先順位で実装していますが、以下の要素でも優先度を決めています。
上図のような優先度で、だいたい1週間のうち①の低工数で高効果なものを何個かと、②の高工数かつ高効果のものを1つ取り組んでいます。効果が低いものはなるべく切り捨てるようにしています。
取り組みたい施策はたくさんあるのですが、時間が限られているのでとにかく効果が大きいものを優先して実装しています。
今後どうしていきたいか
今後はサイトの速度を改善することで、より使いやすいサイトにしたいと考えています。検索流入がメインのサイトなので、SEOについてはチーム全体で注力しています。速度改善によってSEOにも効果が出るとうれしいです。
また、新機能の開発と並行して、ユニットテストやLintツールを導入して、ソースコードの改善をしていきたいと思います。今後開発メンバーが増えたときにも、初めてコードを見たエンジニアがすぐに開発に入れるような、高品質なプログラムを目指していきたいと思います。
さいごに
以上が、新規事業で一人でエンジニアをしている私が普段意識していることです。よかったら参考にしていただけると幸いです。
最後になりますが、ぜひ皆さんPICUPを利用してみてください。