あれ、どうやったっけ

(要求される知識量大目の)ツッコミ系テキストサイト風blog。文が安定するまで書き直しあるからメンゴ。

そりゃあ4大業務越えたら中の人がカイゼンせんとムリやで

今日はなんのくっだらねえ話?

http://www.esri.go.jp/jp/archive/e_dis/e_dis263/e_dis263.pdf

ですかねえ。論旨は「業務内容見直し・業務フローの変更なしでITシステム入れても効果ないよ」程度でしょうか。ただその……質問内容がアバウトのような気もしますけど。

いやね、日本だと「とりあえずアプリ入れよう→使われない」とか割とあるあるじゃないですか。

正確に言うと全く効果がない、とは言いません。「手作業」でやってる場合にITシステム導入すると効果はあるんですけど一定以上追加しても意味がないわけで。

「会計・販売管理・生産管理・人事給与」4大業務の先を超えた効率化ってなると、本当に現場で行われている業務のフローは中の人でないと分からんので、中の人でないとカイゼン不能なんじゃないかなあ論。

Undocumented IT絡みの爆死

「会社特有」のITシステムを外部に発注して爆死とかあるあるの話なんですよ。理由としては

  1. 外部の人があなたより、あなたの企業の仕事について知ってるわけないじゃん
  2. 実際仕事でやってるときにしか思い出せない細部まで全部文章化できるユーザー企業の人はいません
  3. あなたよりあなたの希望を承知してて、あなたが何も言わずともやってくれる他人っているのかなぁ?

みたいなあたりですか。

例えば「REBOK」みたいな要求工学なんてものはいくら突き詰めようが無意味だと思います。REBOKには無茶があり「ユーザー企業の担当者・キーパーソンはシステム開発者が知りたいと望む全てを知っている」という暗黙の仮定があるので。

会社の業務全部について完璧に把握してる奴なんざ見たことないがな?

まず貴社の業務フローを全部文章化していきましょう! とか言われても、それ利益生み出さないうえに時間がクソみたいに取られる割に業務フローに記載されない「些事」の小改良が入ったら終わる系の奴ですからめんどくさがる企業さんが多いのもわかります。

REBOKはどっちかってと「IBMが始めた多重請負システムを重んずる開発者の理想論」にしか見えないですね。

非定形業務というか、業務フロー(正確には業務フローのもっと下のフロー)可変の仕事については「内製」でないと対応は困難、あるいは炎上案件になるかと思います。日常の業務のIT化とか、BtoCやるかとかだとこっちが適応になります。「アジャイル」とまではいわないにせよ、各部署で連絡を緊密にしてクイックフィックスが必要な場合が多いモノ。

定形の四大業務は「ウォーターフォール」が有効です。ただ中小企業レベルならパッケージソフト入れたほうが早いですね。サグラダみずほ級になると……特注品ってことにせにゃしようがないでしょうが。

非定型かつ品質が厳しいものはダブル・トリプルチェック。こっちで検算コード書いて、複数名でぶっ叩いてもらったのち、最終ポチりはユーザーに委ねるというもの。フェイルセーフを数発入れます。

一人でもできる業務改革?

事務員やってたとき、遠い昔の「Excel大先生」がやったクソいExcel VBAなツールを原型を留めない程度に改造して「最終チェック以外の業務を自動化する5000行程度のExcel VBAにしたった」とかをやってやってやりまくったったことはあります。あと自分でも書いたりとか。

なんでVBAかというと、会社のルールとしてVBA縛りがあったためです……。正確にはVBA/VBS縛り。

数回「RubyC#使っちゃダメッスかね? あかんならJavaでもいいです」とは。だめっぽだったのでVBA/VBS。日本語扱うのがフツウなんでPythonは自動的に除外です。

僕は公的にガイキチ判定食らってる人でして「同じことを機械的かつ正確にやること」ができんのです。エラーレート高かったり、記憶喪失(簡単に言うと失神というか寝るというか)が発生しがちです。

そこにマシンがあるじゃろ? こいつにやらすしかない。

なんていうんですか、VBAスクレイピングとかハナクソ程度にできますし、複数都道府県のアンケート結果の集計用ツール書いてキーワード引っかけてオペレータが分類しやすくするツール書くとか(精度60~70%程度のやっつけ、後日別人氏が機械学習に置き換えて90%程度の精度にしてくれたそうです)、Access再帰テーブルをキメてアレコレ集計とかゆゆうです……。

Accessで100万単位のレコード扱うとかやったことないんですが一応できますね。やや不安定で小細工必要ですけど。まあ年単位でのデータ保存、次年度はまっさらでOK、あとOffice系(というかVBA縛り)のカラミでAccessしかなかったんですが頑張ればできます。たぶんSQL Serverとか使ったほうが100倍楽だけど。大丈夫Excelで手コピペしてVLOOKUPするよか五兆倍マシだから(僕やらんかったらたぶんExcel手作業で頑張るってことになってたんだろうなあとか)。

方向性としては、職場特有の問題もあったので「勉強会に出れる程度の余裕が出来る程度の自動化」ですね。やろうとおもったら「完全自動化」狙える業務は複数あったのですが……やめときました。「80~90%のおぜん立てはするけど、ファイナルチェックは事務員がやってくれ」というダブルチェック形式。

ダブルチェックにしたほうが成果物の品質も上がるし、別人氏の失職の可能性もなかろうし、余裕ができるので勉強の時間も取れたり研修の時間もできてよく訓練されて最強に強まったIT事務員爆誕の可能性もありつつ、今後の求職のクチも増えてくるとか(グループ会社からの仕事はあるとかなんとか)。

その辺を総合的に配慮した結果「クソコードを 尊重しつつ改造入れまくってたら完全に別物化 改造するとか、こっちでスクラッチからツール書いて、ダブルチェック方式90%自動化」設計にしますた。事務員という名の事務所用内製ワンマンプログラマ状態……。

あとは上司にお願いして「ソフトウェア開発の技術を他の人に教育してくれませんかねぇ」あたりの話はしました。実際そういう研修が湧いてきたりとか、上司が分かってくださる人でよかった。

業務内容の詳細に関しては守秘義務により割愛。

日本で「業務改革」って言うと外部からとりあえずソフト導入したら業務なくならね? で使ってみたら使い物にならぬというので旧式に戻るというのがあるあるなんで、内部側で小改良積み上げるという方法論もあるっちゃあるんじゃないかという程度の話。

ただ、現実には「事務員並みの給与でプログラマやります」ってことになるので……なぜか上から下まで一通りワンマンでやったことある割りにボーナスナシ・月給15万程度のプログラマでしたんで別に事務員でもいいですという謎経験の人でないと無理というか、そんな経歴に該当する人間がゴロゴロいることはないですね。

何の事務員?

何の仕事かというと、簡単には障害者雇用の事務員ですね。

僕は事務員で雇われたはずなんですが……事務員適性ゼロの奴をよー雇ったな。後日「退職一時金」の資料が来たのはソレ。

……当時はわからなかったんですが、コード書けば書くほど一社目のトラウマが出てきて吐きそうになるという 1か月出社出来ないとかやらかしたのになぜか契約を更新される謎の事情 中二病設定があったせいで結局二年ちょいでダウンして退職です。以降無職。後日ランサーズとかで仕事引いてちみこくやろうかと思ったらものすごい値下げ圧力無茶振りにより断念。

自分でも十年レベルで原因分からんのですから、メンタル系は本当に厄介です。

後日その会社ではIT化の機運が生じたとのことで、その会社には分かるマが複数名入社とのこと。一名のマに「俺のクソコード直しにくいだろ? 正直すまんかった」とか聞いたら「直しやすいので問題ないです」とか、VBA縛り解除とか、いろいろあったとは聞いてます。

たぶん僕の仕事は成功したのだ、と思うことにしてます……たぶん。上司が分かってらっしゃる人で助かった側面は多いのでしょうが、まあ品質と速度上げる役に立ち、不幸レベル下がって満足度向上ならミッションコンプリートとしたいところです。

正確な業務の把握は中の人でないとムリやで

中の人をやると現物で確認取れるとか誰かオペミスった瞬間に当事者に確認取れるとかここめんどくさいから直してってリアルタイム情報が把握できるんです。で、ほぼ日リリース普通。最速10分ですかね?

コードを直すとオペ数削減とか、ちょっとオーバーすぎる人力エラーチェック外せるとか、オペミス低減にはつながるため、自動的に(小規模な)業務フローの改善になります。SEの人だとどうでもいいレベルのニッチな話誰も興味を示さない話だとは思いますが。

小規模改良を100回やるとどんだけアレでも生産性は10倍程度は上がりませんかね?

たとえばパッケージソフトなら大雑把には合ってるんですがなんかこう……無駄に1px単位でマウス動かす操作が発生するとか……そういうSEにとっちゃどうでもいい些事が100コあるからユーザー的にはイラつくと。ユーザーが使えねーって言うアレは細かい部分でめんどくさいオペが発生するのでかったるいってことです。

あるいはこういえばいいでしょうか。

業務フロー図では一言で書かれている何かが手作業なので遅い場合はよくあります。「事務員がなんちゃらを集計してxx部署に渡す」とか書いてる奴、その作業内容が手作業だったり「パッケージソフトからCSV落としてExcelで20オペ位やって目視チェックするので遅い」とか。

サイコーにイカしてるのは

  • 外部からもらったデータをExceに張り付けてPerlスクリプト流した後
  • 桐(Accessみたいな奴)に張り付けて列とかアレコレ足したりコピペしたりしたあとなんかのスクリプト流して
  • 結果をExceに張り付けてなんか30オペ位やったあとVBS流す
  • 出来たテキストファイルをAcceess食わせたりする

みたいな……なんていうんでしょう、もうA4用紙30枚位 + Graphvizの図を付けないと誰も理解できない匠の技とか。どうも担当者もなぜそうやってるか分からんけど前任者がそうしてたから、体で覚えてそのままやってる以上の話が出ないとか。

業務系ITの皆様は抽象度のレイヤーが高すぎて無意味って場合もあるんじゃないかなあなと思うことはあります。

ITシステム開発ごときでその業務フローの一つを展開したらナカミどうなの? まで配慮せんでしょ? SEとエライ人とのやり取りでは単なる口頭での打ち合わせと帳票・Excel貰う程度の話がメインとなる感じとでも言いますか、現場で全業務をイチイチ見るとか、実際の作業見るなり自分でやってみるなりとかはマズない思います。

客先常駐であったとしても、例えばSEとユーザー企業の情シスがやり取りして、SEが帳票とExcelから空気読む程度の話で設計なるものをして、常駐する下請けに投げて爆発とか。

もちろん「中の人になってリアルタイムでモリモリ内製する」系の話は、日本ではメイン話ではないです。現場叩き上げ風小改良ですからいずれ頭打ちですが10倍生産性上がるなら別にいいような……それ以上ならコンサルなり雇ったほうがいいのではってところです。

何が言いたいかってえと、日本の業務系シーンだと

  • 既存の業務 → 現場で内製して効率化 → カイゼン頭打ちになったら抜本見直し

みたいなのではなく

  • 既存の業務 → ある日から突然エライ人がアプリ使えっていうけど使い物にならんので昔のやり方のまま

みたいな場合が多いのかなあ? などとも思うのですよね。

この辺が非定形業務は内製でやるべき論の理由ですかね。簡単に言うと現場分かってるマでないと、現場に最適化されたコードが出来ないと。SEの人から見ると気持ち悪くて吐き気するとかまったく美しくないとかお前ITやめろ系のヘイトされそうな話だと思いますが、使えないゴミより使えるゴミのほうがマシという割り切り。

内製・小改良・カイゼンのほうが有効な局面と、ザクっと大きく改革せにゃならん場合と二つあるとは思います。で「小改良が適当」って局面もワリとあるとは思うんですよ。ですが、なんかその辺の能力がユーザー側にカラッキシなんで弊社の業務を分かってない方が使えないものを持ってきたとかアリガチなのかなぁとか。

4大業務越えての自動化やるならたぶん内製必須だと思うんですが、どうですかね? ユーザー側に内製出来る能力があるマがおり、小改良入れたり業務の変更に即時追従できる体制が必要、とかそういう意味です。

やり方としてはマイクロサービスとかと例えるのもおかしいんですが、かなり細かい単位で業務を切って、あとで合体できるようにコード書いていく必要はあるのでめんどいっちゃめんどい。なお、クソコードあるあるのifによるネストがガンガン盛られる系の事はファイナル設計が終わってる証拠で、ド素人さんがやらかしたのを切った貼ったして整理することはあります。

ただ日本だと……IBMが始めたソフトウェア開発モデルのせいでソフト屋は必要な時だけレンタルが普通 + 使いづらい部分は現場の人がExcelで頑張るほか無いのかも知らんですから、ホワイトカラー系の生産性があがるってことはあんまりないのかなぁ? などとは思いました。

別の会社での話

別の会社で……まあ雇われてシステム導入の話とかあったんですよ。生産管理の仕事で入社したら生産管理システム開発 or 導入の話でしたという謎状態。

で、各部署にヒヤリングするとか3か月やった結果「コレ報告して改善案出したら辞めるしかないって黒歴史を暴いてしまった」って時よりはマシですかね? まあ知った限りの報告と提案はしましたけど、辞めるほかなかったッス。

なお過去にも僕と似たようなことを言ったコンサルさんが来たことはあったと営業さんから後で聞きました。

不良率がカイゼンされてりゃいいんですが、未だ宙に浮いたままのBTSチケットです。確認しに行くの怖いので放置です。