Fujisanは、雑誌のECサイトの運営のみならず、様々なライフスタイルをカバーする趣味・嗜好のプラットフォーマーとして事業を展開しています。

実は、主力事業である雑誌の定期購読では、販売するための様々なルールがあります。
その中でも「定価でしか販売してはいけない」というルールがあり、資本力や規模メリットを活かした薄利多売は行えないのです。

値段で勝負がつかないならどこで戦うのか?
それは、サービスのユーザー体験に他なりません。お客様に良い体験をしていただく事が何より大事です。 そのため、私たちはこのECサイトを含む様々なプラットフォームを運営するにあたってのフロントエンドやバックエンド、注文から配送、カスタマーサポート、デジタル雑誌に関しては記事の作成まで、ほぼ全てのシステムを内製しています。

技術者の腕が会社の利益に直結する、そんな仕事なのです。

開発の文化

企画立案、業務プロセス設計、実際の開発から運用まで、全てのフェーズに関わっていただきます。
もちろん最初はできるフェーズをメインに、チームメンバーのサポートのもと、段々と関わるフェーズを増やしていきます。
Fujisanはエンジニアのキャリアパスとしてマネージャー/エキスパートの2種類があるため、個人の目指すエンジニア像に近づくように業務を遂行することが可能です。
システムは、ほぼ全てが内製となっています。
雑誌販売事業の利益を上げていくために必要なすべての企画をシステムの立場から具現化していきます。

開発の風景

開発の環境

ECサイトFujisan.co.jpを含め、様々なファンビジネスを展開するプラットフォームの多くのフェーズに関わることができます。 業務の影響する範囲が広く、調査や調整に割く時間は多い傾向にあります。

ですが、より早く効果を出せるよう機能を細かく分け、なるべく短い単位でのリリースを心がけています。
開発手法

開発手法としては、アジャイル開発手法の一つであるスクラムを採用しています。
基本のプロジェクトツールとしてRedmineを採用しており、Redmine上のかんばんを見ながら毎朝デイリースクラムを行っています。 また、チャットツールとしてSlackを採用しており、プロジェクト毎にチャンネルを作ってコミュニケーションをとっています。

開発言語

言語として、現在はJavaもしくはKotlinがメインです。 過去にはGroovyを選択していた時期もありましたが、10年ほど使ったうえで現在の組織の状態とはそぐわないと判断し、社内デファクトスタンダードから外しています。 Groovyは言語の表現力に期待して採用しましたが、現在ではバージョンアップによってJavaの表現力もかなり上がっているため、エンジニアの母数が遥かに大きいJavaに回帰しています。
ただし、これらの言語しか使えないというわけではなく、常に新しいものを提案できる環境です。 もちろん、提案には根拠と責任が伴いますが、Groovyの採用もエンジニアの提案から生まれたものであり、採用からすでに10年が経っています。

オープンソースの採用に積極的な空気があり、いわゆる自社内でしか通用しないフレームワークというものは存在しません。 まだ今は不十分ですが、オープンソースへの貢献も心がけています。

開発の管理

継続的インテグレーション

CIツールとしてJenkinsを採用し、Webistranoと連携させてDeployを行っています。 必ずテストを書くことをルールとしており、Jenkins上でテストの網羅率や成功率を常に確認できるようになっています。 自動テストを重視している理由としてはプロジェクトの性質にもよりますが、初期コストよりも運用コストを重視していることが挙げられます。
また、現在インフラをAWSに変更中で、AWSを使った場合のCI/CD環境も構築中です。
Fujisanは開発担当者が運用保守も担当するため、運用コストが高ければ新規プロジェクトにかける時間が削られてしまいます。 そのため、運用中に開発者が対応しなければいけない問題を減らした状態でリリースすることを心がけています。 サービスを運用していく中で、移り変わるビジネス要因に応じて常にサービスを改修し続けるため、改修を容易にしデグレードがないことを担保する手段として、自動テスト & CIを取り入れています。

運用

監視システムとしてNagiosを採用しており、サービス一覧画面を見るだけで、自社サービスのどこに問題が起こっているかをすぐに把握できるようにしています。 ログの集約化に関してはまだあまり手を付けられておらず、これからの課題です。
自社サービスですので、自分たちが作ったシステムは自分たちで運用しています。 急な障害等にも対応しなければいけないので、100%純粋に開発だけに集中できるわけではありませんが、いかに障害が発生しないようにするか、また発生しても簡単に復旧できるように設計するかが腕の見せ所でもあります。

バージョン管理

様々な企画が並行して動くことが当たり前の環境なので、バージョン管理システムにはGitを使い、並行開発性を高めています。 外部開発パートナー会社との共同開発ではGithubを使い、PullRequestベースでの開発とコードレビューを行うことによって、品質を担保する試みを行っています。

技術の共有

誰でも突発的なワーキンググループを主催することができ、他チームにも広めていきたい手法やツール等の共有が可能です。
また、別に社内チャットとしてSlackを採用しており、開発者用チャンネルではワーキンググループを開催するほどではない技術的な小ネタや雑談が行われています。

開発機器

Fujisanでは、社内で統一された機器はなく、得意分野や主に携わる開発フェーズ、業務環境に合わせて多種多様な開発機器を用意しています。 入社時に18万円(税込)以内で好きなPCをリクエスト可能で、ご自身で機器を選択できます。

エンジニアの技量を最大限生かせる環境を準備し、皆さまをお待ちしています。

TOP
TOP