dely engineering blog

料理レシピ動画アプリ『KURASHIRU』を運営する dely 株式会社のエンジニアブログです。

フルスタックでないアプリ開発者が今後役に立たなくなる3つの理由

f:id:SonyGulss:20160706094741j:plain

dely株式会社 CTOの大竹です。今回は、アプリ開発者がフルスタックである優位性について話したいと思います。

 

f:id:SonyGulss:20160706103412p:plain

人数を増やしても良い製品は作れない

サーバーサイドのアプリケーションの場合、MVCモデルを採用して分業で開発を進めることが容易です。デザイナー、フロントエンジニア、バックエンドエンジニアのようにそれぞれの専門領域を持っている人たちが集まって開発することができます。特にRailsのようなデファクトスタンダードに近いフレームワークを採用すれば、それが共通言語になって意思疎通もスムーズになります。

一方、iOSやAndroidのネイティブアプリの場合、UIのコードとロジックのコードをどちらも密に理解して開発する必要があるので、分業するのが困難です。いろいろ分離して分業する方法も考えられてはいますが、Webの開発のように分かりやすく分離することはやはり困難です。必然的に、アプリ開発は少人数のチームで進めることが多くなります。

また、最近ではチーム開発の方法論として人気の高い『スクラム開発』を採用する企業が増えています。スクラム開発とは簡単に言うと、短いスパンで開発サイクルを回し、問題が小さいうちに発見するできるようにして大きな手戻りを防ぐ手法です。

スクラム開発において、1チームの最適な人数は3人〜9人と言われています。それ以上になると共有に時間が余計にかかって一人当たりのパフォーマンスが低下します。

このように、開発チームはどんどんコンパクト化しています。優秀なメンバーで構築された少人数でコンパクトなチームが一番価値のあるものを生み出しやすいのです。*1

 

f:id:SonyGulss:20160706103423p:plain

自分の専門領域しか知らないと全体視点で改善できない

今のアプリはどれもクオリティが高く、ユーザーもそれに慣れているので少しでも出来の悪いアプリはすぐに見捨てられます。アプリの快適さが満足度に大きく影響します。

例えば、アプリがもっさりしているのでもっとサクサクにしたいとします。そんな時にアプリエンジニアだけでできるのはせいぜい画像を非同期に読み込むとかぐらいでしょう。

でももしサーバーサイドの知識があれば、SQLを効率よくできないか、APIリクエストを少なくできないか、画像のサイズを圧縮できないか、などはるかに多くの改善施策を思いつくことができます。権限があれば自分で実装すればいいし、担当の人と話し合って実装してもらうのでもOKです。重要なのはそこまで広げて考えられることです。

さらにもしインフラの知識まであれば、サーバーに処理が集中してるから負荷分散しようとか、データベースをREADとWRITEで分離してボトルネックをなくそうとかまで考えることができます。

このように上から下まで一貫して見ることができれば、ほとんどの場合で改善策を思いつくことができるはずです。全体視点で改善できることが競争力になるのです。

 

f:id:SonyGulss:20160706103433p:plain

専門的な技術はすぐにコモディティ化する

Web業界では、技術はあっという間にコモディティ化します。かつては差別化につながっていた技術は、オープンソースの充実、AWSのような高機能なクラウドサービスの普及、出来のいいPaaSの登場、などによって誰でも実現できるものになってしまいました。

むしろ、これらをうまく使ってアプリの本質的な価値を高められる人が重宝されます。データを見て、どこでユーザーが離脱しているのか、どのアクションをしたユーザーが定着しているのか、ビジネスとしての収益性を高められるか、ユーザーの獲得コストを下げられないか、などなど考えられることはいくらでもあります。*2

エンジニアであれば、仮説を立てて実装してリリースして検証するまでのPDCAサイクルを自分だけで完結して回すことができます。本来はエンジニアこそこういうことを日々考えてコードを書かなくてはいけないのです。

 

まとめ

もうすでにアプリの世界は、ただ作るだけの人には価値がなく、作ったものをユーザーが最高に満足できるまで改善できる人が重宝されるようになっています。インフラ構築からデータ分析までトータルで力を発揮できる「フルスタック」でないと生き残っていけないのです。*3

 

フルスタックエンジニア探しています

delyでは、国内最大の料理レシピ動画アプリ『KURASHIRU』を開発するエンジニアを募集しています。フルスタックのメンバーで構成されたチームで働きたい方、お気軽にご連絡ください。

*1:プロダクト・マーケットフィットを確認し終え、サービスの安定性が重要になってくるフェーズでは大人数の方が有利かもしれません。ここでは新規サービスを開発するチームを想定しています。

*2:これはデータアナリストやビジネスサイドの仕事だと言うかもしれませんが、彼らの多くはコードを書けません。コードレベルまで理解しているエンジニアの方がより深い分析ができるはずです。

*3:開発チームに必要なエンジニアの数が減っているので、その中に入れるかどうかで経験値に大きな差がついてしまいます。一部の優秀なエンジニアが経験を積んでさらに優秀になるのです。