輸入ビジネスをやっていると、
- この作業自動化したいなぁ…
- 効率化できないかなぁ…
そんな悩みが出てくるものです。そこで登場するのがランサーズやクラウドワークスを媒体としたプログラマ・システムエンジニアの存在。
もしかしたら…もしかしたら!わたしのブログを読んでみて、
- システムエンジニアってなんでも自動化できるんだなぁ
- パソコンめっちゃ詳しいんだなぁ
…なんてことを1ミリくらい…いや、1ナノくらい思っていただけたらうれしいです!
ですが、システムエンジニアってやつはホントにピンキリで個人差がありすぎるんです。
- 作業を自動化したい
- エンジニアにお願いしよ
と思っているのであれば、ちょっと今回の記事を読んでみてほしいです。
エンジニアのリアルな現状
エンジニアはアタリ・ハズレがある
おそらく多くの方がプログラミングってむずかしい、特別なスキルだ、と思っているでしょう。その認識は正しいです。
…すみません、これは『俺SUGEEE!』と言っているわけではないんです。システムエンジニアしかいないはずの職場なのに、プログラミングができないという人がゴロゴロいるんですよ。
だからこそ、エンジニアっていう人種は個人のスキルの差がすごく大きいです。ツールを外注するにしてもアタリ・ハズレがあるでしょう。
わたしも今までに多くのエンジニアを遣ってきましたが、アタリは30%程度でした。
それなりのレベルのエンジニアだって、みんながみんなMWS APIとかPA APIを知っているわけじゃないです。
ツール作成を依頼するときに『MWS API、PA API使って作ってください』とちゃんと言わないと、スクレイピングを使ったおかしなツール作ってくるかもしれませんのでご注意を。
エンジニアのうち30%がプログラミングできない!?
わたしは立場上、本当にたくさんの派遣社員を遣ってきました。その経験から言えることはというと、
- 派遣社員のうち70%くらいは使えない。
- 10%くらいはプログラミングすらできない。
あくまでもわたしの経験上のお話です。まぁそんなやつがうじゃうじゃいます。
IT業界ってやつの実態は、
- 10%の人間がIT業界のフロンティア(開拓者)。
- 20%の人間が会社を引っ張る。
- 30%の人間が奴隷のようにがんばる。
- 20%の人間がプログラミングできないのに会社にしがみつく。
- 10%の人間がプログラミングできず辞めていく。
ざっくり、上記のような感じです。
『1』の人は本当にすごい人で、宇宙人みたいな人です。でもたいていそういう人とは人間の会話が成立しなかったりします。一生をパソコンとともに過ごしてきた人と会話できますか?いや、無理でしょう。
ゆえに、もし一緒に仕事するなら『2』、もしくは『3』です。誰よりもコンピュータに精通している、プログラミングができる、というのが最良というわけではないのです。
システムエンジニアの仕事はお客さんが要求するシステムを開発するとともに、社内の稼げない人たちを食わせてあげるという仕事もしているんです。
だから日本のシステムエンジニアは低年収なんです。海外だとバッサバサ切るし、エンジニア自信も他人がソースコードをメンテできないように工夫したりしてます。海外のコードを読むと、あまりの難解さに3D対応のディスプレイじゃないのに文字が浮かび上がってくるんです。気がつくと10分くらい落ちてたりします。海外の技術ってすごい。
話が逸れましたね。戻ります。
良いエンジニアとは?
正直に書きますと…ランサーズやクラウドワークスで仕事を請け負う人に、そんな変な人はいないはずです。
それなりに腕に自信がある、経験豊富で、自分自信で問題はすべて解決できる、って人だからこそ請け負えるのでしょう。
ごく当たり前のことではあるのですが、
- 納期を守る。
- レスポンスが早い。
- 良い方法を提案してくれる。
- なにをやるのか明確にしてくれる。
- なにをやらないのか明確にしてくれる。
結構重要なのが、『なにをやらないのかを明確にする』という部分です。リアルのお仕事でもここが重要でありできていない人が多いです。要は作業範囲を明確にしてくれるってことです。
何をやってくれるのかを明確にはしてくれるけど、何をやらないかを明確にする人はすごく少ないし、これができる人は仕事できる人ですね。
要は、やらないことまで明確にしないと後でモメるんですよ。
こちらはやってくれて当然と思っていることでも、最初の作業指示・要求にないことは基本『やらない』ことであり、あとからこうしてほしい、これバグなんだけど、と言っても『仕様です』、『要求にありません』、『機能追加(別料金)になります』で片付けられることが多いです。
動かないツールを納品してきて『仕様です。あなたの要望通りに作った結果ですよ?』っていうこともこの業界ではよくあることです。みんな自分を守るのに必死なんですよ…わたしも含めて…。
良いエンジニアというかわかっている人だと、こういう作業範囲のところでよく問題が起こるためはっきりさせてくれる人が多いです。
逆に言うと、依頼する側としても作業範囲をしっかり明確にしておくべきです。『なにをやって』、『なにをやらないのか』。ついでに『誰がやるのか』というところも。それでも要求が漏れてしまうことはありますが、エンジニア側からもカバーしてくれる人だと良い人ですね。
バグは仕方がない…
すみません、どんなに優秀なエンジニアでもバグは許してやってください…。どうしてもバグは出てしまうものなんです…。
たとえば、自転車のボルトを100の力で締めるところを99にしてしまったというミスが起こってもほぼ100%問題にはなりませんが、ソフトウェアの場合は1文字間違えただけで飛行機や電車のシステム全体が止まったりするし、地球の裏側まで飛んでいって修正しに行かなければならなかったりします…。
設計がアホみたいに悪くなければ、いつかかならずバグは収束しますので…。
ちょいちょい止まってニュースになる電車や空港のシステム。あれもきっとたった1行ミスっただけなんですよ。
裏では犯人探しが始まり、犯人が特定され、担当者は死にたくなるような想いをしているんです。
そういう事情を知っていると、『プログラミングなんて簡単』、とか絶対に言えないわけですよ。
悪いエンジニアとは?
簡単に言えば、悪いエンジニアは、良いエンジニアに並べた項目のことができない人です。
- 納期を守らない。
- レスポンスが遅い。
- 提案しない。
- 作業範囲を明確にしない。
そして、さらにわたし自身がランサーズやクラウドワークス、ココナラを見て思うことがあるのですが、下記のようなタイプは注意が必要です。
- エクセルマクロが得意。
- エクセルマクロで作ろうとする。
なんでエクセルマクロダメなの?っていうと、それ自体はダメではないのですが…。
- エクセルマクロってのはエクセルの延長で覚える人がいる。
- エクセルの延長でマクロを習得した人はたいてい非エンジニア。
エクセルマクロ(VBA)、は一言で言えばプログラミング言語の1つとも言えます。で、どのプログラミング言語を使ってツールを作るかというのはなにを作るかで決める、適材適所なんです。
エクセルマクロが得意って人はエクセルマクロしかできない人が多数いるでしょう。というかわたしはエクセルマクロ使えますけど極力使いたくないです。あまりにも柔軟性がないので。
困ったことに、エクセルマクロ内でIE OLEという、IEを遠隔操作するプログラムを組んでAmazonの商品データを取得しようとするかもしれません。
多くの人が勘違いしていることをバシっと指摘しましょう。
- 多くの人はエンジニアをプログラミングができる人だと思っている。
- 正しくは、エンジニアは問題解決ができる人。
ただプログラミングができるという人に仕事をお願いしてはいけないってことです。ここがエンジニアと非エンジニアの大きな違いです。
高い割合で、非エンジニアはプログラミングできる自分すごい!って感じで陶酔してたりします。
まとめ
- 良いエンジニアは作業範囲を明確にする。
- 悪いエンジニアは作業範囲を明確にしない。
- プログラミングができないのにプロ騙る人がいる。
- 1つの言語しかできないっていう人は危険な臭いがする。
システムエンジニアとかいう怪しい職業は単純にプログラミングができる、ツールが作れる人ではないってことです。
お客さんが抱える問題・悩みを解決することができる人、と言ったほうが適切でしょう。
ツールが作れる、プログラミングができる、ってことを自慢する人、イキってしまう人ほどド素人です。
一方的にエクセルマクロをDisってはいますが、わたしの経験上、かなり痛い目見てきたからです。1回作ったらあとでメンテできなかったりするし、エクセルのバージョンによって互換性がなくなったりするし。マクロじゃないエクセル部分を編集しただけで動かなくなります。おまけにファイル開くたびにセキュリティがなんとかってうるさすぎるし。
それなら当ブログで公開しているAsinStockerのように、出力結果はcsvにしておいて、手動でエクセルファイルにコピペってしたほうがメンテも楽だし機能が分離できるし。手動でコピペといってもマクロ開いてセキュリティが…って言われるよりは煩わしくないと思います。プログラムによる結果出力と、エクセルの計算式は分けたほうがいいですよ、ということです。
ただし、上述したようにあくまでも『適材適所』ですので、もちろんエクセルマクロがベストな選択というケースもあります。