出張の後、通常業務に戻るのは容易ではありませんが、今週は特に大変でした。クライアントとの緊急を要する契約を抱えており、そのプロジェクトに関わる社員は全員100%以上で働いています。私は順調に仕事を進めていました。ただし、それはPCB設計ソフトウェアを開き、誰かが私のレイアウトに変更を加えていたのを見るまでのことでした。私のスマートフォークの4本の歯のうちの2本が削除されていたのです。重大な変更でした。最悪です。精神的ショックで頭の中が真っ白になったように感じました。
全ての人が持っているであろう心配の種 - 「死のブルースクリーン」
なぜデータが破壊されたのでしょうか。実は、私たちは締め切りに間に合うように非常に急いでおり、変更やバージョン管理などは行っていませんでした。代わりに、会社のファイル共有にファイルを保存していました。そのため、加えられた変更は私が持っていた作業中の設計のコピーを上書きしたのでした。「大丈夫。1週間前のバックアップを参照してオリジナルのバージョンを入手できる」と思ったのですが。そう、IT部門はそのプロジェクトの共有を知らされていなかったため、バックアップを作成していなかったのです。作業中の設計の記録はありません。こうなったら、手作業でデータを回復させる必要があります。元の設計を思い出せることを期待するしかありません。私は運命を呪いました。
自分の仕事をバックアップしていなかった私は間抜けでした。それは認めます。私の二の舞にならないように、自分の設計を頻繁にバックアップしてください。
それでは、プロジェクトに対する変更を管理する最善の方法は何でしょうか。確かに、自分の設計ファイルを時々手作業でコピーすることは可能です。プロジェクト共有全体の定期バックアップを作成するようにIT部門に依頼したり、無償のオンラインツールを使ってバックアップを自動化することもできます。多くの選択肢がありますが、残念ながらPCB設計者にとって満足のいくものはありません。
理想的な選択肢は、バージョン管理システムで設計を管理することです。その理由を以下に示します。
外部にデータをバックアップすることは重要です。しかし、クラウドというものは実在せず、他人のコンピューターに過ぎないことに留意する必要があります。
これまでにバージョンコントロールの世界を調べたことがあれば、Git、Subversion、Mercurialなど、多くのソリューションプロバイダーの選択肢があることをご存知のことでしょう。中には他に比べて評価が高いものもありますが、大抵は同じコア機能セットを備え、上記の利点を提供します。問題は、これらの多くが本来ソフトウェアの世界向けに設計されており、ハードウェア設計プログラムには適していないということです。
PCB設計では、ファイル間の変更を追跡してその差分を画像で表示できるシステムを持っていることが重要です。このサイトでは、PCBの設計変更を視覚的に追跡することの方が、コード行を比較することよりも優れていることを非常に明快に説明しています。問題は、この種のバージョン管理を使う場合、設計をPDFとしてエクスポートし、PDF Diffプログラムを使って全ての変更を追跡する必要があることです。つまり、メタデータ(材料の仕様、レイヤー仕様など)を失うかもしれないということです。確かに、ゼロから始めるよりはましかもしれません。しかし、このデータを再入力するのは時間の浪費です。さらに悪いことに、最初にその仕様を設定した人がいない場合、その人を見つけ出すのに余分な時間を費やさなければなりません。
ソフトウェアの世界では、「リポジトリ」(repo)のファイルを単純に追加または削除できます。一旦ファイルがrepoに追加されるとファイルに対する全ての変更はチェックインまたは「コミット」する必要があります。予想通り、これらのrepoは、元々ソフトウェア向けに作られているため、PCBまたはCADファイルの内容を管理するのには大抵それほど適していません。そうは言っても、世の中にはPCB設計のためにrepoを作成している人もいます。
私のように物事を簡単にしておきたい場合、最も単純かつ効率的な選択肢は、統合バージョンコントロールを備えたPCB設計ソフトウェアを選択することです。これにより、不向きなバージョンコントロールを使って下手な仕事をする時間を節約できます。Altium DesignerのようなPCBソフトウェアは、バージョンコントロールをソフトウェアに統合しているため、機械技術者にも十分使いやすくなっています。細かい設定なしに、Subversion、CVSに加えてMicrosoft社の標準SCCインターフェイスを備えたその他のシステムをサポートします。実際のところ、猫の手も借りたいぐらいなので、私はAltium Vaultを使い始めました。私の元の設計はとっくになくなってしまったかもしれませんが、少なくとも私のコンポーネントは最新です。
バージョンコントロールは、単独または複数のユーザーが設計変更の経過を追うのに役立ちます。
バージョンコントロールは保険のようなものです。それが必要になるまで、それが必要であることに気付かないものです。統合バージョンコントロールを備えたPCB設計ソフトウェアを使っていれば、今回のような状況にはならなかったはずです。これについては、もう済んだことだと諦めて、設計を再構築する必要があります。