急速な開発を劚げるITスタヌトアップの兞型的な問題ずそれらを回避する方法

IIDFオンラむン䌚議「技術ベヌスのビゞネスを構築する方法」で、Googleの開発者関係を担圓するZviad Kardava氏は、補品の開発、開発、プロセス管理における技術系新興䌁業の問題ず、それらを解決たたは回避する方法に぀いお話したした。







私たちは生き残る時間のないダむナミックな䞖界に䜏んでいたす。MVPを玠早く䜜り、垂堎に参入し、コンバヌゞョンずプレれンスを高めようずしおいたす。 このアプロヌチは正圓化されたすが、その過皋で、スタヌトアップの創蚭者は将来干枉する問題に盎面する可胜性がありたす。



スタヌトアップに問題がある3぀の分野



1管理ずプロセス



短期間でチヌムが5人から50人に成長した堎合、以前のスキヌムでは機胜したせん。新しいビゞネスプロセスを蚭定しお管理する必芁がありたす。䌚瀟ず補品に優先順䜍を付け、成功指暙の䞻芁な指暙ず䌚瀟のドロヌダりンを決定できるようにするため/補品。



プロセスで最もよくある間違いは、CTOがほずんどの時間を開発に盎接費やしおいるこずです。 もちろん、CTOには優れた技術スキルが必芁です。たた、スタヌトアップに3〜5人しかいない堎合、開発ぞの参加は完党に正垞です。 しかし、チヌムにすでに50人がいる堎合、サヌビスステヌションは開発プロセスをリヌドし、開発郚門ずテスト郚門のチヌムリヌダヌず密接に連携し、ほずんどの堎合、開発自䜓に察凊するべきではありたせん。 この人物は、すべおのテクノロゞヌを理解し、チヌムず話し、適切な開発を構築する方法を知っおおり、圌の補品ず新しいテクノロゞヌを詊しおいるゞェネラリストです。



2補品開発



機胜の優先順䜍付け、テスト、補品の適合に問題がある可胜性がありたす。 補品の開発を远跡するこずは、正しいバヌゞョンかどうかを理解するのに圹立ちたす。新しいバヌゞョンたたは機胜がリリヌスされたずき、パフォヌマンスを枬定し、反埩を移動し、1぀のこずだけで長く停止しないようにする必芁がありたす。 補品メトリックスの远跡ず評䟡はマヌケティングず非垞に密接に関連しおいたす。非垞に優れた機胜を䜜成できたすが、販売は非垞に悪く、逆もたた同様です。 A / Bテストや分析などのアプロヌチは、顧客ず補品の理解に圹立ちたす。







たずえば、Netflixを携垯電話の安䟡なサブスクリプションで䜎所埗地域の居䜏者のように芋せようずした䌁業は、分析の助けを借りお、最初の開始時に衚瀺を開始しおから1分以内にコンテンツの再生を䞭断するナヌザヌがかなり倚いこずがわかりたした。 チヌムは、新機胜のリリヌス、蚭蚈の倉曎、機械孊習の適甚を詊みたしたが、問題ははるかに簡単であるこずが刀明したした。このナヌザヌグルヌプにはヘッドフォンがありたせんでした。 圌らが路䞊や公共の堎所にコンテンツを含めるず、圌らはヘッドフォンなしでそれを芋るだけで䞍快でした。



3開発



倚くの堎合、開発者はすべおをれロから構築するこずを奜みたす。私たちの囜では、プログラマヌは技術的な問題を解決できたす。 しかし、倚くの堎合、時間がかかりすぎたす。 既補のコンポヌネントが公開されおいる堎合や有料である堎合は、それらを䜿甚しおください。 これにより、補品固有の機胜の開発に集䞭できたす。 たずえば、䜕らかのモバむルアプリケヌションを䜜成しおいる堎合、Firebaseを䜿甚するだけで十分な堎合がよくありたす。 分析、ホスティング、プッシヌ、デヌタベヌス、クラりド機胜、プロモヌションツヌル、クラッシュレポヌト、A / Bテスト甚ツヌル、実隓など、必芁なものはすべお揃っおいたす。 倚くの堎合、クラりド機胜は単玔なバック゚ンドロゞックを実装するのに十分です。 このむンフラストラクチャを自分で䜜成たたは保守する必芁はありたせん。コンポヌネントを正しく組み合わせるだけですこのアプロヌチはサヌビスずしおのバック゚ンドず呌ばれ、開発時間ず垂堎参入を倧幅に節玄できたす。



たた、開発甚の「ツヌル」を保存しないでください。プロセスを倧幅に高速化するのに圹立ちたす。 これは、開発環境IDEだけでなく、テストツヌルたたはむンフラストラクチャにも適甚されたす。 たずえば、Github、Gitlab、Bitbucketを䜿甚するず、CTOはコヌドのレビュヌを行い、問題を発行し、分散チヌムで䟿利に開発できたす。 自分でコヌドを保持するこずにした堎合は、Gitlabなどの適切なリポゞトリをセットアップし、適切なハヌドりェアを甚意しおください。



自分のチヌムたたはアりト゜ヌシング







テクノロゞヌ補品ずプラットフォヌムをタヌゲットずする倚くのスタヌトアップは、しばしばアりト゜ヌシングを吊定的に受け止めおいたす。 ロシアには倚くのデベロッパヌがいお、平均垂堎の絊䞎は高いですが、これだけの経隓でも、デベロッパヌがあなたの期埅に応えるこずを保蚌するものではありたせん。チヌム。



優秀な゚ンゞニアやプログラマヌは、しばしば非垞に悪いデザむナヌです。 優れたUI / UXは補品にずっお非垞に重芁であるため、UI / UXを簡単に倖郚委蚗でき、同時に瀟内開発を離れるこずができたす。䞻なこずはバランスを維持するこずです。



アりト゜ヌシングに必芁な特定の人々や䌁業-プラむベヌトデザむナヌや専門家、小さなモバむル開発スタゞオ、たたはアりト゜ヌシングに特化した倧䌁業-を理解するこずが重芁です。 私は倧䌁業を小さなスタヌトアップに勧めたせん。原則ずしお、圌らは異なる焊点ず仕事の原則を持っおいたす。



補品の䜕が問題なのか䞻な問題領域



1フロント゚ンド



慣䟋により、フロント゚ンドの抂念には、少なくずも䜕らかの圢でナヌザヌず察話するすべおのものが含たれたす。 1぀のケヌスでは、Webたたはモバむルアプリケヌションの圢匏のナヌザヌむンタヌフェむスであり、もう1぀では、プラットフォヌム、アプリケヌション、マヌケットプレむスのAPIです。 ナヌザヌフレンドリヌなAPIは優れたUX / UIであり、これは非垞に重芁です。 次は、アヌキテクチャ、フレヌムワヌク、蚀語です。



ある蚀語、フレヌムワヌク、たたはアプロヌチが他の蚀語よりも優れおいるず䞻匵するこずはできたすが、ナヌザヌはアプリケヌションの蚘述内容を気にしたせん。 それらの䞻なものは、矎しく盎感的なむンタヌフェヌス、迅速な補品操䜜です。







UX / UIが悪い堎合の察凊方法



専門のアりト゜ヌシングスペシャリストに盞談し、デザむナヌにレむアりトを䟝頌しお、ナヌザヌが画面を操䜜しおあるペヌゞから別のペヌゞに移動する方法をテストし、補品を瀟内で倉曎しお定期的に誰かず盞談できたす。



友人ずのナヌザビリティのテストも、UX / UI盞談オプションの1぀です。 お母さんなどの芪relativeにアプリやりェブペヌゞをテストしおもらいたしょう。 圌女が䜿甚に関する問題を抱えおおらず、プロンプトを衚瀺する必芁がない堎合は、成功に近づいおいたす。







新しいナヌザヌを適応させる必芁がありたす。 むンストヌル埌のアプリケヌションが、連絡先、ファむル、カメラぞのアクセスをすぐにナヌザヌに芁求した堎合、ナヌザヌはこのアクションが疑わしいず認識したす。



䜕かにアクセスするリク゚ストなしでアプリケヌションが起動し、必芁な堎合にのみ、ナヌザヌがしばらく操䜜した埌に送信するこずをお勧めしたす。 たずえば、ゲヌムプラットフォヌムがあり、むンストヌル埌、ナヌザヌにゲヌムをプレむするこずを提案したす。その過皋で、ナヌザヌは友人ず競争しお結果を共有できるこずを理解したす。 この時点でアプリケヌションが連絡先ぞのアクセスの芁求を開始するず、ほずんどの堎合、同意したす。



別の䟋は、登録する必芁があるプラットフォヌムです。 私たちは皆、携垯電話ず倖出先で生掻しおいるので、倧きくお䞍快なフォヌムに完党に蚘入するように人々に頌むのは悪い戊略です。 代わりに、䌚話型UXナヌザヌむンタラクションを远加できたすAPI.aidialogflow.comたたはFacebookメッセンゞャヌに接続したす。 ナヌザヌが必芁ずするのは、FacebookたたはGoogleからログむンし、回答オプションのボタンをクリックしお質問に回答し続けるこずだけです。 これにより、ナヌザヌは倖出先でフォヌムに入力できたす。



優れたUX / UIは次のずおりです。



  1. 競争䞊の優䜍性。 人々が䞍快であるずいう理由だけでいく぀かのアプリケヌションの䜿甚をやめたす。
  2. より高い評䟡より高いコンバヌゞョンず収益化をもたらしたす。 ナヌザヌがこのアプリケヌションを気に入っお人気を博しおいる堎合、アプリケヌションストアはそれをより簡単にコレクションに远加したす。 プラットフォヌムが優れおいるほど、技術サポヌトを受けるナヌザヌは少なくなりたす。


トレンドにあり、垞に新しいテクノロゞヌを監芖するこずが非垞に重芁です。 たずえば、今たで、倚くの人はすでに3幎以䞊前のProgressive Webアプリケヌションに぀いお知りたせん。 これは非垞にポンプアップされたWebペヌゞで、オフラむンでも高速に動䜜し、モバむルデバむス䞊のアプリケヌションのように芋えたす。 PWAはアプリケヌションずしお携垯電話の画面に远加でき、開発が非垞に簡単です。 プログレッシブWebアプリケヌションには、Web支払い、Web認蚌情報、Webセンサヌなど、さたざたなAPIセットもありたす。







Webペむメントは、支払いペヌゞにリダむレクトするこずなく、䟿利なサブスクリプションず支払いでWebペヌゞを䜜成するのに圹立ちたす。 Web Credentialsを䜿甚するず、ナヌザヌが少なくずも䞀床ログむンするず、システムに自動的にずどたるこずができたす。



もう1぀の興味深いテクノロゞヌは、むンストヌルする必芁のないすべおの機胜を備えた完党にネむティブなアプリケヌションであるAndroid InstantAppsです。怜玢、リンク、ビヌコン、Telegramなどから盎接取埗できたす。 リンクをクリックするず、アプリケヌションがすぐに開き、ナヌザヌは䜕かを賌入、賌読、実行できたす。 そしおその埌のみ-必芁に応じおアプリケヌションをむンストヌルしたす。 これにより、ナヌザヌ゚クスペリ゚ンスが向䞊し、垂堎ぞのリヌチが拡倧したす。



しかし、新しいテクノロゞヌに遅れずに぀いおいくこずは、補品にすべおを続けお適甚するこずを意味したせん。 最近、誰もが本圓にニュヌラルネットワヌクを䜿甚するか、これを宣蚀したいず考えおいたす。 これはPRずマヌケティングには良いかもしれたせんが、補品がこれらの技術を察象ずしおいない堎合、たたはそれらの経隓がない堎合は、時間を無駄にしお魔法をかけるべきではありたせんあなたが䜕をしおいお、専門家が䜕をしおいるのかを理解する必芁がありたす。



音声認識、文字起こし、翻蚳、画像分析などの暙準的なものが必芁な堎合は、MLモデルを開発およびトレヌニングする代わりに、既補のものをより速く簡単に䜿甚できたす。 Google Cloud Platformやその他のプラットフォヌムには、優れた簡単なAPIを備えた品質モデルがありたす。



2バック゚ンドずむンフラストラクチャ



バック゚ンドに適したアヌキテクチャを構築するこずは、最初から非垞に重芁です。 珟圚、誰もがいわゆるマむクロサヌビスアヌキテクチャに導かれおいたす。 これは、1぀のテンプレヌトだけでなく、バ​​ック゚ンドを構築するためのアプロヌチです。したがっお、さたざたなバリ゚ヌションが可胜ですが、䞀般に、このアプロヌチは正圓化されたす。



芁するに、マむクロサヌビスアプロヌチでは、単䞀のアプリケヌションバック゚ンドが䞀連の小さなサヌビスずしお構築され、それぞれが独自の環境で動䜜し、軜量メカニズムを䜿甚しお残りず通信したす。 HTTP / RESTが通信に䜿甚されるこずは非垞に倚くありたすが、GRPC-すべおのプラットフォヌムおよびすべおの蚀語で機胜し、HTTPよりもはるかに効率的なリモヌトプロシヌゞャコヌル甚のオヌプンフレヌムワヌクを探しお怜蚎するこずをお勧めしたす。 適切なデヌタベヌスを遞択するこずも非垞に重芁です。



これにより、ホスティングを含む倚くの劎力ず費甚を節玄できたす。 仮想マシンの代わりに安䟡なコンテナを䜿甚でき、バック゚ンドの柔軟性ず拡匵性を維持できたす。



開発者の1人がこのDBMSを䜿甚した経隓があるため、MySQLが遞択したスタヌトアップがあり、圌はそれで十分だず考えたした。 それから、JSON圢匏でデヌタを保存する必芁があり、MySQLで保存する必芁があるこずがわかりたしたが、JSONを効果的に䜿甚する方法はわかりたせん。 次に、MongoDBにはドキュメント指向があるため、誰かがMongoDBを䜿甚するこずを提案したした。 MySQLはスロヌダりンし始めたした。理由を理解せずに、PostgreSQLを採甚したした。これは良いリレヌショナルデヌタベヌスだず聞いたからです。 そこで、圌らは3぀のデヌタベヌスを埗たした。







しばらくしお、3぀の基地すべおが「枛速」し始めたした。 そしお、チヌムは重芁なホットデヌタをRedisNewSQLに保持できるず刀断したした。 圌らはたたelasticsearch怜玢゚ンゞンを持っおいたした...合蚈4぀の異皮デヌタベヌスを持぀スタヌトアップがありたす。 それらを維持するこずは非垞に䞍䟿で高䟡です。



このようなスタヌトアップの通垞の゜リュヌションはPostgreSQLであり、SQLデヌタずJSONの䞡方で適切に機胜したす。 理想的なケヌスでは、チヌムには個別のDBAスペシャリストが必芁です。 たたは、これらの問題を十分に経隓し、そのような技術的な詳现を知っおいる人。



さらに、フレヌムワヌク、独立した既補のコンポヌネント、サヌビス、および蚀語がありたす。



適切なフレヌムワヌク、特に蚀語の遞択に関するトピックでは、倚くのコピヌが壊れおいたす。

タスクたたは領土属性ごずにプログラミング蚀語を遞択する必芁がありたすモスクワたたはサンクトペテルブルクにいなくおも、あらゆるレベルの開発者を芋぀けるこずができる堎合は、地域に応じお遞択したす地域に匷力なNode.jsたたはPythonコミュニティがあり、タスクに適しおいたす-これらのいずれかを遞択したす。 Erlangのプログラマヌがいない堎合は、探す䟡倀はありたせん。



倚くは、継続的な統合ず継続的な配信の慣行を無芖しおいたす。 これは実行する䟡倀がありたせん。補品の品質を向䞊させ、バグの数を枛らし、システムおよび開発プロセスをすべおのチヌムメンバヌにずっおより「透明」にするのに圹立ちたす。



次の質問は次のずおりです。鉄たたは雲を遞択したすか クラりド、既成のサヌビス、プラットフォヌムを遞択するこずをお勧めしたす。最終的には、正しく䜿甚すれば、安䟡で時間を節玄でき、それ自䜓がコスト削枛の点でアクセスしやすく、有利になりたす。



雲は鉄よりはるかに高䟡であるずいう意芋は根拠がありたせん。 サヌビスプロバむダヌのすべおの機胜を再怜蚎し、考慮するず、それらが盞互䜜甚のための優れたむンフラストラクチャず環境を提䟛するこずを理解できたすスタヌトアップのホスティングの遞択方法に぀いおは、この蚘事FRIIを参照しおください 。



ホスティング、デヌタベヌス、その他のむンフラストラクチャコンポヌネントを遞択する堎合、芚えおおくこずが重芁です。ナヌザヌは、アプリケヌションの蚘述内容やホスト堎所を気にしたせん。 䞻なものは、それが迅速に動䜜し、ナヌザヌがフロント゚ンドず察話できるようにするこずです。



単玔なPostgreSQL、MS SQL、たたはMySQLを䜿甚しおも、ほずんどの問題を解決できたす。 膚倧な数の開発者が䜿甚するStack Overflowは、デヌタを4぀のデヌタベヌスに保存したす。メむンすべおの堎合、補助、2぀のレプリカです。 スタックオヌバヌフロヌ党䜓をサポヌトするにはこれで十分です。



アヌキテクチャ、CI / CD、DevOpsアプロヌチ、コンテナヌ、デヌタベヌス、スケヌリングに関する倚数のチュヌトリアルず資料を芋぀けるこずができたす。 これらのこずを孊習するのにそれほど時間はかかりたせんが、将来的には時間、コスト、リスクを倧幅に削枛できたす。 仮想マシンの代わりにコンテナを蚭定するず、通垞のアヌキテクチャで䜕らかのCI / CDがある堎合でも、開発が高速化されたす。環境を毎回蚭定する必芁はなく、既成のコンテナをダりンロヌドするだけで䜜業できたす。その埌、同じコンテナでテストし、実皌働環境でリリヌスしおから、スケヌリングしたす。



API管理は、誰もが忘れおいる新補品の最も重芁な問題の1぀です。 耇雑なこずに煩わされる時間がない開発者にずっお最も簡単な解決方法は、APIをコンテナにプッシュするこずです。 これにより、APIのバヌゞョン管理が可胜になるだけでなく、APIの異なるバヌゞョンをロヌドするずきに簡単に拡匵できたす。



単䞀のサヌビスプロバむダヌに䟝存しお高可甚性を期埅するこずはできたせん。



珟代の䞖界では、どのサヌビスプロバむダヌにも問題が発生する可胜性がありたす。 したがっお、1぀のプロバむダヌたたはハヌドりェアのみを䜿甚するず、自分自身を非垞にアクセスしやすいサヌビスたたはプラットフォヌムず芋なすこずができないずいう事実に぀ながりたす。



耇数のサヌビスプロバむダヌを䜿甚するこずは、たったく通垞のアプロヌチです。 たずえば、KubernetesはすべおのクラりドGoogleクラりド、Amazonなどにデプロむでき、サヌビスの可甚性が高くなりたす。



事前にスケヌリングを怜蚎しおください。



もちろん、2台の仮想マシンを䜿甚しおいる堎合は、さらに数台展開できたす。 しかし、急成長を目指す堎合、これはトラブルに぀ながる可胜性がありたす。モノリシックアプリケヌションず倚数のナヌザヌが問題になる可胜性がありたす。







PokemonGoが重い負荷に耐えるこずができたのは、最初から適切なコンポヌネント遞択戊略でした。最悪のシナリオでは5倍のトラフィックを期埅しおいたしたが、最初の数日間の実際のトラフィックは50倍でした。 KubernetesずCloud Datastoreのおかげで、このような負荷に耐えるこずができたした。Kubernetesはほずんどすべおのクラりドにデプロむでき、膚倧な数のナヌザヌず倧芏暡なコミュニティを持っおいたす。 たた、Cloud Datastoreは、アプリケヌションの負荷に合わせお自動的にスケヌリングされる、非垞にスケヌラブルなNoSQLデヌタベヌスです。 あなたは䜕もする必芁も心配する必芁もありたせん。







PokemonGoの展開ずスケヌリングの詳现に぀いおは、 こちらをご芧ください 。



芁玄





11月29日に、 Googleの起業家向けグロヌバルキャンパスオペレヌションマネヌゞャヌであるAmrit Dhirが、IIDF Russian Startups Go Global 2017カンファレンスで講挔したす。 圌は、野心的なGoogle / Alphabetプロゞェクトでの䜜業䞭に埗られた事䟋ず経隓を共有したす。 むベントの詳现に぀いおは、 こちらをご芧ください 。



All Articles