見出し画像

意外と普通?Salesforceアプリ開発!怖くないよ!

こんにちは、チームスピリット採用担当です! 

当社は、勤怠管理や工数管理などのバックオフィス業務のDX化を支援するクラウドサービス「チームスピリット」というSaaSプロダクトを開発・運用しています。

プロダクトの特徴としては、クラウドプラットフォームとしてSalesforce Platformを採用している点にございますが、エンジニア採用をしている中で、「Salesforce Platformでのアプリケーション開発のイメージしにくい」という声もよく伺います。

この記事では、チームスピリットに興味を持ったけど、実際の開発環境ってどうなの??Salesforce Platformでの開発って??という方向けに、Salesforce開発未経験で入社した当社エンジニアメンバーがリアルな話を熱く語ってくれました!

ちなみに・・・こんな方に読んでいただけるとうれしいです!

  • SaaSプロダクトのエンジニアに興味がある方

  • チームスピリットの開発組織に興味のある方

  • Salesforce Platformでの開発に興味がある方



メンバー紹介

進藤さん

進藤さん
IT業界で20年以上のキャリアを誇るベテランエンジニア。キャリアはSESから始まり、その後10年前に独立し、チームスピリットに入社前までSIの仕事をされてきました。JavaによるWeb系開発を中心に経験。2023年5月にチームスピリットへジョイン。

Salesforce Platformでのアプリ開発ってどんなイメージでしたか?

―採用担当
早速ですが、Salesforce Platformでアプリケーション開発する、というイメージを持っていない、という方も多くいらっしゃるので、どういった開発になるか教えてもらえますか?例えば、他の言語やプラットフォームでは何に似ているか、どういったところが特徴的か、など教えてください。

―進藤さん
・入社前のイメージ
まず入社前に思っていたイメージですが、進藤個人としての正直な気持ちを言えば、Salesforceにロックインされるのは、自分の市場価値的にどうなのだろうという疑問は正直に言ってありました。
ApexというSalesforceの提供言語を使わないといけない、環境も基本がSalesforceが前提となるため、このスキルは他でも活かせるのだろうかという懸念がありました。

・入社後の変化
入社後の今は、Salesforceにロックインされるというよりは、「Salesforce プラットフォームを使う上でどうしてもやらざるを得ない制限なんだな」という印象に変わってきています。
また、最近はSalesforceができるだけ市場の標準に合わせようとしているという動きを感じます。なので、入社前に考えていたよりは、ロックインという感じは薄れてきていますね

―採用担当
なるほど、進藤さんも同じような懸念を持たれていたと。ただ、実際に触れてみてSalesforceプラットフォーム独自の部分もありつつも、ロックインされている感じは薄れてきているんですね。

Salesforce Platformの開発環境について

―採用担当
Salesforceにロックインされてしまい、他でも活きる技術力を高められないのではないか、と質問されることもあります。実際のところ、どうなのかもう少し具体的に教えてもらえますか?

―進藤さん
バックエンドとフロントエンドでそれぞれお話していきますね。

・バックエンド
バックエンドは多少ロックインされる感があります。しかし、誤解を恐れずに言えば、昔のJavaのWebフレームワークっぽさがあります。Apexという言語自体も、昔のJavaのような言語である。と説明すると雰囲気が伝わるかなと思います。
きれいな表現をすると、 Apex / Visualforce の組み合わせは、シンプルな古き良き時代のJavaのWebアプリケーションフレームワークを触っている時と似た感触があります。
ただ、これは触れてみての想像ですが、Salesforceが囲い込みをしたくて変えたというよりは、Salesforceの仕組み上Apexという言語を作らざるを得なかったのだろうと感じています。ApexもVisualforceもシンプルなので習得の難易度は低い方かと思います。
Javaの経験者であれば問題なく馴染めると思いますし、Java以外でも何かの言語の経験があればそれほど時間がかからずに習得可能だと思います。

・フロントエンド
フロントエンドは逆に全くロックインされません。ブラウザ上で動くものなので、一般的なWeb開発の技術が使えます。別チームではReactを使って開発していますし、ほぼ無制限に選ぶことができます。
ウィジェットを作る時は多少Salesforceのお作法がありますが、これもそれほど複雑な話ではありません。フロントエンドについてはSalesforceだから…というのはあまりないという感じです。

―採用担当
バックエンドはJavaのWebアプリケーションフレームワークに似ていて、フロントエンドは制限がほぼないんですね。

Salesforce Platformでのアプリ開発は、今までの開発と違う?


―採用担当
もう少しSalesforce Platformでのアプリケーション開発について教えてください。
通常のWebアプリケーション開発と異なるところはどういったところでしょうか?具体的に、どういったところが難しいか教えてもらえますか?

―進藤さん
SalesforceプラットフォームはPaaS(Platform as a Service)なので、ガバナ制限というものがあります。代表的な例だと、処理時間は6秒を超えてはいけない、メモリを6MB以上使ってはいけない、というような制限です。通常は何も意識せずに、数千人のお客さまでもプラットフォーム側でスケールしてくれて、問題なく動いてしまいます。
それゆえに、開発側が大量データを考慮しない実装をしていても、気が付かないということが起こります。そして、規模の大きい企業さまに導入された際、ガバナ制限にかかったり、性能劣化してしまったり、という問題が発生してしまいます。
ガバナ制限にかかってしまうと、その処理はエラーになってしまいます。遅くても処理がされるのであればまだ救いがあるのですが… これは本当に難しさを感じますね。逆に、そういった考慮をすれば、インフラは意識しなくても大手企業に導入して利用していただけるアプリケーションが開発できるということでもあります。このことは実は凄いことだと考えるようになりました。
ガバナ制限が難しいという話をしてきましたが、アプリケーションを開発する際に、計算量を考えるとか、データ量に応じた処理を組む、というのは重要なことであり、当たり前のことです。ガバナ制限という仕組みでそういうことを意識するようにしてくれていると考えると、ある意味では開発者フレンドリーなのかもしれません。

―採用担当
いろいろな制限があるんですね。ただ、その制限もある意味、大企業でも利用していただけるようにするためのベスト・プラクティスでもある、と。

Salesforce開発って楽しい!

オフィスにて、Salesforce開発の楽しさを担当者に話す進藤さん

―採用担当
では、難しいところばかり聞いてもアレなので、今度は楽しいところも教えてもらえますか?

―進藤さん
まず、思うのは本当に大量の機能が用意されている点です。
普通なら自分で実装しなければいけないことが標準で用意されていることが多いです。また、定期的に新機能がリリースされるので、「この機能を使ってこんな新機能を提供できる!」というのを考えるのが楽しいところかなと思います。
また、Salesforceの機能を活用して、柔軟なカスタマイズができるように作れるのが面白いなと思います。うまくハマると、開発量を減らせて、しかも柔軟な対応ができてお互い幸せになれます。
例えば、このデータ構造だとレポート(帳票)を作りにくいので、「システム的には不要だけれども、こういうカラムを追加しておこう」というような、「こうしておいたらユーザーさんが喜んでくれるかな?」というのを考えるのが楽しいです。
(Salesforceの世界では帳票をお客さまがご自身で作ることが可能です)

あとは学習コンテンツがとても充実しています。
Trailhead」というSalesforceが提供している学習コンテンツがあり、開発者としては非常に助かります。
何か新しいことをやろうとした際には必ずTrailhead内に学習コンテンツがあり、説明から理解度テストまで用意されています。またコンテンツによってはソースコードを書いて開発まで実行し、内容が間違っていないかを確認してもらえる機能もあるので、とても重宝しています。
あとは問題をクリアしていくとTrailhead内のポイントや称号のようなバッチも貯まりm¥ゲーム性もあって強くなっていくのを感じられるのもいいですね。

―採用担当
最近も生成AIを利用した機能を発表していましたよね。個別の開発プロジェクトでは取り入れられないような技術も、プラットフォームとして提供してくれる機能を利用できるのはよいですね。

結局今はどう思っているんだい!

―採用担当
ここまで熱く語って頂きましたが、実際のところSalesforce Platformでの開発について今はどう考えていますか?

―進藤さん
入社前に考えていたSalesforce Platformでの開発だからキャリアの選択肢が狭まるという心配は杞憂でした。Salesforce Platformは、日々進化を続けています。そのため、流行の流れから取り残されることもありません。世の中の流行りの技術についてはちゃんとフォローしてくれています。なので、Salesforceだから技術の流れに遅れる。みたいなことはありません。
次に、キャリアについて考えると、Salesforce自体が世界中で広く使われているものなので、スキルを発揮できる場所は十分にあると考えています。なので、今やっていることが無駄になる、ということはあまりないかなと思っています。
Salesforce Platformを使うことで、インフラやデータベースのことをSalesforceにすべてお任せして、お客さまへ価値をお届けることに集中できています。何より、休日に障害が発生する心配がないのは、精神衛生上本当に良いです。

チームスピリットに興味を持ってくれた皆さまへ

―採用担当
最後にチームスピリットに興味を持っていただいた方に向けて一言お願いします!

―進藤さん
実はSalesforceに詳しい必要はありません。誤解を恐れずに言うと、Salesforce向けのアプリケーション開発とは、Salesforceをプラットフォームとして使うということなので、Salesforceの知識がない状態でジョインしても全く問題ありません!
それでも、本当に必要な知識は、入社後のオンボーディングで学ぶ時間があります。十分な長さのオンボーディングプロセスがありますので自分もじっくり学ぶことができました。また、社内にものすごくSalesforceに詳しい人が何名もいるので、本当に困ったら助けてもらうことができます。なので、「Salesforceに詳しくないので応募やめようかな…どうしようかな… 」みたいな心配は不要です。
ありがたいことに、チームスピリットというプロダクトをお使いになっているお客さまはとても多いです。そのため、自分が開発している製品を実際に使っていただいていることを実感できる機会が多く、やりがいのある仕事だなと思います。エンジニアにとって、働きやすい環境だと思いますし、私はチームスピリットに入社してよかったなと日々感じています。



最後までお読みいただきありがとうございました!
チームスピリットでは新卒・中途問わず様々な職種で新たな仲間を募集中です。採用に関する最新情報はコチラをご覧いただき、まずはカジュアルにお話するところからお互いの目指すところや取り組みたいことを擦り合わせていきましょう!
社員一同、皆さまからのご応募心よりお待ちしております!

カジュアル面談はコチラから!


この記事が気に入ったらサポートをしてみませんか?