爆速開発の中でも、データ漏洩事故を防ぐ仕組み
このほか、技術的に難しいが実現する必要があった機能例としては、権限管理があります。smartroundはそのコンセプト上、スタートアップがVCや士業の方に自社のデータを共有できるようにしています。(他者・他社にデータを開示する機能があるSaaSは珍しいのではないかと思います)
またそのデータ共有方法も複雑かつ多様であり、
●スタートアップがVCに権限を付与すると、VCの管理者は与えられた権限の一部を自社メンバーに割り当てることができる
●スタートアップが士業の人に権限付与することで、士業の人はまるでスタートアップの自社メンバーであるかのごとく機能が利用できる
●アカウントが無くても資本政策を作成・共有可能にする
などさまざまあります。
さらに扱うデータが、資本政策や経営情報などスタートアップにとってもVCにとっても機密性がとても高いものなので、アーキテクチャレベルでガッチリデータ漏洩を防御する必要があります。
具体的な話はコード実装の詳細になってしまうので割愛しますが、サーバサイドプログラムの3層のレイヤにおいてデータ漏洩を防御する仕組みを実装しています。またそのためのプログラムもシンプルに書けるように設計しています。
これによりスタートアップの爆速開発の中でもデータ漏洩事故を防ぐような仕組みをアーキテクチャレベルで作りこんでいます。
またそういった柔軟なアーキテクチャを実装する上では、薄いフレームワーク(プリセットで利用できる機能が少ないが、柔軟性の高いフレームワーク)のほうが都合が良かったため、最近のフレームワークであるktorというKotlin製フレームワークを採用しています。(より詳しい技術選定についてはこちらにも記載されていますので、もしご興味あればご覧ください)
実現すべきビジネス要求に合わせてゼロベースで考えられる
このように、本当に必要な仕様に関しては何をしてでも実現させる必要があります。それは前述の時間をかけるという話だけでなく、自身が保持していないスキルについてもです。
これこそはまさにスタートアップの泥臭い話で、自身・自社のリソースだけではどうしても限界があるため、必要とあれば社外からそのスキルをお借りしてでも実現することもあります。
たとえば私自身CSSに関してはちょっとした見目修正ならともかく、ゼロからクラス設計したりリッチなデザインを実現するスキルがありませんでした。
当初私は、これをカバーするためCSSフレームワーク(UIパーツが用意されており、CSSに詳しくない人でもそれを使えば簡単にそのUIパーツの見目が実現できる)を利用しようと考えていました。
しかし、大概のSaaSであれば初めはそれでも大丈夫ですが、smartroundは類似サービスが国内になくコンセプトがユーザーに伝わりづらいという難しさがありました。
そこでUI/UXをとにかく良くする必要があり、画面のデザインはCSSフレームワークの”できあいUIパーツ”を並べるのではなく、ゼロベースであるべき画面仕様を考えることにしました。具体的にはボタン・フォーム・アラートメッセージなどベースとなるパーツは用意しつつも、UI/UXに力を入れるべき画面はゼロベースでデザインを考えています。
そういった背景があったため、初期で私しかエンジニアがいない頃は、恥ずかしながら私自身のスキルでは足りない面があるため、業務委託でマークアップのプロの方に手伝っていただいておりました。
その後マークアップに強いエンジニアが参画してくれたおかげでUIパーツの設計なども進みましたが、当時はコードレビューや統合、タスクの依頼など苦労した記憶があります。(弊社のUIパーツについての取組みはこちらにも記載されております)
以上取り上げた3つの例のように、実現すべき機能については何としてでも実現するというのが技術力が求められるポイントであり、サービスとしても大事な点だと考えています。
技術選定からアーキテクチャ設計まで、実現すべきビジネス要求に合わせてゼロベースで考えていくことができるのが、創業エンジニアという仕事の魅力だと感じています。
*社内から創業エンジニアへのひとこと
「最高のエンジニア」のためにGoogleに就職して出会えた逸材
起業家にとって創業メンバーを選ぶことは、最も重要な決断といっても良いでしょう。事業はピボットできます。チームも補強可能です。でも「創業」メンバーだけは、後から変えることはできません。
特に創業エンジニアは、「余人をもって代えがたい」のです。コンセプトが優れていても、初期プロダクトのクオリティーが低いと、スタートアップは回り道を強いられ資金が枯渇してしまいます。
私はこの重要性を、前回の起業経験で思い知らされていました。創業した1社目を売却後、次回のため「最高のエンジニアに巡り会うべく」GoogleにPMとして就職したほどです。
「小山さんが来てくれないなら僕もやめる」、確かそういうようなことを言って誘った記憶があります。本心でした。でもこれは、自らほかに代えがいないことを白状しているようなものです。正直どんな条件をふっかけられるか戦々恐々でした。
返ってきたのは「Kotlinで開発させてください」というひとつの条件でした。どんな内容でも即答すると決めていた私は、「考えさせてくれ」というしかありませんでした。
Kotlinは優れた開発言語ですが、スタートアップはある程度「枯れた技術」を使うのが王道です。ただでさえ採用は厳しいのに、製品開発に新しい技術を使うと、対応できるエンジニアが見つからず、より採用が困難となるからです。
小山と、将来にわたるエンジニアの採用可能性を天秤にかけざるを得ませんでした。一晩考え抜いて、私は小山を選びました。それほど小山という存在が大きかったのです。
(smartround 代表取締役 砂川 大)
エキサイティングな創業エンジニア
創業エンジニアにはさまざまな困難が待ち受けていますが、すごくエキサイティングな仕事です。
私自身、エンジニアは新しいものを生み出すか困難な問題を解決してなんぼだと考えているので、そういった観点でこの仕事は非常にオススメです。
創業期を担っていくエンジニアは業界全体において全然足りていないので、弊社含めチャレンジする気概のある方をお待ちしております!
どんな困難が待ち受けているのかは会社によってさまざまなので、次回以降の連載も楽しみにしてください。
編集部より:次回はベトナムで飲食店向けBtoB仕入れプラットフォームを運営するKAMEREOより東角 比呂志氏による記事をお届け予定です。ご期待ください。
週刊アスキーの最新情報を購読しよう
本記事はアフィリエイトプログラムによる収益を得ている場合があります