開発合宿の成果を新機能としてリリースしました!

こんにちは、@mugi_unoです。4歳の娘にトランプの神経衰弱で勝てません。

新機能をリリースしました 🎉

さて、先日Misocaに新しい機能がリリースされました。

www.misoca.jp

f:id:mugi1:20180828093504g:plain

国税庁のサイトで、法人の基本3情報(名称・所在地・法人番号)というものが公開されており*1、そのデータをもとに文書の送付先などを自動入力できるという機能です。

合宿成果からのリリース

この機能は、7月に行われた開発合宿*2での成果物がベースになっています。 今回は、合宿終了後からリリースまでどういった作業をMisoca内で行ったのかを中心にご紹介します。

合宿で作ったもの

Misocaでは以前から国税庁のデータを取得し保持していたものの、有効活用できていない状態になっていました。

そこで、私のいた合宿のチームでは「これ使ってなんかやってみよう!」というのをテーマに取り組みました。

(合宿時のチームメンバーです。Team 神)
f:id:mugi1:20180827110235j:plain

というわけで、以下を作ってみることにしました。

  • 請求書を作るときに、法人情報から検索して入力補完できるようにする。
  • 曖昧な入力でも検索結果がヒットするようにする。

3日間で概ね形になり、請求書だけではなく、見積書や納品書でも使えるようなプロトタイプが完成しました。

技術的には

  • 検索 / ElasticSearch
  • フロントエンド / Vue.js

を使っています。

リリース!...はまだ厳しい!

合宿最後の成果発表でもわりと評判がよかったので、このままプロダクトにリリースしよう!!

...と言いたいところですが、現実はそう甘くなく、ガッと作ったので色々と課題が残った状態でした。

さすがにこのまま使っていただくわけにはいかないので、プロジェクトとして、ちゃんとしたリリースに向けて動き出したくなりました。

リリースに向けてやったこと

ロードマップ会議で提案

Misocaでは週に一度、何を優先して着手していくかを整理するための、ロードマップ会議*3と言われる場があります。

これは誰でも参加でき、提案も自由にできます。

ということで、「合宿で作ったやつがいい感じなので、せっかくなのでブラッシュアップしてリリースしましょう!」と提案し、リリースに向けて動き出すことになりました。

(実際の提案時の内容)
f:id:mugi1:20180827151552p:plain

インセプションデッキをつくる&タスクの洗い出し

まずはメンバーの認識を揃えるため、インセプションデッキを書きます。

  • なんのためにやるのか?
  • どのぐらい期間をかけるのか?
  • リスクはなんだろう?

といったことをここで話し、必要となるタスクの洗い出しも行いました。

結果的には、ロードマップ会議で提案した時点では「数日程度でいけるでしょ〜」と思っていたのですが、実際にはやることがもう少し多く、1週間〜2週間程度は必要になりそうなことがわかりました。

UIの見直し

合宿では、とにかく機能が使えること自体を優先したため、UIには力を入れていませんでした。 改めて、複数人で「より使いやすくするにはどうしたらいいだろう?」という話をして、見た目の修正を行いました。

たとえば、以下のような変更を加えています。

検索導線

Before

  • 導線が常に見えていると、使わない人からするとノイズになる

f:id:mugi1:20180827145846p:plain

After

  • 使いたいときにのみ現れるようにする

f:id:mugi1:20180827153402p:plain

検索入力・検索結果の表示

Before

  • 「法人情報から検索」だと、データの出元がわからなくて使う時に不安になる
  • 会社名や都道府県など、何を使って検索できるのかがわからない

f:id:mugi1:20180827154234p:plain

After

  • タイトルの変更、補足メッセージやリンクを追加する

f:id:mugi1:20180827153506p:plain

検索結果から文書への反映

Before

  • 選択した法人情報が文書のどこに適用されるのかがわからない
  • 一部だけ編集する必要があることも多そう

After (新規に追加)

  • 文書へ適用する前にダイアログ上で確認を挟み、そこで編集もできるようにする

f:id:mugi1:20180827154739p:plain

バックエンド側の修正

UIだけではなく、バックエンド側も見直しました。

蓄積している法人情報はおおよそ500万件存在し、すでに利用されていないデータも混ざっている状態です。

色々整理すると、以下のような手直しが必要でした。

  • 不要なデータがElasticSearchにインデックスされないようにする
  • パフォーマンスが出るか確認し、適宜チューニングする
  • 都道府県名で柔軟に絞りこめるようにする (東京都 / 東京 などで絞り込む)
  • どういったフローでElasticSearchのIndexを最新化していくか考える

泥臭い作業も必要になりましたが、コツコツと1つずつ潰していきます。

加えて、今後のメンテナンスのために、書けていなかったspecも一通り書き足しました。

リリース 🎉

他にも細々した修正に加え、ヘルプなども最新化し、無事に新機能としてリリースされました。期間的には「やるぞ!」と決めてからはおおむね1週間強程度で大半の作業をやりました。なかなかのスピード感ですね。

まとめ

開発合宿の成果が実際にリリースされて嬉しい限りです。

これを繰り返していって合宿の価値を上げていって、最後はハワイでの開発バケーションを目指したいと思います!!


採用

Misocaではバリバリ新機能を作っていきたいエンジニアを募集しています!