morimorihogeです。ミカドのYoutube配信がアツくて久々にSTGやり直そうかなと思ってジョイスティックを掘り起こしました。ちまちまとグラ2を攻略しています。
さて、遅ればせながら2020/04/17(金)にZoom開催された銀座Rails#20 @リンクアンドモチベーションでTechRachoの週刊Railsウォッチの出張版ということで参加させていただきました。スライドは以下の通りです。
今回の特集はExcel(Google Sheets)と仲良くする話になります。
システム開発をしていると度々「運用担当者から管理画面の機能改善要望があるが、言われた通りにシステムに実装しようとすると膨大な工数がかかってしままうため、リソース上対応できない」という状況に直面します。
今回の内容はそういったケースでExcel(Google Sheets)を組み合わせることで、なるべく開発側のエンジニアリソースを使わずに業務改善する余地を確保しよう、という話になります。
Excelというと、システム開発を主担当とするエンジニア界隈ではExcel方眼紙などの文脈を例に敵のように扱われがちですが、プログラミングをせずデータ閲覧や入力を主に行う運用担当者からするととても便利なツールです。
少なくともデータがExcelで閲覧できるだけでフィルタ、色分け、集計処理、データの再抽出など、ソフトウェアエンジニアの手を一切借りずに業務で必要なデータ処理が行えるという点は非常に大きい利点であり、無視できない点だと言えます。
また、最近はGoogle Sheetsを使っている人たちもいるかと思います。昨今では学校の授業でもExcelを教えることがある世の中なので、Excel(風)に使えるというだけで一気にそのシステムを使える人が増えるということでもあります。
複雑怪奇なマクロやExcel方眼紙など、将来のメンテが厳しい状態になると辛いことになるのは確かですが、使い勝手という点では十分なメリットもあると言えるでしょう。
一方で、Excelに目が肥えたユーザーはWebの管理画面などでソフトウェアエンジニアに対してExcelの機能相当のことを要求しがち、という問題があります。
そこそこ長く業務開発を経験していると、業務システムのヒアリングで画面や操作レベルでExcelと全く同じことを要求されたことは一度や二度ではないです。
# こういう時は「既存業務と同じ」というのが画面仕様にまで上がってきてしまっているので、業務フローレベルからの見直しが必要なケースだったりしますが
こうしたExcelにある機能をWebで再実装するという要望は、基本的には不可能ではないが工数は大きくなりがちです。そして、得てしてこうした機能の実装はエンジニア工数がコスト面で見合わないことが多く、放置されがちになります。
#運用改善に潤沢なリソースが割り当てられないシステムというのはどこに行っても見ますね。リソースは有限
そんなわけで、Excelからいいとこ取りをしたいよね、というのが本発表の主旨になります。
いわゆるExcelインポート・エクスポート機能ですね。
Excelを(Web)システムで扱うには、まず一つがExcelファイルを利用する方法があります。Google Sheets APIなどを直接利用する方法も含め、Excel(系)データをシステムで直接取り扱う方法です。
Excel(風)ファイルをそのまま利用するメリットとしては複数シートを1ファイルにして扱えるという点が地味に大きいです。
CSVファイルは1ファイル1つのデータ構造しか扱えませんが、Excel形式でシートに統合して扱うことで、1ファイル内で整合性のあるデータを扱うことができます。
大規模なデータになってくると処理が重くなりすぎて辛いのですが、小規模なデータであればデータの洗替や一括更新の再、1ファイルで複数データ間の整合性を気にせず扱えるという点で、Excelデータの優位性はあると言えます。
もう一つの方法として、Excelとクリップボードコピー(いわゆるコピペ)を利用する方法があります。
Excelのセルのコピー情報はTSV(いわゆるタブ区切りテキスト)と互換性があり、相互にコピペして利用することができます。
なお、Excel側のセルは書式付き文字列のため、コピペの際はExcel側のセルの書式設定の影響を受けます。
入力される値にもよりますが、何も対策しないと数値が日付に自動変換されてしまったり商品コードが指数表現になってしまったりするので気を付けましょう。
まとめ
個人的にExcelはあまり積極的に使いたがらない人なのですが、Excelに慣れた人がユーザーならそこに歩み寄るのも一つの手だと思っています。
慣れたツールを使いたいという気持ちはエンジニアがエディタにvimを使いたがり、vimが使えないと基本的人権のなさを騒ぐようなケースと同じようなものなのかなと思うので、Excelという言葉に過度な拒否反応はせず、そもそも何をシステムで解決したいのかに立ち返って機能設計していきたいものですね。
おたより発掘
"Excelに目が肥えたユーザーはWebの管理画面などでソフトウェアエンジニアに対してExcelの機能相当のことを要求しがち" めっちゃわかる。そして工数が膨大になる... #システム開発 #業務アプリ / “Excelと仲良くするという選択: 銀座Rails#20発表|TechRacho(テックラッ…” https://t.co/vcBjVNENPg
— すてィーろ (@stilo) July 9, 2020