投稿

Translate

円安は日本のITエンジニアには地獄状態

長引く円安、もがく日本のIT業界 日本のIT業界って、物凄く円安に弱い。 そもそも、日本のITサービスって、海外では殆ど普及いていないし売れていない。 国内では、日本独特の忖度や談合などの文化で何とか売れているものもあるが、日本のITソリューションを実際導入した企業も、ほぼ満足していない。 日本のソフトウェアやソリューションサービスがオワンコだとしたら、残るはハードウェアとなるが・・・ パソコンにしても、スマートフォンにしても、現在は殆どが輸入されてきた部品で構成されている。 製造することすらどんどん手放していって、海外で製造して、国内に逆輸入しているメーカも殆どになってしまった。 そうなってくると、どんどん高くなるIT製品に、需要が細って行き、売れないパソコンに売れないシステム開発案件。 それでなくても、7次受けにも達する案件では、末端のエンジニアが時給1000円前後で、コンビニでバイトした方がマシだと思える状態でもがいているのに、これ以上悪化したら、ますますIT業界からエンジニアが離脱して行く事が想像つく。 何もしない大手ITゼネコンは、どんなに案件の価格が落ちても、自分達の中抜き取り分だけは維持しようとするから、今がんばっているエンジニアも今から、単価が下がり始めたり、地獄を見る事になるだろう。 末恐ろしい状態の円安だ。

VBAやVBでWithを使うのは避けた方が良い

Withを使うと、非同期処理や他コードへの移植に支障が出る。 オブジェクト変数または With ブロック変数が設定されていません VBAで、処理速度改善等で、最終的にはApplication.Ontime 等を利用した非同期処理に手を出す事になるが、コーディングにWithを利用していると非常に不味い事になる。 非同期処理でSheet1とSheet2の両方に何かを出力するプログラムがあるとして、Sheet1への非同期処理と、Sheet2の非同期処理が同時に動いた際に、With Sheets("Sheet1")= "test"とWith Sheets("Sheet2") という処理が同時に動作すると、 片方のWithはSheet1を指しながら、同時にSheet2のセルへ何かを書き込む処理が在ったとすると、Sheet1へ書き込まれるべきものが、Sheet2の.Range("A1").Value = "1" とみなされSheet2へ書き込まれたり等してしまう。 両方の処理でWithがSheetを指している場合は、誤動作レベルで済むが、Withがそれぞれ、別のコントロールや、共通のメソッドを持っていない物で使用されていると、「オブジェクト変数または With ブロック変数が設定されていません」と表示されてしまう。 コーディングに熟練した人であれば、予め非同期や多言語移植も考えて、Withが便利であっても使用せずにコーディングするのだが、VBAの小、中級プログラマーは、非同期や、多言語間への移植など考慮せずにコーディングするので、予めコーディング規約などで、Withは使用しない事等を規約に入れていくと良いだろう

中小企業の経営者がITベンダーが提案するDX推進提案での導入で失敗しない為に

イメージ
ITベンダーが提案するDX(デジタルトランスフォーメーション)を見極める為にする事 DX導入が増えるにつれて増える失敗事例の数々から学ぶ ここ数年、ITに関わるテクノロジーの発達で、AIだのクラウドだのAWSだのと、様々なビジネスソリューションが提供され、導入も増えてきた。 経営者も、取引先や、または、融資を受けている銀行の担当者等から、「お宅のDX推進は進んでいますか?」等と、何度も聞かされ、何となく、周りが進んでいるような印象も受け、周りから遅れてしまい、取引に行き詰まる機会も出て来るのはないか・・・と焦ったりしている事もあるだろう。 実際FAXやら、電話やらで発注、受注で人手が掛かっていた分野でも、WEB-EDIやら、流通BMSやらといったサービスで、ある程度自動化された側面がある物もあるだろう。 賢く導入されたDX(デジタルトランスフォーメーション)での、業務改革は、何人もの人手が必要だったものが、いつの間にか一人、二人で済むレベル業務量に落ち着いている物もある。 しかし、大炎上していたDX案件の改善に関わる事が多い筆者は、DX推進に伴う数々のトラブル解決で関わっていく中で、大きなトラブルに遭遇していた企業には、共通点があると感じた。 ITに関わる分野は物凄く広い為、分からないから担当者に丸投げもあると思うが、中小企業が抱えるエンジニアも一人、二人である場合も多く、少数のエンジニアが、全ての分野を把握しきって、進める事も現実的では無い為、分からないなりにも、エンジニアと対話が可能な共通に行える認識合わせが必要だ。 経営者が関わってDX推進を成功させる為に行う事としない事 1.導入前と導入後に予想される工数削減を、作業単位で洗い出す(フィット・ギャップを策定する) 中小企業では、これをやっていない企業が意外と多く、ベンダーに言われるがまま、便利になりますよと言われて導入したものの、受注は便利になったが、請求業務がFITしておらず、営業部署は楽になったが、経理は複雑になって、オペレーションに時間がかかるようになったというような事が起きては元も子もない。 大企業が導入しているみたいな計画までは必要と考えていなくても、作業単位では、工数算出で(フィット・ギ

シルバーエンジニアを雇う時は注意しないと既存メンバー(特に非正規)が去っていく

イメージ
シルバーエンジニアを雇用する時は、こんなところに注意。 面接の前に、シルバーエンジニアの特徴を知ろう。 日本のIT現場は、成りて不足が改善せず、若手も、熟練エンジニアも深刻な人で不足に見舞われている。 まず、何故、成りて不足が改善しないかというと、基本的に日本のIT開発現場は、多重の下請構造からなるゼネコン体質が特徴的で、日本の場合は、実際に手を動かすエンジニアは、何故か低層に位置させられており、下層へ行く程、低賃金である事から、折角エンジニア志望で入ったエンジニアも、現実を知り、早期に去っていく状況が繰りされています。 新参エンジニアが直ぐに、現実を知って去る人が多いのは、実際に設計して、プログラムバリバリ書く人に特に多い傾向がある。 実際の開発で手を動かす人は、日本のIT産業では何故か低層に位置されており、各分野でスペシャリストになる必要がありながら、限界ギリギリ、時には限界以上に中抜きがされており、低賃金で、人数も少ない為労働時間も過多となり、低レベルな進捗管理でありながら責任が重くきつく、いわゆる3Kと言われている。 シルバーエンジニアでも良いから、取り敢えず人が必要となるケースがある、層は、限りなく低層に位置する企業だ。 こういった構造の中で長く生き抜いた、シルバーエンジニアには大きく2つの特徴がある。 上層に位置するシルバーエンジニアにはだった場合、何でも自分で好き勝手決めてやってきた環境なので、顧客の要望とか考えず、自分がやりやすい結果にし、設計書や、仕様書を読まずに勧めてしまう自己中タイプ。 中層に位置するシルバーエンジニアは、割りと、上にも下にも融通が効き、臨機応変に動ける物腰が柔らかい人が多いが、中層は、特に手を動かす事が無かった環境なので、実際に手を動かすとなると技術が、スキル不足で対応出来ない傾向を持つ。 下層に位置したシルバーエンジニアは、構造上の立場をしっかり理解しており、周りとも協調して進める事が可能なエンジニアである傾向が多い。 この構造に収まらないエンジニアは、いわゆるメーカでの社内SEであったケースが多いと思われる。 メーカー型社内Sのシルバーエンジニアが最も厄介で、技術も属人的で、独断で突っ走る傾向があり、上層からだけではなく、下層の人

ボーナスが無い派遣社員がボーナス受け取れる風にする方法。

イメージ
時給〇〇円に賞与が含まれているが、賞与を受け取ったぽく待遇を得る方法 契約期間を逆手に利用 派遣社員には基本的に賞与や、退職金がない。 正社員と派遣社員等の非正規雇用の待遇格差を無くそうと、政府が施策した結果、派遣各社がした事が... 交通費分現在の時給が減額され、減額された文が交通費として支給されたり、退職金といいつつ、時給据え置きで、文言に賞与、退職金を含む等と記載するだけで、待遇に変化無しという結果に... 見せかけだけ、待遇差が無くしましたとか、非正規雇用者側からすれば、意味不明であまりに理不尽な対応だ。 正直、夏のボーナス、冬のボーナスみたいな時期は、フラストレーションが相当たまるし、そういう待遇のないまま、忘年会だの、新年会だの、懇親会だのを、数時間分の労働が必要な金額の会費まで払わされて参加とか、もうあまりにも奴隷のようで地獄である。 特に派遣社員の場合、長く働いても基本的に昇給される事もなく...派遣先の正社員と同じ仕事そしているのに、福利厚生も不利なまま。 有給休暇については、派遣契約が終了すると、有給自体が消滅してしまうという、あまりにも理不尽な待遇なのだが、これを逆手に取って、賞与を得た風にする事は可能だ。 有給休暇を効率的に使う 基本的に派遣契約と言うのは、3ヶ月毎に更新を迎える。 派遣社員であっても、週40時間以上の労働時間が、6ヶ月間(半年間)続いた後、有給休暇が最低でも10日付与される。 この、派遣契約期間と有給休暇を組み合わせて、ボーナスを得た風にすると言う事だ。 それでも、正社員の待遇には敵わないが... 派遣で2回の契約更新後(半年後)有給休暇が10日付与される。 次の契約更新を最後の契約にしてしまい、有給休暇を使い切ってから、別の派遣会社に乗り換えるという技を使えば、また、別の派遣会社に6ヶ月在籍後有給休暇が付与されるという、まるでボーナスを貰ってみたいな感じに出来る。 これを繰り返せば、現金での支給は無いものの、休暇という形でボーナスは受け取れそうだ。 デメリットは、6ヶ月後に付与される為、実際の正社員が受け取れるボーナス支給よりかは1ヶ月ズレていくkと言うこと。 派遣で長期を選択している場合

優秀なITエンジニア程早い失業が訪れる

プロジェクトの完了日は失業までのカウントダウン プロジェクト選びは慎重に IT関連の開発プロジェクトは、基本的に終了日が設定されている。 本来、開発が計画通りに進むという事は、優秀なエンジニアによって実現されている訳だが、優秀であればある程早く失業する。それが、日本のIT業界の構造だ。 基本的に常駐型エンジニアの場合、正社員であって、派遣であっても、次の常駐先が決まらなければ失業となる。 正社員の場合は、3ヶ月の猶予がある場合が多いようだが。 短期の案件だった場合には、次の案件を探す目処が付きやすいが、短期の筈が、延長が続いたり、そもそも長期だった場合には注意が必要だ。 常駐先や、派遣先を紹介した元は、例え終わりが予定されていても、延長や継続の可能性があるとみなして、完全に終了するまでは次の案件を探してはくれない。 こちらが意向を示した場合でも、探してくれているフリはするが、実際は紹介しない。 どういった、対策が取れるかというと、紹介元の企業とは、違う企業の案件に申し込んで案件を獲得するという方法だ。 人さえ入れれば利益が増える紹介元の別企業は、積極的に営業をしてくれる。 もしも、プロジェクトの終わりが見え始めているなら、プロジェクトの完了まで献身的に関わるよりも、次の案件を探しておかないと、プロジェクト完了時の経済状況が不景気だった場合は、失業状態が長引く可能性があり要注意だ。 次の案件探しはお早めに!

EXCEL-VBAでやってはいけない処理速度改善方法

イメージ
配列化しても処理速度が落ちてしまう実装方法 折角配列化して処理速度改善を行っても、処理速度が改善しなくなる処理 図のように、配列化しても、データ取得の特定のデータに行きつく為に、アクセスを判別する処理が、毎回必要とする処理を実装してしまうと処理速度が大幅に落ちてしまう事がある。 データベースのようにインデックス化されたデータベースから引用する場合には問題ないが、Excelシートの情報をそのまま配列化した場合に、データベースのようなアクセス方法で実装してしまうと、処理速度の改善がされない場合がある。 何故なら、特定のデータにアクセスする為に、毎回全件データを走査していく必要があるからだ。 Excelシート情報を配列化した処理で、処理速度改善を実現する方法とは? 何も事前処理されていないExcelシートの情報をそのまま配列化して、特定の加工を施し、データを転記する場合、加工の為に配列化された情報か特定のデータに辿り着くまで毎回アクセスする必要が出てしまい、この特定のデータに辿り着く振る舞いを、1万件、2万件のデータで行うと、少量では気が付きにくかった処理時のオーバーヘッドが積み上げられ、非常に遅くなってしまう結果となる。 処理に必要なデータ順に並び替え、特定のキーが変わったら(キーブレイク)したら、次種類のデータとなったと判別するようにすると、データアクセスの度に全件アクセスを行う必要が無くなり、処理速度がかなり改善される。 配列化されたデータアクセスの処理改善まとめ 処理の度に、毎回全件データアクセスを必要とする構造を廃止し、処理が必要な順にデータを並び替え、データの上から順に一巡するだけで処理が完結する構造とすると、処理速度が随分改善する。 数十分単位だったものが、数秒で終わるケースもこれまでに経験しており、処理を便利に高機能にしたいと走ってしまった場合、大量のデータに遭遇した場合、処理速度の問題にぶつかるであろう前に、ユーザーエクスペリエンスを優先させるかを事前によく検討した方が良いと思われる事案の一件を紹介しました。

Excel VBA クリップボードを使用しないコピー方法

イメージ
通常のコピーを使用しないセルのコピー方法 Copyを使用しないセル値のコピーや転記を行う方法 EXCELのVBA(マクロ)でクリップボードを使用した実装を行うと、マクロ実行中に他の作業で、コピー&ペースト等を行うと正しく動かなくなる場合がある。 もう一度マクロを実行し直すか、マクロ実行中は操作を控えるかの選択となるが、マクロを使用するユーザーが、マクロ作成者であれば回避も可能だが、そうではない他のユーザーが利用する場合、意図しない動作をしてしまう場合がある。 セルのコピーは、Copyメソッドを利用しない転記方法もある為、今回はクリップボードを使用しない方法で、セルの範囲をコピーする方法を紹介 この方法は、クリップボードが使用されてしまう。 Range("B3:D7").Copy Range("B10:Z13").PasteSpecial Paste:=xlPasteAll 実行結果 Value(XLRangeValueXmlSpreadsheet)を使用すると、クリップボードは使用されない Range("B10:D13").Value(xlRangeValueXMLSpreadsheet) = Range("B3:D7").Value(xlRangeValueXMLSpreadsheet) 実行結果 実際にクリップボードの使用、不使用を確認したい場合は、メモ帳などで、文字をコピー後、マクロを実行し、メモ帳で、貼り付け(ペースト)を行って、コピーした文字が貼り付けば、クリップボードが使用されているかいないかが確認出来る。 クリップボードの使用をマクロで実行している場合、貼付け時に、マクロでコピーした内容が貼り付けられたり、コピーしたクリップボードの内容がクリアーされている事が分かる。

Googleのアカウントは携帯を解約すると二度とログイン出来ない

イメージ
スマホ解約時はGoogleアカウントの情報は全て退避した方がよさそう 無限ループのアカウント復旧プロセス スマホ解約後、パソコン版Chromeでログインしようとすると、ログインにたどり着けなかった。 この段階で、利用していたスマートフォンの電話番号当てに、SMS通知で認証コードが飛ばす為の画面が表示されるが、スマートフォンは契約(解約した)していない為、別の方法を試す事になる。 その後は、「本人確認のための追加情報が必要」と表示され、またログインパスワードの入力画面から繰り返し、ログイン出来なくなる。 もしもスマートフォンの解約を行おうとしている場合、Googleのアカウントにスマートフォンの電話番号が紐づいている事が殆どだと思われる為、注意が必要だ。

VBSでマクロの実行時に警告を非表示にする方法

イメージ
マクロ付きExcelファイルを実行する際に、VBScriptで警告を抑制する方法 VBScriptでマクロ付きExcelファイルを起動する際に、マクロの実行警告を表示させないコード 下図のようなメッセージだけ表示するマクロ付きExcelファイルがあるとする。 何の害も無いこのマクロ付きExcelファイルのxlsmファイルを開こうとした場合でも、警告が表示される。 このファイルを開こうとすると・・・ マクロ付きExcelファイルを実行する為の警告メッセージで、「セキュリティの警告:マクロが無効にされました。」と表示され、【コンテンツの有効化】ボタンを押さなければ、マクロが実行出来ない状態となる。 確実にそのファイルが安全だと分かっており、頻繁に開くファイルであった場合には、いちいちボタンを押下する作業が煩わしくなる。 また、マクロ付きExcelファイルである、xslmファイルを自動実行するバッチ処理であったりする場合等は、人がこのボタンを押さないといけない状態だと、無人での自動化の妨げとなる。 このメッセージを抑制、非表示とし、VBScriptで実行する場合は、下記のようなコードで実現できる。 仮に、AutoMacro.vbsとして保存 Dim objExcel Dim objBook Set objExcel = CreateObject("Excel.Application") 'イベント抑制 objExcel.EnableEvents = False set objBook = objExcel.Workbooks.Open("P:\OneDrive\Download\test\testbook.xlsm")) objBook.Close() objExcel.Quit() Set objBook = Nothing Set objExcel = Nothing 共有フォルダーからコピーしてきたファイルは、あらかじめファイルのプロパティで、セキュリティに別途チェックを入れておく必要がある事をお忘れなく。