🏡
複数プロジェクトの並行開発の運用方法
異なる顧客の複数プロジェクトに並行して関与や参加しているために自分が採用している開発の運用方法について記載します。
前提の状態
- 複数のプロジェクト間には関連はまったくない。
- 場合によってはプロジェクト毎に顧客法人が異なる。
- 別プロジェクトに対するファイルの更新間違いやトラッカーの間違いは許されない。
- ファイルのアップロード誤りも厳禁。
- プロジェクト毎にトラッカーのURLや種類も異なる。
- リポジトリなども同様
基本方針
- 開発用のPCはWindows Professionalで用意し、案件毎に別のWindowsのユーザを作成する。
- プロジェクト毎に別のユーザを利用して、操作用のノートPCからリモートデスクトップでログインして開発を行う。
- 各プロジェクトのトラッカーなどのアクセスは必ず案件毎のユーザのリモートデスクトップから実施する。
- 顧客の先に更に上がいてそちらのページに直接アクセスする場合は、Chrome,Edge,FireFoxを使い分ける。
- デスクトップの色や背景は異なる設定にする。
理由
- ユーザ毎にDesktopもブラウザもCookieもVisual Studio Codeなども独立しているので、基本的には操作が混ざることはない。
- デスクトップやダウンロード、マイドキュメントにファイルを撒き散らしても混ざることはない。
- ブラウザのタブを間違えることもない。
- クリップボードが注意事項となる。センシティブな案件の場合はリモートデスクトップでそれも無効化する。
- Web会議で利用する画面共有も対象のリモートデスクトップのウィンドウのみを共有することで、情報の混線のリスクが軽減される。
ユーザ名とパスワードの記憶
リモートデスクトップクライアントは接続先毎に一種類しかユーザ名とパスワードを記録できない。
ただし、同一のIPの接続先でもC:\windows\system32\drivers\etcのhostsに別のホスト名で定義してやると同一のWindowsマシンに対するリモートデスクトップでも、別々のユーザ+パスワードを覚えさせておくことが可能になる。
実運用では、セキュリティ的にパスワードは記憶させてはいない。ユーザ名の保存にだけ使用している。
タスクマネージャを利用したユーザの切り替え方法
既にログインしているユーザに対しては、リモートデスクトップ接続した先のタスクマネージャのユーザのタブから右クリック「接続」でログインユーザの切り替えが可能
この場合元ユーザのデスクトップは維持される。
リモートワーク併用
リモートワークとも相性は良いと考えている。
これは、持ち運びするノートPCにはVPN設定とリモートデスクトップの接続設定のみを用意すればよく、機密情報は持ち歩くPC上には保存されない。
欠点
- マルチディスプレイの利用は困難
- ディスプレイを複数並べて広く使う人には向いていない。
その他A
- SkypeやZoom、Teams、Slackなどは操作用のノートパソコンに入れているのでこちらは混線の可能性があるので注意しているが、以下の手順でも分離は可能
- ノートPCでもユーザを複数運用する。
- メニューのログオフではなく、タスクマネージャの「詳細」の「ユーザ」タブから「切断」すると、元のユーザのログイン状態(起動しているアプリ等)は維持したまま別ユーザに切り替えられる。
- これは集中するために無線封鎖して行方をくらます場合にも利用する。(別ユーザのデスクトップでチャットツールは起動したまま維持される。)
- 実際の作業はリモートデスクトップ先なのでノートPC側のログインユーザは作業にあまり影響を与えない。
- メールは共通であるが、最近は開発業務はメールではなくトラッカーとチャットツールを使うことがほとんどなので、危険なケースは少ない。(契約関連はメールが多い)
その他B
クラウド上のサーバに対するSSHのポートフォワードの維持などでも使っている。
ポートフォワードするPuttyを起動するユーザを専用に作っておいて、そのユーザでPuttyを起動&接続を実施する。実際に操作するときは別のユーザを利用する。
※当然だが、既に開いているフォワード用ポートへの接続はユーザをまたいで可能
これにより間違ってウィンドウを閉じてしまうことはなくなるのと、多数のポートフォワード用のPuttyの窓を起動しても邪魔にならない。
月に一回はWindows Updateで再起動されるが、そのときだけログインして接続する。
Discussion