Untitled Document

RSからの技術記事とお知らせ

RSのご利用は初め
てですか?

RSオンラインにご登録いただくとRSより最新の製品及び技術情報をお届けします。

ソーシャル化するハードウェア開発

Andrew Back氏、 SolderPad共同創設者

エンドツーエンドの設計と製造が1か所で行われることは、ますます少なくなってきました。 この「垂直的分業」 が、エレクトロニクス業界のバリューチェーンの再構築につながり、多くの先端企業同士のコラボレーションや、 国境を越えた協調のニーズを促しています。 専門性への強烈なプレッシャーがアウトソーシングへの傾斜を 推し進める結果となり、現在ではハードウェアの開発ニーズが、かつてないほどソーシャルな活動となってきました。

過去には、設計と製造が閉じた単一の組織内で行 われるのは一般的なことでした。 この状況は、「新 市場の出現・急成長」や「貿易障壁の減少」などと 相まって、技術の進歩と激化する競争に影響され て、時と共に変化してきました。 その結果、設計、 製造およびアセンブリの特定の分野に特化した 企業が増大することになり、供給と需要の配置が シフトしてきました。 このようなバリューチェーン に対する重大な変化が、組織の壁を越えたコラボ レーションという課題を企業にもたらしました。  同 一製品の設計・製造が、複数の 言語・ タイムゾーン・エンジニアリング設計ツール・ 使用するワークフローに跨り、プロジェクトチーム全 体を同じ場所に集めることや、共通のツールを強制 することは実用的でもなく、コスト面でも合理性があ りません。

今後有望なパターン


DesignSparkが支援するオープンソースハードウェアキャンプにおけるSolderPadワークショップ

オープンソースソフトウェアの開発は、分散型組織 のコラボレーションを最も具体的に参照できる強力 な例として見ることができます。 シンプルなツール や軽いプロセスの積み重ねをベースにした開発手法 は、高度な技術の生産を、低コストなやり取りで可能 にしました。 ごく小規模で単独のプロジェクトから、 信じられないほど複雑で数千のコントリビュータが 関与するものまでさまざまです。 オープンソースソフトウェアプロジェクトでは、使用 されるプログラミング言語・開発環境・ガバナンスフ レームワークが、1つだけということはなく、「技術 要件」「個人の嗜好」「特定のテクニカルコミュニテ ィの方針」 によってさまざまなものが使われます。 しかし、彼らは通常同じ基本的なワーキングプラクテ ィスを共有しています。 プロジェクトには、クオリティゲートとして機能し、どのコントリビューションを受 け入れるかを決定する小規模な「コミッター」が存在 しています。コミッターは、作業の委譲、全体的なア ーキテクチャなどの責任を引き受けたりする場合も あります。 オープンソースソフトウェア開発では、ソースコード は全員が入手することができます。また、開発者がソ ースコードを修正したり、バグフィックスを行ったり、 新機能を追加して拡張したりする場合もあります。 新しいファイルが作成された場合開発者はそれをコ ミッターに送り、既存のファイルが変更された場合 は、オリジナルのファイルと比較して差分だけを含む ファイルを提供する場合もあります。この「差分」ファ イルまたは「パッチ」ファイルもコミッターに送られま す。 パッチには変更内容だけが含まれるためサイズ がはるかに小さく、コミッターはそれをオリジナルフ ァイルのコピーに適用して、更新された新しいバー ジョンを作成することもできます。 バージョン管理シ ステム(VCS)はオープンソースソフトウェアプロジェ クトに集約されており、誰がファイルに変更を加えた かを追跡し、必要に応じて元に戻せるようになってい ます。また、すべてのファイルのリリースが、開発の 特定のポイント、たとえばバージョン番号などで「識 別」されています。 プロジェクトコミッターが書き込 みアクセスを行い、更新をコミットするのは、これら のVCSリポジトリです。 オープンソースソフトウェア プロジェクトの基本的な運営は、驚くほどシンプルで す。彼らの成功の秘訣は、彼らがコラボレーションツ ールやプラクティスを不必要に複雑にすることを避 けたからです。 代わりに、マルチコントリビュータ環 境で最小限の手間でジョブを完了できて、かつ議論 が最も少なくなるようなソリューションを選択して作 業を進めています。 このシンプルさによりもたらされる数多くのメリットには、複雑で高価な自己所有のコラボレー ションツールをオープンソースプロジェクトで使用されている 同様のツールに置き換えて歩み寄る企業が、現在では数多く あるということなどがあげられます。 同様の機動的なプロセ スを採用すると、主な相違点は、ソフトウェア開発が公的な場 ではなくプライベートな環境で行われるということに絞られて きます。 ソフトウェア開発のプラクティスと、エレクトロニクス などのハードウェアの開発で使用されるプラクティスの間に は明確な違いがありますが、 コラボレーションをサポートする驚くほど小規模なプロセス、 コラボレータ間のインターフェイスで使用される実用主義で 虚栄とは無縁のテクノロジなど、オープンソースソフトウェア プロジェクトの成功からは、貴重な教訓を数多く得ることがで きます。

新たな課題


SolderPadプロジェクトの詳細、パン / ズームインターフェイス


SolderPadプロジェクトの詳細、コミットログ

コラボレーションが仕様、資材表、HDL、およびソフトウェア のソースコードのようなテキストに集中してくると、コラボレー ションが意味をなすために必要となる最もシンプルなツール は、コメントと編集ファイルになります。 ただし、これはハード ウェアの設計ストーリーのごく一部を表すもので、多くの入出 力は図の形式で示され、それを 特定の自己所有ファイル形式で扱うには、特殊なツールを必 要とします。 それらには、たとえば機械製図、3D設計、回路 図、印刷された回路ボードレイアウトなどがあります。 必要となるツールは非常に高価で、あまりにも多くのファイル形式が 存在するため、特定のツールはせいぜいこれらのファイル形 式のサブセットを扱えるにすぎないという事実が、事態をさら に悪化させています。 電子データ交換フォーマット(EDIF)は、 ネットリストと回路図を保存するための 共通のベンダー中立的な形式での標準ベースの試みです。 しかしさまざまな理由により、これはごく限られた範囲でしか 機能していません。仕様が緩やかなため既存のツール間で 多くのEDI非互換の「タイプ」が存在し、市場では標準を評価 する妨げとなる傾向が生じています。 DesignSpark PCB [1]のような無料のツールには、チームがこれらをコストなし でインストールできるため、ごく限られた数のプロジェクトで 使用するだけのツールに経済的な投資をしなくても済むとい うメリットがあります。 オープンソーススタイルのコラボレー ションの課題には、設計ツールファイル形式の問題もありま す。これらのファイルは通常バイナリ形式で、差分のみを含む ファイルを生成して簡単に比較するということができません。 ファイルがテキストベースであっても、保存されるたびに全体 が書き換えられる傾向にあります。 マイナー 設計変更により、ファイルの内容が完全に再構成されるため、 以前のバージョンとの単純な比較で、実際には該当しない重 大な変更があったかのように見えてしまうことがあります。 オ ープンソースソフトウェアプロジェクトに見られる機敏性、効 率性、そしてスケーラビリティを実現するには、コラボレーテ ィブなハードウェア開発のサポートで使用される基本的なツ ールとプロセスが等しく実用的で軽いものであることが条件 となるようです。

共通点が存在する領域では、オープンソースソフトウェアプロジェクトで 使用されるツールやプロセスによっては再利用することができるものも ありますが、それには新しい技術やプロセスも必要になります。

SolderPad

SolderPad [2]は、オープンソースソフトウェア開発のメリットのいくつ かを電子工学の分野に持ち込むことを目指すオンラインサービスで、 電 子設計における共有、発見、そしてコラボレーションの場を提供します。 現在のリリースはパブリックホスティングをサポートしており、オープンソ ースハードウェアプロジェクトに正面から取り組んでいます。 Git VCS 技術がプラットフォームのコアとなっており、プロジェクトファイルとメタ データを共に管理するのに使用され、Web APIを経由したリポジトリコ ンテンツ管理のサポートも予定されています。 サイトの当初のリリースで は、シンプルな設計イメージのエクスポートとJSON形式による部品表 がサポートされており、さまざまなネイティブ設計ツールのファイル形式 の複雑な構造にまで立ち入る 必要性が回避されています。

設計は、以下の内容を含むデータシートとして提供されます。

  • ズームイン/ズームアウトでナビゲート可能なスケマティック回路図と PCBレイアウト
  • 検索と分析が可能な部品表
  • 明確なライセンスおよび著作権情報
  • 説明資料
  • タギング

Git分散型バージョン管理システム

Gitは、Linuxの開発をサポートし、同一のクリエータであ るLinus Torvaldsを共有するために使用されるバージ ョン管理システムです。 パフォーマンスと破損に対する 安全対策に重点を置いていますが、これは、Linuxカーネ ルが数千ファイルに及ぶ1,100万行を超えるコードで構 成されており、数千人のコントリビュータが更新を行なっ ているという事実を考えれば、不思議なことではありませ ん。 Git VCSは、本質的に分散型としての性格を持つ新 しいタイプで、最近広まりつつあるものの1つです。 すべ ての開発者がリポジトリと開発履歴全体のコピーを持ち、 ローカルコピーまたは「クローン」に対して開発者が変更 内容をコミットするとしたらどうでしょうか。 開発者が、あ る場所、すなわちプロジェクトコミッターでホストされて いるサーバにあるプロジェクトのマスタリポジトリに書き 込みアクセスを行い、開発者がローカルでコミットした変 更内容を定期的に「プッシュ」できるとしたらどうでしょう か。 開発者がこのレベルのアクセス権を持っていない場 合は、それができる他の誰かに変更内容を送信すること もできます。 Gitは、多くの強力な開発プラクティスの拡 張サポートを提供して、実地テストなどの非リニアな方法 で並行開発を安全に処理する「ブランチ」を作成する低コ ストの手段を実現します。 この後発のブランチを適宜開発 「トランク」に戻すか、単にそのブランチを削除すること で、一時に各ポイントに多くのブランチが存在し、その間 で切り替えが行われることは、ほとんど問題にならなくな ります。 その他目には見えなくても同じように重要性の高 い機能として、履歴の暗号による認証があります。これに より、古いリビジョンのファイルの変更が不可能になり、ア カウンタビリティが保証されます。 Gitの数少ないデメリ ットとして、システムに習熟していない開発者にとっては 学習曲線が多少急勾配であることです。 しかしこ のハードルを越えれば、大抵は生産性の向上という 大きな配当が得られ、その投資は十分に見合うもの となります。 Linuxカーネルの開発サポートのため のツールとして始まったものが、現在では大変ポピ ュラーなものとなり、2011年4月にはプロジェクト ホスティングプロバイダのGitHubが、単独で 1,000,000件のプロジェクトのホスティングを行 い、この数が毎日4,500件のペースで増え続けてい ると発表しています。 これには、独自にGitリポジトリ のホストを行なっているその他のサービスプロバイダ や個人、プロジェクト、企業は含まれていません。

Gitについて詳しくは、http://git-scm.com/ を参照してください。

まとめ

エレクトロニクス産業には、即応性や生産性を高め、そしてパートナー間 のインターフェイスでスレッドと実用的な技術を利用することで、コラボ レーションプロジェクトを拡大していくことができるという大きなチャンス が与えられています。 これを現実の中で実現させるための鍵となるもの は、オープンソースソフトウェアプロジェクトの運営の中から見出すこと ができます。最近では、オープンソースハードウェアの動きも生まれてい ます。 SolderPadは、そのような目標をサポートすることを目的として オープンソース技術を取り込んだサービスの例ですが、これはまだ長い 旅の始まりであり、今後の多方面での展開が期待されます。

[1] http://www.designspark.com/ja/pcb
[2] http://solderpad.com

その他の技術記事をご覧になるには www.designspark.com/jpn/ をご覧ください。 Designspark.com はRSが運営するエンジニアのためのコミュニティーサイトです。

ページの先頭へ