Fusicってなんしようと?What is Fusic doing?

2019/12/23 OJTレポート「Maican(メールアドレス・メーリングリスト作成自動化システム)のご紹介」#塚本・山路レポ

2019年度新卒入社の技術開発部門 の 塚本 真人山路 友也
当社のOJTで作成した社内システムをご紹介します。

※Fusicでは、エンジニアの新入社員に対し、約半年間の教育制度を導入しています。
 その期間のうち数ヶ月間は、エンジニアとしての技術力向上や、
 一人でクライアントとやり取りができるようになることを目的とし、
 OJTを実施しています。
===========================================

【システム名】
Maican(メールアドレス・メーリングリスト作成自動化システム)ヨミ:マイカン


 


【システム種別】
業務系システム


 



【セールスポイント】

①  これまで管理者が手動で行なっていたメールアドレスとメーリングリストの作成を自動化
②  OfficeとMaicanのデータベースを同期することで、サービス上で見えている情報の正当性を保証
③  システムに対して行われた操作をSlackおよびメールで通知


MaicanはOfficeと連携し、メールアドレスやメーリングリストの
作成・編集・削除を簡単に行うためのシステムです。
システム名の「Maican」 は、「Mail」を「Kantan(簡単)に」操作できる、
という思いを込めて名づけました。

これまでも社内にメールアドレスやメーリングリスト管理を行うシステムはありましたが、
システムから直接Officeを操作できないという弱点がありました。

本サービスでは、Microsoft Graph APIやExchange Online Powershell といった
APIおよびツールを用いることで、直接のOffice操作を可能にしました。
また、UIの改善、メール通知などにより全体的に利便性が向上しました。

【開発期間】
5ヶ月

【技術】
Ruby on Rails, Docker, Microsoft Graph API, Exchange Online Powershell   



塚本の感想


【難しかったこと】
Microsoft GraphやPowershellを用いたOffice連携が難しかったです。
特にリリース直前、バージョンのタグづけなくOfficeの仕様が変更され、
あらためて、外部に依存しているシステム開発の難しさをひしひしと感じました。

【頑張ったこと】
メールアドレスによって、ライセンスがついているもの、ついていないものがあり、
それぞれで中の処理を切り替える必要がありました。
また、弊社は配布リストという形式を採用しており、
別のAPIを使う必要があったため、
追加で外部連携が発生し、さらに、データ管理が複雑になりました。
そこで発生する問題点を解消するため、同期処理を定期実行することや
エラー時に適切な処理を施すことでOfficeとのズレが生じないように工夫をしました。

【OJTを通して学んだこと】
チーム開発のため、認識のズレや意識の食い違いなどで開発工数が押したこと、
人が書いたコードを読むという違和感に慣れなかったことに難しさを感じました。
一方、自分の苦手部分を補ってもらえることや、
やり損ねている部分を修正してくれることなど、
チーム開発ならではの良さを感じることができました。



山路の感想


【難しかったこと】
Microsoft GraphやPowershellを用いたOfficeとの連携が難しかったです。
特にOfficeの仕様に関しては、開発終盤になって
新たに気づくようなポイントも少なくはなく、
外部連携の難しさをひしひしと感じました。

【頑張ったこと】

同期処理を定期実行することや、エラー時に適切な処理を施すことで、
本システムとOfficeとのズレが生じないように工夫しました。

【OJTを通して学んだこと】
仕様設計や画面設計、技術調査など、
実際に実装に入る前のステップの多さや難しさを知ることができました。
またチーム開発ゆえの難しさや、強みを感じることができました。