Look at the Bright side of things

Anderson's Blog - since 2005

業務用システムを作ろうと頑張り中

今の勤め先は気前が良いのか、たまたま、俺の入社時期と機械の寿命が重なっただけなのか、俺が入社してから毎年のように最新工作機械を導入して、それまでの古いもの(25年間稼働しているものもあった)を更新している。
新しいものになればなるほど使い勝手がよいのでありがたいのだけれど、仕事のやり方自体はほとんどと言っていいほどアップデートされていない。経営者が爺さんなため、やりかたが平成どころか昭和のままなのだ。
俺はある部門の製造とその管理を任されており、製造指示は伝票の束をどかっと渡される。それを仕分けして分類して、整理して、注文数量をまとめる。そして一つ一つ在庫をあたって、足りないようなら材料を発注。在庫があるようならそこから必要数を取り出してきて、注文に応じて追加工、伝票を貼り付けて出荷用の箱にまとめ、出荷内容を別途控えておく、というやり方。ペーパーレスって何?美味しいの?以前の話で、現在受注している品物の一覧表すら作成されていない。全部、実伝票ベース。
預かってる伝票について「あれ、どうなってる」と尋ねられたら、伝票の山をかき分けて取り出し、内容を確認しないといけないし、出荷したものについて問い合わせがあると、事務ではなく俺が控えをめくって出荷したか否かを確認しないといけない。その間、工作機械を止めないといけないのでロスになる。
どう考えてもバカバカしい。できればシステム化したかったので俺と同い年ぐらいの次期社長に「パソコンくれ」とお願いしたところ、快諾してくれた。
当初、システム化はフリーのオフィスソフト、LibreOfficeのデータベースソフトであるBaseで行おうとしていた。大して調べももせずに、多分、MS-OfficeのAccessと似たようなものだろうと高を括っていた。AccessやらExcelは前職でVBAを使ってシステムを構築できていたし、自分しか使わないシステムならその程度で十分だからだ。自宅のメイン機がMacなので、そこで開発を行うこともあり得るために、マルチプラットフォームなのも前提条件だった。
ところがいざ開発を進めていくと、LibreOffice-Baseのレベルは俺がシステム屋だったころ使っていた、使い古しのOffice2000、つまり20年前のソフトのレベルにも達しておらず、こんなものデータベースソフトとしてリリースすんな、という代物だった。
確かにデータベースエンジンとしてFirebaseを使っていて、信頼性はあるけれど、GUIでこさえられるクエリーがSelectのみで、更新と削除はいちいちSQL叩かないといけないとか、一度作ったViewの再定義ができないとか、頑張ってProcedure作ってもその内容を表示させられないとか、プログラムに疎いユーザーが使うであろうOfficeソフトとしてリリースしてはイカンだろ。
更に、マクロ作成についてもVBAと同等のことができるという触れ込みのOfficeBasicも極めて使いにくく、付属のIDEはゴミ。例えばVBAIDEならsubやらFunctionとタイプしたら、end sub、end functionを自動保管してくれるのに、それすらない。テキストエディタで自前でシンタックス定義を行ったほうがずっとマシ。
レポートエディタもゴミ。細かい位置制御ができないし、改ページの際にタイトルの再印刷もしてくれない。
それでも頑張ってなんとか管理を行えるレベルの代物をこさえたけれど、頻繁に固まって落ちるし、一度異常終了を起こしたあと、何をやってもデータベースを開けない事態に陥り、OfficeどころかWindowsそのものを再インストールさせられてしまった。
これではストレスが溜まる一方。たくさん勉強して知見をためていったとしても、他に使いみちもないし。
いっそのことこんなものは投げ捨てて、別の仕組み使って構築しちゃおうと決意して、データベースエンジンはMySQL、フロントはPythonwxPythonを使ってみようと思い、仕事と家事と育児の合間にチョコチョコと環境構築やら言語の勉強やらをなかなか捗らないながらも行っている。

せめて、来年ぐらいには業務のあり方を平成10年代ぐらいにまで持っていきたいと考えている。伝票をシステムに手入力して、一覧表出して、制作完了したらまたシステムに入力して、在庫データが自動で増減して、在庫切れ警告も出して。

平成20年代なら、データは発注元からオンラインで流れてきて、制作指示も画面で確認。出荷はバーコードで管理。補充のための材料発注もほぼ自動、入力は殆どしなくて済む感じかな。そこまで行ければ御の字だろうね。