還暦がせまり、楽をしたい新人プログラマKASAです。
弊社では「過度な残業反対!」を唱えています。(応募ページをご覧ください)
それが 絵に描いた餅 にならないよう、営業の方は日々頑張ってくれています。(たぶん)
昔はコンピュータのリソースが少なく、2交代や3交代で仕事をすることがありました。
体育会系の乗りというか、ある意味時間をフルに使う体力戦のような
この時代に育った人は結構こういった脳筋スタイルに抵抗がない人が多いです。
その人達が管理職として存在する現場は時として当時が再現されそうになります。
あるそんな管理職のいるプロジェクトに配属されたときのことです。(もちろんトラストに入る前です)
同じパートを担当するメンバーは他1人、合わせて二人、そこへ提供された開発環境は1台のPCのみ。(個人の作業PCはあり)
もちろん「なんでやねん」と抗議「上と掛け合ってもう1台手にいれて」とお願いしたときの回答が
「そんなこと必要ない、君ら2人やし2交代でやったらええねん」でした。 まぢか!
ソフト開発の会社あるあるで開発環境ライセンス数の問題かと思い、
「今回利用する開発環境のDelphiとVisualStudioC#をもう1セットそろえるのではなく別のPCに乗せてくれ」とお願いしました。
こうすれば2人で別の開発環境であれば同時に使えるので…
結局これもNG、結局は開発効率よりも自分が上と交渉するのか面倒だったのです。
これには呆れました、お前そちらのちょっとの手間を惜しんで数か月の間こっちが夜勤するのかと…
もちろん対策を考えました、例えばDelphiには互換Lazarusというのフリーソフトがあり、互換性はかなりありそうでした。
(Embarcaderoはケチ?でフリー版は商用利用できません)
VisualSutudioには商用利用可能なフリー版があります。
ただよくある話で素性不明なソフトのインストールは禁止されています。 まあ有名でも担当者が知らないだけのケースも多いのですが…
となるとVisualStudioC#のフリー版に頼るしかありません。
ここで問題発生、フリー版では使えない(コンパイルできない)機能が必要であることが判明したのです。
調べてみると有償のコンパイラでコンパイル(生成)したモジュールはフリー版でもデバッグ実行は可能ということがわかりました。
であれば少なくともソース修正とテストは自分のPC上で行うことができます。
そこで思いついたのがリモート実行です。
WindowsにはWinRM(Windows Remote Management)というリモート実行機能があります。
この機能をPowerShellを使って、1つしかない開発PC上のVisualSutudioにコンパイルしてもらえば良いわけです。
なぜリモートデスクトップではないのかというとWindowsProのリモートデスクトップは1つのPCを1人でしか使えないからです。
あるところをごにょごにょすればServerのように複数人で使用できますが、それはまあNGです。
リモート先(開発環境PC)での作業
(VisualStudioC#の有料版がインストール済とします)
ソースコード等を置くフォルダをエクスプローラで共有を使ってリモート元(作業PC)から読み書き可能な状態にします。
ここまでは1度だけの作業です。
管理者権限のPowerShellを起動して
Enable-PSRemoting
と入力することでWinRMの操作が可能になります。
リモート元(作業PC)での作業
VisualStudioC#のフリー版をインストールします。(手順は省略)
リモート先(開発環境PC)を信頼できるPCとして登録します。
管理者権限のPowerShellを起動して
Set-Item WSMan:\localhost\Client\TrustedHosts
-Value “リモート先(開発環境PC)のIP”
ここまでは1度だけの作業です。
管理者権限のPowerShellを起動して
net start WinRM
と入力することでWinRMの操作が可能になります。(リモート先とは異なります)
これ以降は管理者権限はなくてもできるはずです。
PowerShellを起動します。
以下のコマンドでリモート先(開発環境PC)にログインします
Enter-PSSession -ComputerName リモート先(開発環境PC)のIP -Credential ログインユーザー名
(パスワードの入力が必要です)
これでリモート先(開発環境PC)でPowerShellを起動したのとほぼ同じ状況になります。
ここからVisualSutudioC#にコンパイル指示をすればOKです。
リモート元(作業PC)でコードを作成しましょう。
この時プロジェクトのセーブ先を上で共有したリモート元(作業PC)のフォルダにします。
既にプロジェクトがある場合も共有したフォルダに展開してください。
ただコンパイルはしません。コンパイルは上のリモート元(作業PC)とつながったPowerShell上でコマンドラインで実行してください。(方法はGoogle先生が教えてくれるはず)
コンパイルが成功したらリモート元(作業PC)から実行(デバッグ)ができます。
注意点として手元でコンパイルしていないので、コードと実行モジュールが一致していない警告が出ます。
これは無視するしかありません。
コンパイル作業も専用のバッチを書いておけば簡単に実行できます。
やりました、これでDelphiの開発をしながらC#の開発を2人で平行して行えます。
24時間戦う必要はなくなりました、 めでたしめでたし
私はもちろんリモート先(開発環境PC)で通常のDelphiの開発担当になりました。
なんたって使いやすいですし… という訳ではなく、Delphiの開発経験があったのとDelphiでの開発規模が多かったからです。
他にもこの仕事では色々工夫が必要でした。(また別に書くかも)
弊社ではこのようなことにならないよう営業さんが頑張っていますが、突発的に発生することもあるでしょう。
そんな時も力になれるメンバーがそろっています。
「過度な残業反対!」「相談しやすい環境」 貴方もトラストの仲間に加わりませんか?
▼この記事がいいね!と思ったらブックマークお願いします