スタートアップ自社サービスと超大手自社サービスの企業をチョロっと経験してみた
どーも、元ニートのSEです。
この投稿を書いている時点でフリーランスエンジニアとして仕事をしていますが、それは世を忍ぶ仮の姿であり心はニートです。
私は昨年の12末で会社を退職し、フリーランスとなりました。
1月はTwitterを経由して知り合った自社サービスの会社さんにインターンに行かせていただき、2月からは某超大手自社サービスの会社さんにSESで参画させていただいています。
Twitterでは「自社サービスや受託開発に就職するべきで、SESやSIerは辞めておいたほうがいい」という意見もよく見ますが、実際はどうなのか?と気になっている人もいると思います。
今回は自分への振り返りもかねてチョロっと自社サービスで働いてみて感じたことを書いていきます。
そもそも自社サービスってなんだってばよ?
私はこちらのサイトの言葉を借り、「事業会社として、自社製品/自社サービスを持っている企業」と定義します。
パッケージ化されたソフトウェア等の製品を開発し販売する会社も含まれるのですが、近年はWebサービスが隆盛しており、こちらを想起される方も多いのではないでしょうか。
私もどちらかというと後者をイメージします。
一昔前はパッケージ化されたソフトウェアを販売していた会社も保有しているノウハウを元にWebサービスを立ち上げる会社も存在します。
例えば、会計ソフトで有名な弥生会計という会社さんも近年はクラウド会計に進出して独自のWebサービスを立ち上げています。
今回、お世話になった企業さんは2社ともWebサービスを自社のサービスとして保有している会社さんです。
手始めに自社サービスのスタートアップ企業に行ってみた
今回お世話になったのはm−Labという会社さんです。
HARVESTという法人を対象にした、ソーシャルデータ/webメディア・ニュースを収集・可視化・AI分析を行えるサービスを開発・運営している会社さんです。
経営されている村上さん夫妻(@m_lab_jp,@murabon306)、本当にお世話になりました。
この場を借りて、改めてお礼を申し上げます。
村上さんとはTwitter転職をしているときに知り合ったのですが、採用を私がお手伝いした縁もあり、今回お世話になることになりました。
会社として得意な技術は主にPython、JavaScript。
PythonをバックエンドやAIのAPIとして用い、JavaScriptはReactやVueを使用したSPAが中心です。
お世話になる前、私は非常にモダンなフロントエンド開発に興味があり事前に学習していたので、フロントエンド開発のお手伝いをさせていただくこととなりました。
ReactとReduxを用い画面の設計と実装を担当しました。
開発の流れは口頭で簡単に機能の概要をヒアリングし、少しずつ作っていくというスタイルです。
設計書やコーディング規約といったものは存在しません。
元からあるコードを参考にしつつ、ひたすら自分で調べながら作っていきました。
…と簡単に言ってみたものの、業務としてそれをやるためにはそれなりに開発のスキルや経験が必要です。
このような開発手法をとっている自社サービスや受託開発の会社さんは多いと聞きます。
実際にやってみて、やはり「経験が浅い、未経験の人にはキツいのではないか」と改めて感じました。
未経験の人の場合は少なくとも入社前に入念な自習が必須です。
入念な自習をするためにプログラミングスクールに通ったりするのでしょうが、それでも多くの人は学習が圧倒的に不足していると現実はあると思います。
現に私に相談者で未経験から受託開発の企業さんに就職した方はこの点で苦しんでいました。
SESやSIerなら、合わないプロジェクトからは抜けれる可能性はありますが、自社サービスや受託開発の会社さんは退職以外で抜けられないと思います。
別にやるなとは言いませんが、そのリスクを考慮した上で十分な準備をしてから就職に望むことを経験者、未経験者問わず私は勧めます。
某超大手自社サービスにフリーランスとして潜り込んでみた
こちらは日本人なら誰もが知っているレベルのサービスを運営している会社さんであると言っておきます。
私はこちらのプロジェクトにフリーランスエンジニアとして参画しています。
守秘義務があるため仕事の詳細は省きますが、開発手法はスクラム開発を採用しており、短いスパンで既に稼働しているサービスに少しずつ改修を加えていく開発手法を採用しています。
こちらでは主にビックデータを取り扱うバックエンドの部分を担当しています。
使用されている技術としてはPython、Go、たまにJavaやScala、データの取扱にHiveやCouchbase、MySQL等が挙げられます。
私は開発だけでなく運用も担当しています。
開発だけでなく運用の部分もドキュメントが充実しているとは言えません。
コードを読み、仕様を把握する。
コードにはコメントなんて親切なものは殆ど無い。
運用作業もマニュアルはなく、有識者の口頭での指示を元に作業をする。
Gitの運用方法やコーディング規約といったものは存在しない。
整理されていない仕様を把握し、将来的に大規模な改修を担当することとなるため、責任重大です。笑
加えて、1週間といった短いスパンで小規模な開発するため、スピード感も求められ、エンジニアの技量に大きく依存します。
技術だけでなく、チーム内での適切なコミュニケーションや調整能力も求められます。
これらは勉強していれば身につくというものでもないので、業務上の開発経験がない人にはほぼ対応不可能であると感じました。
この会社さんで正社員としてやっていくには外で鍛えて満を持して転職するか、新卒から長い目で見てもらって少しずつ成長していくか、どちらかしかないと思いました。
私の場合ですが努力すれば対応可能であるものの、少しでも油断すると吹っ飛ぶ、もとい切られると感じました。
日々、精進していく所存です。
一概に素晴らしいとは言えないと感じた
上記、2社の経験は計2ヶ月程度で本当にちょろっと触りの部分だけといった感じです。
ですが、感じたのは「100%自社サービスがよいとは断言できないこと」です。
2社で共通して感じたのは以下のとおりです。
1. 要求水準は高い、仮に正社員の新人でも完全な未経験は厳しいこと
2. 自分で考えて動けなければ仕事にならない
3. 技術は常に進歩しており、常にキャッチアップしていかなければならない
これらを満たしつつ、働いていかなければならないため、合わない人は途中で潰れたりすることもあると思います。
IT業界自体変化の激しい業界ですが、特にこの分野はそれが激しいので適応できなければ厳しいと感じます。
2社の1番の大きな違いとしては、前者のほうが良くも悪くも確定していない部分が多いため、個人の裁量は大きくビジネスの根幹に関われる可能性が高いということです。
後者はよくも悪くも既にビジネスとして形になってしまっているため、既存の大きなサービスやレールに沿って仕事を進めていくこととなります。
もっとも、レールに沿って仕事をするだけでもハードルが高いのですが…。
やりたいことが実現できるなら、自社サービスはよいと思う
ここまで「微妙だなぁ」みたいなことを結構言っておいてなんなのですが、自社サービスの企業さんで働くこと自体は全然アリだと思います。
ビジネスとして考えた場合でもSIerやSESの会社であると事業が大きくスケールすることはありませんが、自社サービスなら大きくなる可能性はあります。
次々に色々なサービスを立ち上げたり、最新の技術を取り入れるのにも前向きな企業さんが多いため、サービス作りであったり技術が好きな人にはよい環境であると思います。
しかしながら、自社サービスの企業さんといっても星の数ほどあり、色々な企業さんが存在します。
事業内容も異なるし、何より会社との相性が大事だと思います。
自社サービスに限らない話だとは思いますが、自社サービスという形態だけでなく、サービスの内容であったり会社さんの目指すところと強く合致すれば、幸せに働けるのではないでしょうか。
この記事が気に入ったらサポートをしてみませんか?