BASEプロダクトチームブログ

ネットショップ作成サービス「BASE ( https://thebase.in )」、ショッピングアプリ「BASE ( https://thebase.in/sp )」のプロダクトチームによるブログです。

社内業務改善を行うCSEグループのご紹介

f:id:sharakoba:20201204192610p:plain

この記事はBASE Advent Calendar 2020の7日目の記事です。 devblog.thebase.in

こんにちは、BASEのCorporate Engineering CSEグループの小林です。
昨年まではProduct DevのShopグループに所属し、Instagram販売 App、顧客管理 App、メールマガジン App、時にはAndroidアプリの開発まで、幅広く「BASE」の機能開発に携わっておりました。
今までの開発経験をもとに、新設されたグループに異動しましたので、どのようなグループなのかを紹介させていただきます。

CSEとは

Corporate Solutions Engineering (略CSE)

「BASE」のショップ開設は120万店舗を突破し、登録される商品数、取引額が増える中、社内業務の効率化と財務の信頼性担保することを専門とするチームとして、1年ほど前にProduct DevのCorporate EngineeringにCSEグループが発足しました。

ミッション

コーポレートエンジニアのミッションは、ショップオーナーに安心してサービスを使い続けていただくために、業務の有効性及び効率性・財務報告の信頼性・事業活動に関わる法令などの遵守並びに資産の保全といった内部統制の環境整備と、DX(Developer Experience:開発者体験)の両立を考え続け、改善し続けていくことです。

上記のミッションで、私が好きなのは 「ショップオーナーに安心してサービスを使い続けていただくため」ここを大事にしている事です。
社内ではすごくたくさんの業務が日々発生しています。その中には属人化している業務などを、適切に作業分担・自動化などできれば、素早い対応ができるようになり、結果的にショップオーナーのためになります。

ミッション達成のために、大きく2つの業務をする

社内業務改善

  • サービス成長に伴い、増え続ける社内業務を見直し、サービスを安定的に提供するための業務改善
  • 社内で利用している管理画面の開発、銀行、外部の会計サービスとの連携し、作業の効率化
  • 属人化していた作業を適切に分担できるように、システムの改善

内部統制の整備

  • ショップ、BASE、取引先企業、株主の資産を守るために、不正がおこらないよう仕組みを整備/ルールづくり
  • 業務を適切な承認・適切な部門で業務が遂行されるよう、業務のプロセスを整理し体系化する

以下は誤った認識。CSEは、こういう目的のチームではない

新しくできたチームだったため社内でもCSEの意味が伝わらず、CSEは何をするチームなのか曖昧で、他のチームの人に正しく理解してもらえずにいました。目的とミッションを正しく知ってもらうために、間違った認識例もあえて定義もしました。以下の内容は、どれも深くCSEの業務に深く係る内容ですが、それが目的のチームではないという事です。

  • 社内用の管理画面の開発をするチーム
    • 業務改善で社内の管理画面の開発が起点となる事はあるが、開発担当ではありません。「BASE」に新しい機能がリリースされ、社内の管理画面にも開発が必要あれば、機能開発をしたプロジェクトメンバーで社内ツールも実装します。
  • IT全般統制に必要な開発をするチーム
    • IT全般統制で整備が必要な項目は、内部統制に関わるメンバーで議論し、統制が必要になる項目は出していきます。しかし整備項目は開発だけでなく、ネットワーク、DBなど多岐にわたるため、必要な開発などは他のチームなどにお願いしています。もちろん、全く実装しない方針ではありません。
  • 決済・売上に関する開発をするチーム
    • CSEとして経理部門などと連携する事が多く、ショップの売上周りデータを常に意識しています。経理部門とのデータ連携や突き合わせ作業のため開発はしますが、決済周りの実装を担当する事はほぼありません。
    • 内部統制の目的で、不正ができないような開発(整備)はするが、「BASE」の新規機能などの開発の設計などには関わる事は、ほぼありません。
  • 「BASE」の機能開発をしない チーム
    • 実はこれも違います。業務改善の一環で、「BASE」にちょっとした機能を追加すれば、解決する項目も多くあります。今年の11月には、メンバーの1人が売上データダウンロード Appという機能の開発に携わっていました。 開発設計・実装は別のチームにお願いする形となりましたが、売上についての知識やショップオーナーのニーズなどを深く理解できているからこそ、「BASE」の機能開発に関わっていく、良い例でした。

どのような業務をやっているか

CSEは、実際にどのような業務を行なっているのか、もう少し詳しく説明したいと思います。

社内業務改善

社内で多くの作業が毎日発生していますが、課題感をもって詳しく見てみると、大体このパターンに分類できます。

  1. 作業の属人化で、スケールしてない業務
  2. システム起因で、スケールしてない業務
  3. 対応できているが、自動化できる業務
  4. 承認プロセスなどで、作業効率が悪くなる業務

作業の属人化で、スケールしてない業務

1つの業務でも、複数のシステムで操作をする必要があるなり、条件によって操作が違うなど場合など、属人化していってしまいます。 また、1日で作業が完了しないタスクなども、どこまで作業したのかをエクセルで管理してしまうなど、よくあるかと思います。

解決方法としては、1つのタスクとして正しく定義をして、やらなくてはならない作業フローを構築していきます。ミスなく作業を完了できるよう、社内の管理画面または外部のシステムとの連携で、誰でも作業できるように設計・構築していきます。

システム起因で、スケールしてない業務

複数人での作業分担を考慮していない管理画面の要因で、分担できない業務などもあります。
管理画面に、タスク一覧などページもあるのですが、1人で作業していた場合は上から順に作業で問題なかったのですが、2人で作業分担にしようとすると難しくなっていきます。上から作業する人と下から作業する人に分かれて作業するなど工夫して運用していました。

同時に同じタスクをするなどの作業ミスが発生しやすいため、システム側で適切に作業を分けていく必要があります。

対応できているが、自動化できる業務

システムでの運用ができておらず、自動化ができてない業務。または、機械学習などを利用することで業務の負担を減らすこともできます。

社内の業務をヒヤリングしていくと自動化できておらず、手作業によって対応している内容が多くあることに気づきます。「BASE」の開発しているエンジニアは、「BASE」のシステムについてはとても詳しいのですが、社内で利用している業務ツール・外部システムの理解が浅いため、業務ツールの連携が弱く、結果的に手作業が発生しています。

毎日開設されるショップ、登録される商品、振り込み申請など多くの情報から、機械学習で自動化に貢献できる業務もあり、Data Strategyチームと協力し自動化をしていきます。

承認プロセスなどで、作業効率が悪くなる業務

一人で完結できない業務などは、他部署・上長へ作業を依頼、または稟議や上長の承認プロセスを得ないと実施できない業務など、人とのコミュニケーションが必要な業務です。下記の項目などが重要になってきます。

  • 承認プロセスや作業依頼のため、ワークフローツールの導入
  • 差し戻し原因となる入力不備おきないよう管理画面の改修
  • Slack通知などを利用して、コミュニケーションロスを減らす

内部統制の整備

BASE株式会社は、2019年10月25日に東証マザーズに上場しましたが、上場企業は、いわゆるJ-SOX法の遵守が求められます。そのため、2021年度末までにIT統制として不十分な項目の是正・必要書類の作成などが必要となってきます。

CSEメンバーには、IT統制や内部統制について深く理解しているメンバーがいなかったため、プロジェクトを開始する前にメンバー全員でIT統制についての読書会を実施しました。

週1回の読書会を通して、IT統制の要点や用語、書類などは理解する事ができるようになりました。しかし、IT統制について書かれている本の多くが、J-SOXが施行された2008年前後に出版された本が多いです。そのため、いわゆるWeb系の企業が想定されている本が少なく、ウォーターフォール開発やオンプレミスの運用の記載されている事が多く、BASEにはそのまま適用できません。
また、IT統制については各社によって事情が異なる事が多く、ネットにも有益な情報があまりありません。
BASEでは、GithubのPullRequestでの開発フロー(承認プロセス)、AWSを前提とした内容に読みかえながら、監査法人と議論を重ねています。

なお、昨年のAdvent CalendarでもGithubを活用した事例をあげています。 devblog.thebase.in

IT全般統制

  • 財務に関する不正が起きないように、社内のルールの策定・システムの改修
  • 統制がとれた開発ができるように、システム要件の定義

IT全般統制で整備が必要な項目が出てくると、開発、ネットワーク、DBに関する変更なども発生します。全てをCSEメンバーでは対応できないため、要件をまとめ、各部署と整備を実施して行く事が肝心となってきます。

IT業務処理統制

  • 財務に関わるシステム・業務手順、それにまつわるリスクの把握
  • 新しいApp、新たな取り組みなど、システム・業務手順の整備
  • いわゆる3点セット(業務フロー図、業務記述書、リスク・コントロールマトリクス)の作成

メンバー全員がエンジニア出身な事もあり、業務フロー図と業務記述書については、PlantUMLを用いて記述しています。
エクセルで図を作成してしまうと、バージョン管理ができず修正が発生した際に、修正箇所の把握が難しくなります。PlantUMLを利用すればテキストで管理できるため、githubでバージョン管理し、PullRequestで変更箇所、承認なども把握しやすくなります。

個人情報の取り扱いの方針定義など

J-SOXとは直接関係ありませんが、個人情報の取り扱い方針の定義などもしています。 ショップオーナーが安心してご利用いただくには、個人情報の取り扱いについても重要な要素となってくるため、指針などを策定し、適切に管理できるよう整備を行っていきます。

監査法人へ内部監査状況の報告

監査法人へ内部統制の状況を報告しています。
新しい機能など日々リリースされています。システムの変更内容、システムの構成、時にはテーブル構造を説明し、財務報告の内容やショップの売上が正しい事を確認し報告します。

まとめ

BASEの成長を支えてきた行動指針のひとつに「Move Fast」があります。内部統制については、統制内容によっては開発スピードを落としてしまう要因になりかねません。全員が重要視している指針だからこそ、どういった統制内容ならBASEの文化に合い、なおかつ統制として信頼できるかが重要になります。メンバーで統制内容を決める際に、一番気をつけている内容です。
業務改善では、私自身もすべての業務を把握していないので、「一度は業務をやってみる」ことを心がけています。アカウント権限などでできない業務もありますが、それでも一度は一緒に画面を見ながら操作することで内容を把握しているようにしています。一番の理由は、担当者から業務を聞いただけでは業務全体が把握しづらく、業務改善も部分最適になってしまうと感じているからです。
CSEのチームメンバーが社内業務について深く知ることで、他の部署とのミーティングで「○○ような事できますか?」という質問がどんどん出てくるようになりました。小さな問題や改善要望なども気軽に相談してもらえる環境になってきていると感じます。

明日はShopグループの栗田さんです。
お楽しみに。