PowerBIよもやま話

この記事は 弥生 Advent Calendar 2020 の17日目の記事です。

弥生の川本です。開発本部でQAを担当しています。
皆さん、QAってご存知でしょうか。
一般的には、Quality Assurance=品質保証と呼ばれることが多いですね。 会社によっては品質管理と呼んでいたり、業務内容がテストだけにフォーカスされていたり、定義にバラつきがある印象です。
と言うより、「Quality Management」「Quality Control」「Quality Assurance」がごちゃ混ぜになっているのかな。 特に「Quality Management」「Quality Control」をどちらも日本語で「品質管理」と訳してしまうのが混乱の元のように思います。
弥生のQAがどのような活動をしているかと言うと、「品質監査(Quality Audit)」はもちろん、「プロセス・指標の策定」や「プロセスの啓もう」なども行っています✨
なので一般的な定義に照らし合わせると、「Quality Assurance」+「PMO (Project Management Office)」という定義が近しいのかなと思います。

さて、ここまで書いておきながら、今回のテーマは「QA」ではありません笑
タイトルの通り、今回のテーマはMicrosoftが提供しているBIツールであるPowerBIについて、雑多に書き連ねます。

BIツール(BIシステム、ビジネス・インテリジェンス・ツール、英語: Business Intelligence tools)とは、企業の基幹システムで生成されたデータを、ユーザ自身が抽出・加工するためのアプリケーションソフトウェアである。加工したデータは企業の意思決定に利用される
出典:BIツール - Wikipedia

ノンプログラミングで集計できる!

PowerBIには「コネクタ」と呼ばれる機能が搭載されています。これは文字通り、PowerBIと各種データをコネクト(接続)するための機能です。 これまでExcelファイルでVBAマクロ等を駆使してデータ集計してきた方ならイメージしやすいと思うのですが、Excel集計の何が大変かって、まず集計対象のファイル種別やフォーマットにあわせてカスタマイズすることが大変だったと思うのです。
ファイル種別はTxtだったりCSVだったりXmlだったりExcelだったり様々ですよね。さらに同じファイル種別でもデータ構造が異なっていて、集計対象にあわせてカスタマイズする経験をした方も多いのではないでしょうか。
PowerBIのコネクタは、その悩みを(概ね)解消してくれます👍

今のところ私が主に使っているのは以下の7種類だけですが、基本的にPowerBIのUIに沿ってポチポチするだけでデータを取得することができます。正直めっちゃ楽ちん!

  • Excel
  • CSV
  • Json
  • Odata
  • MySQL データベース
  • フォルダー
  • Web

ちなみに2020年12月現在、PowerBIが対応するコネクタは実に143種類もあります。
Power BI Desktop のデータ ソース - Power BI | Microsoft Docs

プログラミングできるとより捗る!

ノンプログラミングでも使えるとは言え、やっぱり簡単なプログラミングの知識はあった方が良いなと思います。 データの取得自体はお手軽に実現してくれるのですが、欲しいデータ構造で取得できなかったり、大量データの取得に失敗したり等の課題にぶつかり、私も試行錯誤する日々です。

タイムアウトでデータを取得できない!

少し前に私がつまづいた部分についてお話をします。
背景として、弥生はチケット駆動開発のプロセスがあり、チケットのデータを取得しようとしていました。 チケットはWebブラウザからアクセス可能なので、試しにWebのコネクタでチケットのURLを指定したところ難なく取得できました。
しかし該当のプロジェクトの全チケットを取得しようとすると、何回やってもタイムアウト。。。
オプション設定からタイムアウト時間を延長してもタイムアウト。。。

PowerBIの機能だけでは打つ手がなさそうだったので、そもそもチケット件数が多すぎるからWebクエリーではデータ取得できないんだと仮説を立てました。
つまり、1回に取得するデータサイズを減らして複数回に分ければいけるのでは?というExcelマクロ的な発想です。

関数化してぐるぐる回す!

ここからは実際にPowerBIでどういう操作をしたのかをお見せしたいと思います。 品質データは公開できないので、サンプルとして弥生コーポレートブログを読み込む処理を関数化してみました。

①Webコネクタでデータを取得

  • ホームメニューの「データを取得」をクリック f:id:ym_AdventC:20201211162853p:plain:w600
  • 「Web」をクリック f:id:ym_AdventC:20201211163134p:plain:w600
  • 取得対象のURLを指定 f:id:ym_AdventC:20201211163138p:plain:w600
  • 取得したいデータ構造のテーブルを選択 f:id:ym_AdventC:20201211163141p:plain:w600

    ②webコネクタで自動生成された処理に、「PageNo」の引数を追加して関数化(詳細エディターを直接編集)

  • ホームメニューの「データの変換」をクリック f:id:ym_AdventC:20201211163818p:plain:w600
  • 詳細エディターから直接編集 f:id:ym_AdventC:20201211163821p:plain:w600
  • 以下の内容を追記 f:id:ym_AdventC:20201211163824p:plain:w600

    ③引数PageNoとして1~30までのリストを渡して、ブログの1ページ目から順番に読込

  • 列の追加メニューの「カスタム関数の呼び出し」をクリック f:id:ym_AdventC:20201211164815p:plain:w600
  • ②の関数を指定し、引数PageNoとして1~30の数字が入力された列を指定 f:id:ym_AdventC:20201211164819p:plain:w600
  • カスタム関数のテーブルを展開 f:id:ym_AdventC:20201211164831p:plain:w600
  • 全データの取得が完了 f:id:ym_AdventC:20201211164834p:plain:w600

いかがでしょうか?関数化と書きましたが、ただ引数を追加するだけで実現します笑
あと、重要なポイントがもう一つあります。

Web.Contents("URL", [RelativePath=""])

この記述です。今回実現したのは「動的データソース」と呼ばれる仕組みです。動的データソースには厄介な以下の制約があるのですが、この記述であれば制約に引っ掛からずに更新スケジュール機能(自動更新機能)を使用することが可能です。

ほとんどの場合、動的データ ソースを使用する Power BI データセットを Power BI サービスで更新することはできません。
Power BI でのデータの更新 - Power BI | Microsoft Docs

実のところ一番つまづいたのはこの部分で、単純に関数化しただけだと自動更新が使用できなくなるので悩まされました😅 この内容が同じような課題で困っている方の参考になれば幸いです。

これからのPowerBIとExcel

つい先日、Microsoftのブログに以下の記事が投稿されました。 www.microsoft.com

要約すると、PowerBIとExcelの連携を更に強化していくとのこと。Excel⇒PowerBIの一方通行の連携から、今後はExcel⇔PowerBIの双方向の連携がしやすくなるということかと思います。 PowerBIはデータの取得、可視化という点では非常に使い勝手が良いのですが、分析という点だとやはりExcelの柔軟性に一日の長があるということでしょう。

弥生もPowerBIの導入を最近始めたばかりで、今はまだ既存のものを置き換えるために試行錯誤している段階です。将来的にはもっとたくさんのデータを集約して、それらのデータ活用から新しい価値を提供できたら良いなと思います。私個人としてもこれからのアップデートがとても楽しみです!

業務運用の自動化、すすんでますか?

この記事は、弥生 Advent Calendar 2020 の16日目の記事です。

こんにちは。新課金チームのいっしーです。

急に寒くなりましたね。
エアコン、加湿器、電気ひざ掛けを駆使しているので、電気代がすごいです。*1

さて、今回は業務運用の自動化について書きます。

さかのぼること1年前

情シスについて、こんなことを書いていました。

  • いろいろな部署やシステムのハブといっても過言ではない部署
  • 結構、開発もできる
  • 社内業務の効率化を継続して提案・実現していければ、最強の弥生を作り上げられるのでは

_人人人人人人人人人人人人人人人人人人人人人人人人人人_
> 社内業務の効率化を継続して提案・実現していければ、<
> 最強の弥生を作り上げられるのでは         <
 ̄YYYYYYYYYYYYYYYYYYYYYYYYYY ̄

はい。

せっかくなので最強の弥生をつくっていきましょう。

まずは、新課金システムまわりの業務運用を自動化することになりました。

新課金システムとは?

新課金システムは、クラウドサービスの契約管理や請求管理を行っているシステムです。お客さまはプランを契約したり、支払方法を登録したり、毎月の請求金額を確認することができます。その裏では定期バッチにより契約更新や請求書発行、自動決済がおこなわれるようなそんなシステムです。

f:id:ym_AdventC:20201215120157p:plain
契約一覧画面

つまり、お金に絡む問い合わせや対応依頼が日々くるわけです。
その最たるものが銀振入金消込……!

銀振入金消込とは?

銀行振込をおこなうことにより、請求している金額を消し込む作業のことです。
弥生の売上などの経理業務に関わるため、欠かせない作業です。

自動決済されるんじゃないの?と思った方は鋭いですね。
弥生では、クラウドサービスの支払方法は基本的にクレジットカードか口座振替です。ただ、自動決済に一定回数失敗するとサービスが利用制限状態になり、以降の決済は自動では行われません。サービスが利用できないことに気づいたお客さまが支払いを済ませるための最後の手段、といったところです。*2

現状の運用と課題

以下が現状の運用を図にしたものです。

f:id:ym_AdventC:20201215174121p:plain

ふーん…?

……

………手作業多くない?

課題その1:手作業が多い

そうなのです。入金情報と請求情報の突合も、実際の消込作業(データメンテナンス)も、現状すべて手作業なのです。一般的に、請求書の数が増えれば増えるほど入金消込の対応は煩雑になるといわれています。また、手作業が多いということは、いくら気をつけていてもミスが発生しやすくなります。

会計ソフトを提供している会社としてはお金まわりのミスは信頼を失うことに繋がってしまうため、なんとしても避けたいところです。

課題その2:依頼頻度が高く、1回の件数も多い

現状、1~15件程度の消込依頼が毎日あります。繁忙期明けの4~5月になると、契約更新ラッシュ(とその決済失敗)により1日に30件近くになることもあります。そして、「原則、入金確認した翌営業日中には利用制限状態を解除する」とアナウンスしているため、がんばって対応するしかありません。

ユーザー数も年々増えており、再来年には旧システムからのデータ移行も控えているため、はやいところ自動化する必要がありました。

業務運用を自動化するときに大切にしたこと

全体最適をめざす

せっかく自動化しても、開発本部だけが楽になってカスタマーセンターの運用担当者がつらいままにはしたくないですよね。

そのため、まずは各部署でおこなっている業務の洗い出しを行いました。
また、現状の運用の中で目的がよくわからない作業などは今回を機に見直しをかけました。例えば、これまでは契約更新の請求書では請求月と入金月が異なる場合はデータのメンテナンス方法を変えていたのですが、請求月と入金月が同じ場合と同様のメンテナンス方法に統一する予定です。また、システム化しやすいように入金明細リストの記入方法をすこし変更してもらうことも提案しました。CRMにもこれまで確認できなかった情報を確認できるようにしてもらう予定です。

いろいろな部署やチームに協力いただけているので、本当にありがたいです。

繁忙期を避けた改善計画をたてる

弥生のカスタマーセンターは確定申告期間の2~3月が最繁忙期となります。ただでさえ忙しいその時期に運用フローの変更を行うと、お客さま対応に影響が出てしまいます。とはいえ、繁忙期までに改善できるところはしておきたいので、3段階に分けてリリースをすることにしました。

f:id:ym_AdventC:20201215174144p:plain
第一段階

第一段階はひとまずチケット起票をなくし、開発本部側の自動化をします。
繁忙期がおわったらカスタマーセンター側の運用フロー変更も含めて、改善していく予定です。最終的にはバーチャル口座をつかって、入金情報と請求書の突合も不要になる予定です。

まとめ

銀振入金消込の自動化について書きました。文中でところどころ過去形で書いてますが、ようやく要件定義や計画がおわり絶賛設計中です(笑)実を言うと、ほかにも重要度の高い依頼がいくつかあります。改善しがいがありますね!

わたしたちと一緒に改善していってくれる人を募集しています。 www.yayoi-kk.co.jp

明日は、弥生品質の守り人、QAチームの川本さんです。

*1:弥生では毎月リモートワーク手当がでるのであんしん!

*2:支払方法を新規のカードに切り替えることでも即時決済は行われます。ただ、なんらかの理由でカードを登録できないというお客さまには銀振入金を案内しています。

新卒一年目がフルリモートでの新卒研修をふりかえる

この記事は弥生 Advent Calendar 2020 15日目の記事です。

 はじめまして、今年の春に新卒入社した芝と申します。弥生 Advent Calendar 2020 二日目に飯田さんが コロナ禍に弥生へ中途入社したエンジニアの物語 として、リモートワークから始まった弥生人生について書かれていますが、これは私はじめ新卒6名も例外ではありませんでした。 そこで、そんな中で行われた弥生での新卒研修ってどんな感じだったの?といったことを書こうと思います。 よろしくお願いします。

入社から配属までのスケジュール

1. 入社式

 入社式前は、新型コロナの影響で、新卒内定取り消しという会社・学生どちらもつらいニュースが報道されていた頃でした。私は、そもそも「自分はちゃんと弥生に入社できるのだろうか?」ということが不安でしたが、無事入社することができました。

 2020年4月1日、ヤヨイヒロバで入社式を迎えました。 実際の様子は弥生へようこそ! 2020に詳しく記載されているとおりです。入社式の会場では、マスクやアルコール消毒をし、ソーシャルディスタンスを十分確保しました。社長からは、お客さまは状況が厳しいこと、お客さまの状況を良くするために何をすべきか徹底的に考えるというお話をいただき、身の引き締まる思いでした。

2. 人事研修(4月)

 弥生では、マーケティング本部総合職と開発本部総合職の2つの職種を新卒採用で募集しています(2020年現在)。どちらの配属になるかは、人事研修→開発研修→マーケティング研修を終えた後、面談で決定します。 ですので、もともとマーケティングを志望して入社しました!という人でも、研修を経てプログラミングに興味が出たため、開発志望に変更することや、その逆を志望することも問題ありません。
 入社式の翌日、4月2日からフルリモートワークでの研修がスタートしました。研修では

・e-learning
・図書課題
・ビジネスマナー研修
・ITリテラシー研修
・チームビルディング研修
・自習

などを行いました。 リモートワークで初めての研修に戸惑いもありましたが、実際やってみるとそこまで対面と比較したデメリットは感じませんでした。詳細は後述しますが、想像していたよりも質問や情報共有がしやすかったです。

3. 開発研修(5月)

 開発研修は、他社の同じような新卒の方々と合同でシステム構築のトレーニングを行いました。こちらも、例年は研修会場で行うところを、全日程をオンラインで実施しました。

 5月前半はプログラミング言語の講義や問題演習を行い、システム開発への理解を深めました。その後、会社がバラバラな全参加者をチームに分けて、1チームあたり3~4人でシステム開発を5月後半から行いました。 実際の開発プロジェクトと同じようにスケジュールを組んで、設計書を書いてテストも行なって…といった工程は、情報系の学部を卒業している同期でも苦しんでいました。また、同期のほとんどがチームのリーダーとしてプロジェクトを率い、最終的にはどのチームも目標とする成果物を製作することができました。研修に参加している新卒のメンバーが記入した日報をもとに、毎週末の研修終了後に、新卒2年目の先輩方からZoomでフィードバックやフォローをいただいたことで、確実な学びと自信に繋がりました。

4. マーケティング研修(6月)

 先述したとおり、弥生の新卒は全員開発研修だけでなく、マーケティングの研修も行います。まず、「マーケティング」とは?といった、ビジネスマンとして基礎的な素養を外部講師の方から教えていただきました。その後、実際弥生ではどういったビジネスを展開していて、強みや弱みはどういった部分なのか、何を課題としているのかといった全20講義を受けました。最後に、学習したフレームワークを活用しながら、企画立案と発表を行いました。

よかったこと

1. コミュニケーションを気兼ねなくとれることができた

 研修では、ツールの準備やMTGの設定が適切にされていたため、コミュニケーションが取りやすく感じました。リモートワークでの研修は、対面と比べカリキュラムの実施以外のコミュニケーションを取りにくいのが事実です。そこで、朝会・昼会・夕会の時間で逐次質問や雑談などをしたり、Zoomの機能(画面共有、チャット、ヘルプ機能など)を駆使しながら講師へ質問を伝えたりすることで、日を追うごとに積極的にコミュニケーションが取れるようになったと思います。

2. 同期との親睦が深まった

 いろいろな方から、「今入社して、同期とちゃんと仲良くなれるの?」と心配されることが多々ありました。私も入社 当初は不安でしたが、同期と仲良くなるのに思ったより時間はかかりませんでした。新卒社員には、社員同士の横のつながりを強め、会社の社風を作り上げる期待をされていると思います。そのために、毎年10月に行われる社員総会の中でビアバストの企画を行うなど、さまざまな施策が展開されています。4月に行なったチームビルディング研修の中でも「チーム(同期)で大切にしたいこと」を決めるワークがあり、そこで同期のことをより深く知れました。学習していてわからなかった部分は、研修後に同期が自主的にZoomで集まって疑問点を解消したりして、信頼関係ができあがっていきました。

対面のほうがよかったこと

1. 業務環境の差

 リモートワークでは、自宅回線の速度やPCのスペックが仕事の生産性に直結します。特にZoomはかなりの通信量やメモリを消費するので、環境が揃っていない人は入社当初苦労していました。ですが、今年からリモートワーク環境整備金とリモートワーク手当という2つの手当が新設され、自宅での環境整備に投資しやすくなりました。Zoomのビデオが固まったり、ネット回線がよく落ちたりすることが多かった人の環境も、今では大きく改善されたように思います。

2. 出社慣れしてない

 コロナが一旦小康状態になった本配属初日の7月1日、入社式以来の出社に成功(?)しましたが、まだ自分の会社は「他所様の会社」のような感覚でした。なので、私の入社前にオフィスで皆さんがどんな雰囲気で働いていたのかは未だにわからずにいます。コロナが一旦小康状態に戻った9月以降週1回~2回ペースで出社し、ようやく「ここが自分のオフィスか」と自覚するまでかなり時間がかかりました。弥生では、新型コロナが流行する以前から、働き方改革の一環としてリモートワークを計画・試験導入していました。ですが、4月7日の緊急事態宣言に合わせて急遽前倒しでリモートワークを推進することになりました。今後は、感染リスクの低減をしつつ成果を最大化させる「ニューノーマルの働き方」を推進していきます。

3. 先輩の仕事のやり方を盗みにくい

 自宅で仕事をしていると、いわゆる「先輩の仕事を直接見て学ぶ」ことが少ないと感じます。対面だと、隣の先輩の仕事ぶりを見て、効率のいい仕事の仕方を身につけることができると思います(ショートカットキー、社内ツール等)。ですが、自宅のPCで作業していると、気づかぬうちに非効率な“我流”の仕事スタイルを続けてしまうのではないかというのは心配です。ですので、プロジェクトに配属になるとそういったことまでわざわざ共有することは少なくなります。逆に、今は上司からそういったTipsを教えていただけるので、すごくありがたく感じます。自分自身で蓄えたナレッジはそのままにせず文書にストックして、新しく弥生に入ってくれた人にもちゃんとした環境が提供できるようにしていきたいです。

最後に

 最後に、急激な変化の中で研修を作り上げたことにお礼を申し上げます。リモートワークが入社後すぐにできるようになったのは、明智さんをはじめとした情報システム部の皆さんのご尽力あってこそですし、出社して実施するはずだったプログラムができなくなってしまって、外部の研修会社と調整しながら研修をアサインしてくださった人事の庄村さんには感謝しかないです。 長文になってしましましたが、最後までお読みいただきありがとうございました!