私は中小メーカに勤めている。
上記記事で書いたようにメーカー系はどちらかと言うとソフトウェア開発に弱い。そのためか、ソフトウェア開発となると外注業者頼みとなるところが多い。
弊社も一応、関連会社にソフトウェア開発会社が入っているが、(色んな意味で)使えない。所詮、買収した会社だからごふんげふん。いやいや、関連会社にソフトウェア開発会社が無かった頃から、色んな外注業者とお仕事をしてきてが……。
(察してくれ)
お金を積めばまともなところもあったが、お金を積んでもひどい会社の方も多かった。せめて値段分、働いてくれ。
どちらかと言うと、外注業者=いわゆる独立系ソフトウェア開発会社に勤めている人の実録を見かける昨今が、本日はそちらの人たちに指示を出していた(現在進行形で出している?)私側の話を、要は困った外注業者さんたちの話を書かせて頂こうと思う。
実録・実際に存在して困った外注業者さんたち
困った外注さんあるある【絶対に不具合を認めない!】外注業者さん
どんだけ自分の作ったプログラムに自信があるんだろう?
と思った事案である。
この外注業者さんに頼んだのは、組込機器で使用する一機能を有するライブラリである。
思えば、最初から不穏な空気はあった。
と、見事にグダグダだった。
まぁ、でも、ターゲットとなる端末側の機器が貸出せなかったからなぁ(あと、私が主担当じゃないし、まっ、いいか)
加え、開発期間も少々シビアだった。こちらにも落ち度があったため、多少は目をつむった。
が、しかし。その頃、その外注業者とやり取りをしていた弊社担当者が都合により長期休暇に入ることになり、後任が私となった瞬間に全てが露呈することとなった。
なんじゃこりゃあ!
意図通りに動かないのは勿論のこと、問い合わせてもメールレスポンスは激遅で。痺れを切らせて納品物内にあったライブラリの実ソースを見た瞬間、漏れた私の叫びである。
- ポインタ渡しで渡された引数を、そのまま自分の中に転記することもせずに使っている(ポインタ渡しした方がずっと領域を確保していないとダメ)
- 複数の端末を接続するため、管理はスレッドないし準ずる最適な方法で行ってねと指示したにも関わらず、スレッドないし準ずる方法を使っている気配一切なし
- ↑で複数端末を管理するためミューテックスを使っていたが、解放の仕方がずざんで途中でエラーが発生すると解放しない作りになっていた
正直、よくこんなひどい出来のモノを納品出来たなとドン引きした。
①はケースバイケースなところもあるが、その旨を取扱説明書に記載してなかったのは頂けない。②と③は論外である。
なんのためにお金を積んで、ライブラリ開発して貰ったと思ってんだ! と言いたくなるような出来である。
が、しかし。この後、更にドン引きする事案が発生した。
納品まで時間が迫っており、こんなライブラリでもなんとか使わなければならず、こちらのプログラム修正で何とか機能の作り込みをしていた時のことである。
この変数、どんな値をセットしても出力される値が変らないな
おかしいと思い、問い合わせる前に自分でライブラリのソースをチェックしていたところ、値ではなくその変数のポインタを渡しており、それで値が変化していないことが分かった。
まぁ、ありがちなミスだよね
構造体を数多く使っていると、割とありがちなミスだ。なので、指摘すればささっと修正してくれるだろうと、ミス箇所をメールで指摘した。が、しかし。
この変数にこの値をセットすれば関数として機能します
いや、それは分かってるんだけど、値じゃなくてポインタ渡ししてるでしょ?
いえ、この変数にこの値をセットすれば関数として絶対に機能します! 実際にやってみてください
いやいや、やっているから言っているんだよ。
これがまだ即レスポンスならいいのだが、投げてから2~3日後にこのレスポンスが返ってくるので、イライラ度合いが半端なかった。(しかも電話しても「不在」)
だーかーらぁ、この関数にこの値をセットした場合、こうならなきゃダメでしょ? でも、このライブラリで実際にやってみるとこの値になるの。おかしいでしょ?
使い方が間違っているんじゃないですか? このライブラリにこの値をセットしてみてください。結果がこう出るでしょ?
だから、出ねぇって言ってんだろ!!!!!
普段、温厚な私が最早、ブチ切れ案件になるほど会話が噛み合ってない。
なぜ、ちょちょっと直せば済むだけの話がここまでこじれたのか。私にもよく分からない。そして、この話は意外なところで終焉を迎えた。
そこまで言うなら試験仕様書を見てください。きちんと試験してますから!
と、自信満々に外注業者様が言ってきたので「おぅ、見てやるよ!」とばかりに見たところ、ばっちり不具合の証拠が残っていたのだ。
試験仕様書、拝見させて頂きました。この値をセットして、出力結果が「***(明らかにおかしい値)が出ているようですけど、なんでこの値になるのか根拠を教えて頂けませんか?
結局、この後、謝罪の言葉もなく、しれっと「不具合がありましたので修正しました」と返ってきたのであった。
実に不毛なやり取りだった。
あまりにも外注業者が自信満々なものだから、私の使い方が間違っているのか目が節穴なのかと何度も確認したし、果てには他の人にも確認して貰ったが、そんなことはなかった。
私が指摘したソース箇所を見ればすぐに分かる部分だったと言うのに。こちらが使い方を間違っていると思い込んだのか、はたまた確認するのが単に面倒なだけだったのかは知る由はないが、とにかくヒドイ一件であった。
ちなみにこちらの会社、名前こそは大手の名前が入っていないが某大手グループの関連会社で、展示会等では大通路脇の大きなコマを取っている会社である。
その会社の招待で、VIPルームに入れて貰ったことあるんだよね(そこだけは嬉しかった)
昔、間接的にお世話になったこともある企業で、品質が安定している組込機器を購入して使っていたこともあっただけに、この件でかなり失望した。
その企業にとって強みのある部分のお仕事で、無茶苦茶な仕様でなかっただけに、中身のガッカリ感は半端なかった
技術者としてのプライドはないんだろうか、恥ずかしくないのだろうかと感じた一件でもあった。
困った外注さんあるある【面倒だから自動化って言ってんのに、意地でも手動削除させようとする】外注業者さん
これは困ったと言うより最早、呆れた。
開いた口が塞がらないってこういうこと言うんだろうなー(呆れ)
あるシステムのアプリケーション開発を外注業者に頼んだ時のことである。ソフトウェア開発は、デバッグ(バグを見つけ出す作業のこと)のために動作記録となるログ記録を行うことが多い。その蓄積されていく一方のログが引き起こした騒動である。
その当時、私は納品された当該システムの品質試験を担当していた。試験仕様書に沿って試験を進めていく内に、例のログが溜まる一方で削除されないことに気づいた。
一定期間が過ぎたら削除って仕様書にも記載してあるし、消えないのはおかしい
その仕様について認識違いがないか設計者にも確認した上で、ログの自動削除機能が実装されてないですよーと外注業者にメールを送ったのだが。
あ、その機能はですね。まず、スタートボタンを押して貰って、エクスプローラーを開いて、この場所にアクセスして貰ってですね──
いやいや、そういうことじゃなくてですね
Windowsの操作方法を大真面目に説明し始めた時は、本当にびっくりした。
仕様書に自動削除ってありますよね? 自動なんです。そこはプログラムなりバッチなりで作ってシステムに組み込んでください
え、何でですか? わざわざ組まなくても手動で出来るんだから手動でやってくださいよ!
お前がメンテナンスするワケじゃないだろうが! と叫びだしたい瞬間であった。
確かに、ログは(OSがWindowsなので)決まったフォルダの箇所にファイルとして残っているため、手動でも削除は可能だ。
が、しかし、システムは何百、何千と導入する。その何百、何千のシステムをいちいち手動で削除なんて土台無理な話なのである。
なら、取扱説明書に記載してユーザにやらせればいいんですよ!
(絶句)
外注業者自身がやると言うなら勝手にどうぞ状態だが、そうではなかったので上司に相談し、お叱りメールを飛ばして貰った。
これ、こう言ってはアレだが。まだ、システムのことをよく分かっていない新入社員なら許容範囲なのだが、年齢的にそう見えない人が極真面目に言ったので本当に吃驚したと言うか、呆れた一件であった。
仕様書にはこのシステムがどういうものなのか、どのように使用されるのかも明記されていた。その上であんな言葉が出てくるのだからある意味、凄い。実際に使うユーザの気持ちなどこれっぽっちも考えていないのだろう。
そしてそんなメールをCCされながらも放置している外注業者の周囲も相当
ちなみにこの外注業者とはこの後、さっさと縁を切った。
困った外注さんあるある【新入社員の教育を弊社に丸投げな】外注業者さん
今、思えばその新入社員くんも大概、気の毒だった。
こちらはあるシステムのリプレース開発を頼んだ時のことだ。こちらの外注業者さんは昔から縁がある会社であり、担当者も馴染みある切実な人だったため安心していたところはあった。
それが大きな間違いだったのである。
信頼していた馴染みある担当者さんが出てきたのは最初の打ち合わせ時のみ、その後は明らかに技術力のない楽観的な役職者と新入社員くんの2人しか出てこない。
ザ・いやなYOKAN !!!
予感は見事に的中した。
リプレース内容に対して見積もり金額が明らかに高く、理由を問いただせば
いやぁ、チェックボックスがなかなか見つからなくて、なんやかんやで25時間かかってしまいまして……
そんなこと知るかボケェ!
統合開発環境の使い方が分からず四苦八苦悩んでいた時間をしれっとそのまま見積もりに載せてきたり(知っていれば5分で出来る内容)
送っていただいた機器との接続がうまくいかなくて……
ping(機器との接続を簡単に確認するコマンド)は打ってみた?
え、えぇと。ピングってなんですか?
はい?(相棒の右京さん並みに)
基本的なコマンドの説明すら、こちらに振ってくる始末である。
弊社はあくまでもお金を積んでソフトウェア開発をお願いしている立場である。弊社の新入社員ならまだしも、他社の新入社員を面倒みる義理などない。
この件はすぐに直属の上司に相談して、馴染みの方を担当に戻してくれ! と苦情を入れたが取り入って貰えず、技術力のない楽観的な役職者が介入してきて更に泥沼案件となった。
なんかもう大変だった。
零細企業(独立系)に就職した子はこうやって潰れていくのかぁ……(怖)
使えないおっさんの下についてしまった哀れな新入社員の末路を見た気がした。
彼は今、元気にやっているのか。それだけが心配だ。
まとめ:外注業者は一歩間違えると更なる厄災を招く
嘘のような(むしろ、嘘であって欲しい)本当にあった外注業者の話である。
多少、わかりやすくするため細部にフィクションは交えているが、大枠に嘘偽りはない。
今回、挙げさせて頂いた三社のような外注業者にエンカウントすると、仕事が減るどころか逆に増える上にストレス倍増なのは必須だ。
こんな外注業者を相手にしている人の苦労がはかりしれない。ソフトウェアに疎く、気づかずに言われるままに大金を払っている人も居るのだろうか……日本の企業の質もここまで落ちてしまったかと嘆きたくなる。
すべての企業がそうとは言わないが、何となく肌で感じることがあるのだ。
正直、ソフトウェア開発自体、日本は遅れを取っている。AIなんかまさにその典型だ。時間をかけてでも良いものを作る、日本人の職人気質は最早、失われつつあるのかもしれない。
……なんて、私も人のことをとやかく言えるほど、ソフトウェア開発に精通しているワケではないので、こんなこともあるのだな〜と軽く流してみたり、分かるとひたすら共感して貰えたら嬉しい。
ではでは、この辺で!
コメント