- 創業者の死後、同族企業は情報統制と会計の可視性がほとんどない状態にあり、大きなキャッシュフローがあるにもかかわらず帳簿上は赤字で、倒産懸念まで高まっていた
- 新システムではNetBSDベースのサーバー上に XEN VM、Samba NAS、Archivista、Squid、DansGuardian を載せ、ファイル保存・文書保管・インターネット利用統制を一元化した
- 一元化が始まると、既存の影響力を持つ人物が管理者パスワードとサーバー削除を要求し、特に「そのサーバー」を名指しして統制装置を取り除こうと圧力をかけた
- 数日後、サーバーは UPS 故障、電源の誤接続、ネットワーク停止を経てディスクが消えた状態で発見されたが、別の外部バックアップのおかげで当時のデータは保全された
- 技術者はシステムを作ることはできても、組織内部の不信と圧力の中で必要な権限と協力がなければ、すべての問題を救うことはできない
創業者の死後に露呈した統制不在
- 約16年前、複数の会社を管理・所有していた同族企業の創業者が突然亡くなった
- あらゆる意思決定と情報を自分に集中させていた人物がいなくなると、残された家族は事業運営を支えきれない状況に置かれた
- ある息子は家業から離れ、自分のキャリアに集中することにした
- 他の家族は日常運営に引き続き関与した
- 引退していた高齢の妻が会社を引き継いだが、状況は手に負えるものではなかった
- 最大の問題は情報の流れの欠如だった
- 会社にはまともなデジタルシステムがなかった
- 従業員はそれぞれ自分のPCや個人ノートPCを使っていた
- 会計や事務データは個々の機器に散在し、退勤後に自宅へ持ち帰られることもあった
- オーナーの立場から見ると、大きなキャッシュフローが入ってくるのに帳簿は常に赤字で、「このままでは数年以内に倒産する」かもしれないという懸念が強まっていた
中央サーバーと文書管理システムの構築
- 解決策は、データ管理を透明で追跡可能なものにする正式なITシステムを構築することだった
- ルーター、スイッチ、複数のネットワーク機器、複数のディスクを備えたサーバーの購入は即座に承認された
- OS は当時の習慣どおり NetBSD が選ばれた
- XEN で複数の VM を構成した
- 1つの VM は Samba ベースの NAS として機能し、PC がファイルを中央ストレージに保存するようにした
- 別の VM では Archivista を動かした
- Archivista のインターフェースには当時まだイタリア語ローカライズがなく、利用者が使いやすいよう自ら翻訳作業も進めた
- 当時よくある構成として、Squid キャッシュプロキシとDansGuardian コンテンツフィルターも追加した
- インターネット回線は非常に遅く、負荷がかかるとしばしば落ちた
- ログでは、大きな負荷の多くが勤務時間中の映画ダウンロードのような私的利用から発生していた
- 監督体制はなく、インターネット利用も統制されていなかった
一元化が招いた反発
- システム稼働後に従業員教育が行われ、多くの従業員はファイルが所定の場所に集まり、文書管理が一元化されたことを前向きに受け止めた
- OCR、保管、中央文書管理は業務時間を大きく減らし、効率を高める要素だった
- 一部の経理担当者はなお懐疑的だった
- 最も強く反対したのは、亡くなった創業者の元右腕だった
- 彼は新システムは不要だと主張した
- 生活様式が急変し、給与に見合わない買い物をしていたことは警告サインだった
- 会社には監督体制がなく、現金取引も多かった
- システムが安定した後、会社で使っているソフトウェア製品群の技術担当者だと名乗る人物から連絡があり、サーバー全体の構成図と管理者パスワードを要求してきた
- 彼はサーバーが Windows だと決めつけていたが、実際の構成は NetBSD 上で NetBSD と Linux の VM が動くものだった
- 彼は時間がないから翌日そのサーバーを消して Windows を入れると言った
- サーバー削除は新しいワークフロー全体に致命的だった
- 数時間以内に別サーバーを用意するという提案も拒否された
- エンジニアはこれを中央ファイルシステムと統制装置を取り除こうとする動きだと判断した
「そのサーバー」を求める圧力
- オーナーたちは経験不足と状況対応の失敗で動揺し、ひとまず彼にサーバーを消させたうえで、後から新しいハードウェアと作業費を負担する案まで持ちかけてきた
- エンジニアはこの提案を拒否した
- 新サーバーと中央ファイルシステムは、会計データをオーナーや監査人が見られるようにする統制装置だった
- 毎日数千ユーロが「取引」を通じて消えていると判断していた
- 反対していた人物は結局、「どんなサーバーでも」ではなくそのサーバーが必要なのだと言った
- 協力しなければその地域で働きにくくなる、といった形の圧力もかけた
- エンジニアは、その地域に顧客はおらず欲しくもないし、新規顧客を増やすより友人たちのためにきちんと仕事をすると答えた
- 会話の中でエンジニアは、相手が自分を子どものころから知っている人物だと明かした
- 相手は遅れて気づき、態度を変えた
- 別の解決策を探すと言って謝罪し、電話を切った
- その後、再び連絡してくることはなかった
消えたディスクと生き残ったバックアップ
- オーナーたちには問題は解決したと伝えたが、その数日後、サーバーには一連の「不運な出来事」が続いた
- UPS が故障した
- サーバーが「誤って」抜かれ、間違って再接続された
- 最終的にネットワーク上で応答しなくなった
- サーバーを開けてみると、ハードディスクが消えていた
- 幸い、オーナーだけが知る別のバックアップがすでに稼働していた
- サーバーデータは、オーナー宅にひそかに設置した小型の PCEngines Alix 機器へ外部バックアップされていた
- この機器は NetBSD と USB ドライブ2台で構成されていた
- ハードウェアもディスクも遅かったが、信頼性高く動作した
- その機器は現在 FreeBSD で別の場所にサービスを提供しており、今もなお動いている
- エンジニアはその時点までのデータをオーナーたちに渡し、その後どう対応するかを尋ねた
- オーナーたちは数日から数週間にわたって悩んだ
- 最終的には窃盗として届け出る根拠があるか調べるかもしれないと述べた
- その後、この件についてそれ以上聞くことはなかった
断った提案と残された限界
- その後、会社はネットワークインフラの管理と内部手続きの再編を担ってほしいとして、高額の提案をしてきた
- 遠くに家を買い、他の顧客を諦める状況を受け入れるだけの報酬は払うと言った
- 共通の知人は、キャッシュフローは大きいが統制不足のせいであまりに多くの人が会社を食い物にしているので、その仕事を引き受ければ大きな助けになると勧めた
- エンジニアは提案を即座に断った
- 自分の仕事と人生の方向性を捨てることになった
- 好きでもない戦いをしなければならず、勝てる保証もなかった
- 不誠実な人間が勝つこともある、という判断があった
- その後聞いたところでは、オーナーたちは次第に引いていった
- 後になってまた別の依頼があり、準備が整ったときにも再び妨害された
- 結局、彼は去るしかなかった
- 必要な仕事をするための道具と権限が与えられなかった
- オーナーたちは圧倒され、準備もできておらず、自分たちに害を与える人々の圧力にしばしば屈した
- 読者の中には組織犯罪の関与を推測する人もいたが、状況は非常に問題が多く不誠実だっただけで、組織犯罪ではなかった
- 「最悪の部分」は内部力学、信頼の悪用、不適切な行為だった
- プライバシーと叙述の負担のため、詳しい内容は明かしていない
- 技術者は問題を解決できるが、関係者が問題を直す代わりに守ろうとする場合、すべての問題を解決できるわけではない
1件のコメント
Hacker Newsのコメント
以前、非営利団体で働いていたが、合法の範囲内で行われる利権あさりのレベルはものすごかった。
ある時、政府機関の監査を受けたのだが、その機関自体が非営利セクターのロビー活動のせいで、運営上の制約を多く抱え込んでいた。
監査後、その機関の責任者が「明白な違法行為だけでなく、市民が非営利団体に期待する基準に関わる調査結果も公開できるべきだ。寄付金のうち、実際の目的事業に使われる金額と、理事や職員に実質的に贈り物のように還流する金額がそれぞれいくらなのか、人々は知るべきだ」という趣旨のプレスリリースを出していて、これが要点をよくまとめていた。
不正は続く。ただ合法的な経路を見つけていくだけだ。
おおよそ、信託 → カスタム設計の大型終身保険 → 終身保険が次世代の新たな信託と生命保険に資金を供給 → 税効率よく引き出せない古い信託の残余分を家族が支配する慈善団体に寄付 → その慈善団体が家族の支配する非営利団体を支援、という構造だ。
こうした仕組みでは、非営利団体は結局、特権的な現金の壺の一つになり、職員・理事会の席という楽なポストや、まれには家族の経済的目標に合う慈善事業を通じて、自己利益を押し通す手段になる。
ここで不正に見えるものこそが実際の価値であり、慈善に見えるものは、その金の山に対する税金の代わりに支払う費用に近い。
本当の問題は、普通の人々からの寄付を募って運営する慈善団体でも、こうした行動が可能になってしまう点だ。
それで、こうした組織全般を見る目がかなり変わった。
制約を作るのは官僚と選挙で選ばれた政治家であって、ロビイストが彼らに何かを強制できるわけではない。
意思決定者が腐敗し、公益に沿って行動しないなら、彼らに責任を問うべきだ。
HNであれ現実であれ、「上院議員がどの法案に賛成したかを追跡し、悪い法案に賛成していたのを見て手紙を送った」とか、次の選挙で反対票を投じたという人はほとんど見ないし、実際ほとんどの人はそうしない。
民主主義には投票だけでなく、選んだ人々の行動を監視し、責任を問うことまで含まれるのに、市民の側が失敗している。
代表者が何をしているかを追跡しないまま投票し続けるなら、状況をさらに悪化させることに積極的に加担していることになる。
もちろん多くの国でロビー活動はもっと強く規制されるか禁止されるべきだが、ロビー活動が禁止されても代表者の行動を追跡しなければ、彼らは自己利益のために行動し続け、市民の利益を犠牲にできる。
根本問題はロビー活動そのものではなく、腐敗と説明責任の不在だ。
こういう状況は以前にも見たことがあり、だからこそ外部バックアップが本当に重要だ。
責任逃れのために誰かが意図的に消そうとしていたデータを、バックアップから復元して提供したこともある。
この話は、人々がデータをわざと破壊しなくてもよく起きるパターンも示している。受け継いだものを全部壊しておきながら、その結果生じた問題を前任者のせいにする人たちがいる。
ひどいコードベースを引き継ぎ、最善を尽くして改善したが時間には限界があり、自分が去った後、次の人が残っていた悪い部分をすぐに自分のせいにした。
腐敗がどれほど簡単に生まれるのかは、いつも興味深い。
会計が二重に確認するものだと思っていたが、誰かが口座を作って金が流出しても、何年もの間誰も気づかない会社をあまりにも多く見てきた。
いくつかの会社向けに自動請求書を作ったこともあるが、数か月分のデータが欠けていたのに、かなりの金額が支払われていたことが分かった。
請求書の内容がほとんど何であっても、金は出ていたように思う。
最近、あるサプライヤーが数か月間、数千ドルの請求を単に忘れていて、割当量の増額を求めたところでようやく思い出した、ということがあった。
最近、カリフォルニア州La Cañada-Flintridgeの元シティマネージャーが詐欺容疑で起訴された。市のロゴ入りの公文書形式で自動車保険会社に市有財産の損害賠償請求書を送り、その金を自分で懐に入れるという手口だった。
数年前には、誰かがFBやGoogleなどにも請求書を送り、1億ドルをだまし取った事件があった。
何か見落としている気がする。
後でその人に問題を解決してほしいとして、事実上望むものは何でも与えると言ったのに、彼は断ったうえで必要なツールを提供されなかったと不満を言った。
「値段を言ってくれ」には、プロセスの所有権まで含めて必要なツールと権限が含まれるべきだ。
ざっくり推測すると、「問題を起こしている」人物がオーナーたちと特権的な関係にあり、オーナーたちはその人物を事業から完全に排除したくなかったのだと思う。
だから必要なツールを提供しなかったというのは、その人物を切り離す権限を与えなかったという意味かもしれない。
技術的な助言を求められれば、今でも良い提案をしようと努めている。
ただし「あなたの助言の一部には従うが、こちらの別のことは間違ったやり方でやりたい」と言われた瞬間、たいていは「では頑張ってください」と言って身を引く。
著者注:事態の深刻さから、多くの読者が組織犯罪の関与を推測したが、そうではなかった。
状況が極めて問題だらけで不誠実だったのは事実だが、私がほのめかした「最悪の部分」は、別の内部力学、信頼の悪用、不適切な行為のことだった。プライバシー保護と、文章の負担を減らすため、これ以上詳しくは書かないつもりだ。
イタリア語圏の一部地域は組織犯罪組織で悪名高いので、ここでもそうだったとして驚く人がいるだろうか、と思う。
そうではないと想像するほうがむしろ難しい。
時期を教えてくれないと、当時使えた技術を見当づけられないのに、なぜそんな重要な部分を抜かすのか分からない。
所有者の家へ同期・バックアップするのにどんなツールを使ったのかも気になる。
個人的には、なぜFreeBSDに移したのかも気になる。別のアプリケーションや用途だったのか知りたい。
本当に素晴らしい話で、今のやり方ならNextcloud/ownCloudにコラボレーション機能を置き、rsync/Syncthingで外部NAS、たとえば所有者の家へ同期したのではないかと思う。
意思決定については、自分なら取締役の役職を受け入れ、地元のMSPを雇って自分の望むやり方で動かしたと思う。
こういう状況では、腐敗した内部構造の外側に、信頼できる目と耳さえあれば足りることが多い。
軍隊や外交組織も似た原理を使っていて、現地の人員構造とは別に、本部が採用・管理するXOがいて、このXOは現地組織ではなく本部に報告する。
バックアップにはrsyncベースの同期を使い、ハードリンクとその上でのrsyncで履歴を保持していた。
全体を自動化するPerlスクリプトもあったが、名前はずいぶん前に忘れてしまった。
それ以外の部分は理解しているし、全面的に同意する。ただ当時は若く、正直なところ、ほとんど救いようのない状況を立て直そうとするより、本気で良いものを作りたいと考えている健全な顧客たちと何かを作ることのほうに関心があった。
ALIXは別の作業のためにFreeBSDへ切り替えた。FreeBSDのネイティブな読み取り専用サポートが、新しいワークロードにぴったりだった。
イタリアだって。金は問題ではないのにコンサル会社は使わず、組織犯罪も関係ない? まあ、そういうことにしておこう ;-)
相手の態度を変えさせることができたという、その電話をなぜしなかったのか説明してくれるのか気になる。
故人への敬意や、伏せておいた秘密のためだと推測している。
私が電話しようとしていた相手は、私にとても近しい人で、何が起きているのかを知ったら極度に失望したはずだった。
その人は、困難な時期に、まさに今私を脅していたその人物を助けたことをとても誇りに思っていた。
さらに、私に近しいその人は深刻な健康問題を抱えていたが、それでもなお権威はあったため、結局その瞬間には無意味だった苦痛をさらに与えないことを選んだ。
なぜ文ごとに改行が入っているんだ?
文ごとに改行を入れるのは普通のやり方ではない。それでも文章自体は面白かった。
実際には何かを成し遂げたわけでもないのに、無駄に「教訓」っぽい雰囲気を出している点も、いかにもそれらしい。