Sansan Tech Blog

Sansanのものづくりを支えるメンバーの技術やデザイン、プロダクトマネジメントの情報を発信

遂に念願の「異体字入力」を開始しました

DSOC Data Management Group*1 の三原です。
2020年2月4日、多くのご要望をいただき個人的にも念願であった、Sansanサービスにおける「氏名の異体字入力」がついにリリースされたため、ご紹介させていただきます。

Sansanではこれまで、スキャンされた名刺の氏名に異体字*2が含まれていた場合、該当する文字は「●」と表示される仕様となっていました。たとえば、はしごだかを含んだ「髙橋たろう」という氏名であれば「●橋たろう」となります。それが今回のリリースにより氏名がそのまま「髙橋たろう」と表示できるようになりました。
以下で詳しく説明していきます。

異体字対応の背景

前述したとおり、これまでは氏名の異体字に該当する文字は「●」で表示するというサービス仕様になっていました。

f:id:juri20m:20200114181527p:plain
土に口のいわゆるこの つちよし は「●田」に置き換えていたわけです。

「●」と表示する仕様だと、ユーザーがメール配信や名刺検索などを行う際に利便性が落ちる為、定期的に改善の要望が上がっており、これまでも何度も対応しようとしてきました。
しかし、様々なシステムに関わる改善となるため、かなり影響範囲が大きく、なかなか手が付けられずにいました。(ほんとにごめんなさい。)

「異体字を表示できないのなら常用漢字に置き換えて欲しい」という声を頂いたこともあり、それなら影響も大きくないのですぐに対応できる...と飛びつきそうになったこともあったのですが、「御礼状などをお送りする際に本来と異なる漢字の宛名では失礼にあたる。それであれば●のままにして、手動で修正できる方が良い」というご意見を頂き、何とか踏み止まったこともあります。
あの時、「常用漢字に置き換える」という対応をしていたら、恐らく異体字入力への対応は先延ばしになった可能性が高かったと思います。(ご意見に感謝!)

*1:Data Management Group は、DSOCで唯一フロント職のメンバーで構成されているグループです。

*2:異体字については様々な見解があり、明確に定義づけはされていません。ですが、ここでは「同じ意味・発音であり、対となる常用漢字が存在する文字」と定義したいと思います。そして異体字の中には、旧字・略字・俗字 が存在するとされていますが、それをひっくるめてここでは 異体字 と呼びます。

続きを読む

re:Invent 2019 に参加したら Chaos Engineering を実践したくなったという話

はじめに

こんにちは。
Sansan事業部プロダクト開発部に所属しておりますインフラ領域のリードエンジニア兼プロダクトマネージャーの岩下です。

先日12月に開催されました re:Invent 2019 に今回も参加させていただきました。
相変わらず圧巻としか言いようのない規模でしたが、前回より15000人ほど増え、65000人ほどの人々が参加されていたと Keynote で発表されていたことを覚えています。

f:id:rriifftt:20200128112158j:plain
Monday Night Live の様子

参加にあたって、以下の2点を個人的なテーマとして設定してみました。

  • 今取り組んでいることは正解なのか答え合わせをする
  • レベルアップのためのインプットを得る

上記を念頭に置きつつ事前にイベントカタログを眺めてみると、 Resiliency という単語が目に付いてしまう自分に気づきます。
昨年発生した AWS の AZ 障害の経験から Chaos Engineering の実現性を模索していたという背景もあり、この手のセッションには必ず参加しようと心に決めたのでした。

結果どうだったかといういうと、表題の通り Chaos Engineering の実践に本気で向き合おうと考えるに至っています。

Chaos Engineering とは

Chaos Engineering とはシステムの一部に偶発的な障害を発生させ、復旧作業を行うことでシステムや組織の不備を洗い出し、システムの信頼性を向上させる取り組みとして知られているように思えます。
Netflix 社が2015年に公開した文書 Principles of Chaos Engineering から広く認知されはじめたものと認識しておりますが、この文書によると Chaos Engineering は以下の様に定義されています。

経験に裏打ちされたシステムベースのアプローチは、分散システムの混沌な状態を大規模に対処し、現実的な条件に耐えるシステムの高い信頼性につながります。 私たちは、制御された検証においてそれを観察することによって、分散システムの動作について学びます。私たちはこれをカオスエンジニアリングと呼んでいます。

以上より、とりあえず破壊しても壊れないシステムを構築しよう!という意味ではなく、学びを得ることに軸足を置いているということがわかります。
本質が何であるのか、そのヒントを自分は re:Invent で得られたように思います。

続きを読む

タイムゾーン対応で振り返る 既存プロダクトのグローバル化

プロダクト開発部 Globalプロダクトグループの天貝です。

私の所属の正式名称は Globalプロダクトグループ ですが、開発部では グローバルチーム と呼ばれています。海外のユーザからのフィードバックをもとに、海外のユーザに今以上に価値を訴求できるようなプロダクトを目指して開発を行っています。外国籍のエンジニアも所属しており、勉強会やコードレビューも英語で行っています。 

今回は、昨年8月にリリースしたタイムゾーン対応を振り返りながら、

  • 今後注意すべきこと
  • 勉強になった議論・判断
  • 苦労したこと
  • 気づいたこと・学んだこと

と、タイムゾーン対応から学んだ既存のプロダクトをグローバル化する難しさや今後意識することを書こうと思います。

Sansanが抱えるグローバル化の課題

Sansanのユーザのうち海外で使ってくださっているユーザの割合はまだまだ少ないです。これは海外のユーザにとって違和感のあるUI/UXであることが要因の一つに挙げられます。
Sansanは『まずは』日本国内ユーザ向けに、と作られたプロダクトのため、UXを改善するためには対応しなければならない課題がたくさんあります。これらに向き合い、改善していくのが今のグローバルチームのミッションです。

タイムゾーン対応とは

以前、海外のユーザからこのようなフィードバックがありました。

  • 自分が指定した時間にリマインドやメールが送られない
  • 画面で表示される時間が現地の時間じゃない

これらの問題はSansan上の日時が日本時間で扱われていることが問題であり、ユーザの環境に合わせて日時を変換する必要があります。この問題を解決するのがタイムゾーン対応プロジェクトです。

f:id:samagai:20200124101106p:plain
Sansanのユーザ情報設定画面で、タイムゾーンが設定できるようになりました。画面やメールに表示される日時やメール送信・リマインド通知時に設定する日時にタイムゾーンが適用されます。

タイムゾーンとは

普段日本で生活をしていてタイムゾーンを意識する機会はほとんどないと思います。まずは、そもそもタイムゾーンってなに?タイムゾーンが設定できるとどんな良いことがあるの?を簡単に説明します。

タイムゾーンとは共通の標準時間を使う地域のことであり、UTC(協定世界時)との時差で表されます。日本の場合は UTC+0900 であり JST と呼ばれます。
また、サマータイムという制度を導入している地域は季節によってUTCとの時差が変わります。時差だけでなくサマータイムの情報を持っているタイムゾーンをサービスに導入することで、その地域に住んでいるユーザごとに正しい時間を提供できるようになります。

続きを読む

DSOCで行なっているメタデータ管理について

初めまして。DSOC Data Direction Groupの有山と申します。
現在、Data Direction Groupでは私を入れて主に2名のメンバーがデータエンジニアとして職務と向き合っています。
ところで、データエンジニアの仕事とはどういうものを想像するでしょうか。Data Direction Groupでは以下の業務を行うべき職務と定め、実行しています。*1

  • データ分析基盤の設計・構築・保守・運用・改修
  • 多部署との連携や調整
  • BIツールを用いたダッシュボード作成
  • メタデータ管理

その中でも今回はメタデータ管理についてこのブログで解説していこうと思います。

概要

メタデータ管理の内容について

そもそもメタデータとはどういうデータでしょうか。
一般的には「データに関するデータ」として説明され、データそれ自身が付加的に持つデータと理解されます。
テーブルの中に格納されるデータを例にとると、例えば以下のような項目がメタデータと考えられます。

  • データのスキーマ(形式/データ型など)
  • データのファイルサイズ
  • データの作成日付
  • 格納されるテーブル名
  • そのテーブルのカラム

このように、データそれ自身について説明してくれるデータのことをメタデータと呼び、データの管理をする上でとても重要な情報だと言えます。
メタデータ管理とは、このメタデータを収集、管理することで、日々扱っているデータを適切にマネジメントしていく業務と定義しています。

取り組みを始めた経緯

この取り組みは、主に以下の背景、課題、要望を理由にスタートしました。

  • サービスのスケールに比例して、DBのテーブルやS3バケットなど、作成しなくてはならないリソースが常に増えていく。
  • 増えていくリソース全てに対して、その使われ方、どういうデータを格納しているかを把握して開発やデータ管理に役立てたい。
  • 検証で作った一次テーブルなど、不要となったリソースは即時削除したい。
  • 作成したリソースに対する、エンジニアへの管理の意識づけをより徹底したい。

*1:データエンジニアの職務について、同グループ所属の千葉がこちらの資料でも説明しています。https://speakerdeck.com/sansanbuildersbox/construction-of-business-card-data-analysis-infrastructure-and-future

続きを読む

新卒エンジニアが書籍購入支援制度を活用して入社後9ヶ月で読んだ本

こんにちは。DSOC開発部の湯村です。
私は今年の4月に新卒として入社しました。学生時代はキノコの遺伝子を破壊する研究をしていて、プログラミングは入社する1年半前くらいに趣味で始めた程度でしたが、今はGEESと呼ばれるSansan、Eightから名刺画像をデータ化するシステムをRailsで作っています。

Sansanの社内制度にGeek Seekというものがあり、書籍などの購入費用が補助されます。
入社してからは、業務での経験に加えて、この制度を活用して購入した本を読むことで、エンジニアとしての成長を加速させていきました。
ということで今回は、他の新卒エンジニアと比較しても知識も経験も少ない私が、入社してからの9ヶ月で業務に必要な知識を身につけるために読んだ本を紹介したいと思います。
エンジニアを目指す方にも参考にしてもらえると幸いです。

続きを読む

SansanにJOINしました〜入社1週間で感じたこと〜

こんにちは!Sansan事業部 プロダクト開発部の古川です。
ふるしんとお呼びください。
私は2019年12月16日にSansanにJOINし、大阪オフィスでSansanプロダクトのAndroidアプリの開発に従事しています。

play.google.com


入社してまだ1ヶ月足らずですが「こっ、この会社…できる…!!」と、エンジニア目線で感じたことがたくさんあったので記事にしておこうと思います。
もちろんエンジニア以外の職種の方にも共通のことは言えると思います!

入社2日目にはコードを書いてた

入社するとどこの会社でもまずは研修がありますよね。
Sansanの場合は毎月多くの方が入社されるため、研修を非常に効率化しています。
「いつでも人を迎え入れる準備ができている」とも言い換えられますね。

業務で利用するPC(私の場合はMac)も事前にアンケートがあり、初日に出社すると既に机の上にキッティングされた状態でありました。

そして入社2日目にはAndroid Studioなどの環境構築も終え、コードを書き始めていました。

中途入社の場合は「受け入れの部署に任せる」といったことが多いので「まぁ1週間くらいは仮のPC使っといてよ」ということを、過去には普通に経験しています。

Sansanは「エンジニアとして入社して、エンジニアとして素早く能力を発揮できる環境」が用意されています。
これはエンジニア以外の職種でも同じことが言えるのですが、意外と素晴らしいことなのだと感じました。

技術書を買うのに躊躇しなくなった

技術書って高いですよね。
普通に数千円します。

簡単に言うと「本買ったりセミナーに行くための支援が年間数万円あります」です。

私はこれまで個人的に技術書を買うための予算が確保できず、泣く泣く見送ることが多くありました。
その度に「あぁ…また成長の機会を失った…」という感覚に陥っていました。

しかしSansanでは「専門的知識・技術を必要とするメンバーの学習を支援し、個々の技術・知識の促進をはかる」という目的のもとGeekSeekという制度が運用されています。
こちらの記事でも少し触れられています。
buildersbox.corp-sansan.com


Geek Seekの中にGeek Seek Skillというものがあります。
「技術 or デザインなど専門書籍購入・オンライン学習受講・資格取得・資格受講料の支援をする制度」です。

この制度を利用することで技術書を難なく購入することが可能となります。
買うだけ買っておけばいつでも読めますからね!

積ん読が溜まり過ぎなくなった

Geek Seek Skillで技術書を好きなだけ買っても、積ん読になってしまったら意味がないですよね。

積ん読になってしまったら意味がないですよね。

大事なことなので二度言いました。

弊社では、毎日いろいろなところで「ランチ勉強会」があります。
Geek Seek Skillで購入した本をこのランチ勉強会の時間を使って皆で一緒に読み進めることで、積ん読を作らない&仲間と議論できるので高い習熟効果を得られます。

ちなみにこのランチ勉強会も会社からランチ代の補助が出ます。
Geek Seek Workshopという制度です。

この勉強会は部署を跨いで行われることも多いので、部門間の連携にも寄与していると思います。

まとめ

私が驚いたのは、人事からのフォローがどちゃくそ厚いということです。
入社直後からたくさんフォローをいただき、定期的に「大丈夫? その後どうです? 入社前後でギャップとかあります?」的なことを聞いてくれたりします。

また、「エンジニアがエンジニアとして過ごせる環境」が整備されています。
私にとってはオアシスのような環境が揃っているなと感じました。



Sansanではたくさんの仲間を募集しています。
私と一緒に積ん読を潰しませんか?

jp.corp-sansan.com

ECS Capacity Auto ScalingをTerraformで実装する

はじめに

DSOCインフラチームの藤田です。昨年からプレイしているデス・ストランディングがまだ折り返し地点にも至っていなかったことを知りました。原因は一生懸命国道を作りすぎたためだと思います。

今回は昨年のre:Inventで発表されたECS Capacity Auto ScalingをTerraformで実装してみた結果を共有します。

ECS Cluster Auto Scaling とは

一言でとても乱暴に説明すると、ECS on EC2においてEC2のオートスケーリングを考えなくても良くなります。今回はTerraformで実装した部分にのみフォーカスするので詳細は割愛します。以下リンクで詳しく説明されています。

dev.classmethod.jp

aws.amazon.com

またこちらではキャパシティの計算方法や、スケールインの挙動などが詳しく説明されています。

aws.amazon.com

続きを読む

© Sansan, Inc.