製品/市場に適合する複雑なハードウェアおよびソフトウェアエコシステムを構築することは困難な作業です。ほとんどのハードウェアのスタートアップは、お金がなくなったために最終的に失敗しますが、 報告する CB Insightsによると、根本的な最大の理由は、実際には自社製品の需要が不足していることです。これは、ハードウェアスタートアップにとって製品マネージャーの役割がいかに重要であるかを強調するだけです。彼らの主な目標は、成功する製品を提供するためにクライアントのニーズと問題点を把握することだからです。
私が最後に経営した会社は、駐車場業界向けのWeb、モバイル、組み込みソフトウェアアプリケーション、およびハードウェアデバイスのエコシステムを作成しました。ハードウェア製品戦略は私の日常業務の一部であり、さまざまなハードウェア製品開発ワークフローの実験につながりました。ハードウェア製品を10年間使用し、電子通信の理学士号を取得したにもかかわらず、私はまだ仕事で学ぶことがたくさんありました。以下のガイドは、組み込みソフトウェアスペースを備えたハードウェア内の製品管理を私よりも早く習得できることを願って作成しました。
SaaSとモバイルアプリは、 アジャイルフレームワーク 、組み込みソフトウェアおよびハードウェアデバイス開発の独自の条件により、アジャイル原則の適用がはるかに困難になっています。この最初のセクションでは、複雑さを生み出すハードウェア開発の特徴について説明します。それらのすべてが簡単な解決策を持っているわけではありませんが、次のセクションで説明する特定のハードウェア開発戦略を採用することによって困難を軽減する方法があります。
新しいハードウェア製品の作成は、既存の製品を繰り返すよりもはるかに困難です。それは、大学ではめったに教えられないプロトタイピングにおける多くの創造性と経験を含みます。一部の大学には、これらのスキルを開発するためのプロトタイピング設備や必要なツールすらありません。そのような経験は、R&Dセンターを持つ大規模なハードウェア企業でほぼ独占的に得られます。したがって、関連する専門知識を持つ地元の専門家を見つけることは非常に困難である可能性があり、その結果、多くのハードウェアスタートアップの創設者は、リモートで雇用することによって人材プールを拡大する必要があります。
ほとんどのバージョン管理システム(VCS)は、ソフトウェア開発の共同作業用に作成されたため、テキスト形式をサポートすることを目的としています。ハードウェア開発を伴うプロジェクトでは、代わりに、OrCADなどの特別なツールを使用して作成された設計ファイルに情報がラップされます。また、これらのツールの一部は、VCSで使用するように最適化されていないバイナリファイルのみをサポートしています。 CADLAB これは、ハードウェア互換のVCSを作成するための比較的新しい試みであり、近い将来、このようなツールがさらに増えることを願っています。
ハードウェア製造施設は、多くの場合、別の地域、国、または大陸にあります。ハードウェアの製造元と製造元の間の通信には特別な配慮が必要であり、製品を成功させるための鍵となります。コミュニケーションを成功させるには、製品の品質を保証し、動的な製品市場の検証段階での変化に対応できるようにするために、より戦略的なフレーミングが必要です。これを実現するには、ハードウェアの製造元は、製造元に送信される多くの詳細な仕様を作成する必要があります。コラボレーションフレームワークは、情報の迅速な配信と仕様のライフサイクルの管理を保証する必要があります。これは、仕様がすぐに古くなる可能性があるためです。
ソフトウェアスタートアップで人気のあるオペレーティングモデルは、初期段階で速度のために品質を犠牲にします。 Facebookでさえ、かなり長い間、「速く動き、物事を壊す」というマントラを支持していました。もう1つのよく知られたアプローチは、「あなたがそれを作るまで、それを偽造する」ことです。これは、安価なインフラストラクチャコストと、開発者がコードの更新を毎日展開できるようにする合理化されたプログラミングフレームワークにより、ソフトウェアのスタートアップで機能します。
この開発へのアプローチはハードウェアの分野に徐々に浸透してきましたが、ハードウェアの変更を加えて展開するのがはるかに難しいため、この分野では不幸な傾向です。開発コストは、高速で頻繁なリリースによって得られる価値を相殺するため、実際には、設計段階にさらに投資して健全なハードウェアアーキテクチャを作成する方がはるかに望ましい戦略です。
多くのスタートアップは、立ち上げが成功するという考えにとらわれています ハードウェアクラウドファンディング キャンペーンは市場検証に相当します。クラウドファンディングは、特に物理的なオブジェクトに関連する所有権の無意識の欲求のために、ハードウェアコンポーネントを含む製品で最も成功する傾向があります。ただし、クラウドファンディングは、製品を大規模に検証することを目的としたものではなく、初期段階の製品開発に資金を提供する民主的な方法を目的としています。残念なことに、クラウドファンディングキャンペーンに成功した多くの企業は、市場を大規模に検証しなかったため、生産を拡大することが困難またはほぼ不可能であることに気づきました。
すべてのハードウェア製品を販売するには、何らかの認証が必要です。これは、ハードウェア製品を市場に投入する非常に初期の段階で最も見過ごされているステップの1つです。認証の制約は、開発に適用される製品計画とフレームワークにどのように影響しますか?プロジェクトのマイルストーンとして認証やその他の承認を得てプロジェクトの初期段階を計画し、その後、条件付きでキックオフ段階に戻ることは珍しくありません。代わりに、製品マネージャーは、より滝のようなアプローチで、規制、依存関係、および製品計画の戦略的意思決定ゲートウェイを注意深く分析できます。
組み込みソフトウェア分野のハードウェアに存在するいくつかの課題について説明したので、次に、ハードウェア開発に固有の問題を相殺するために、開発プロセスをより合理化および予測可能にする方法を見ていきましょう。
経験豊富な製品マネージャーは、新しい技術開発によって生み出された市場機会を活用しようとする組み込みソフトウェアを使用してハードウェア製品を構築する背後にある課題を認識しています。彼らは、計画段階から製品の成功の可能性を損なうことなく、市場投入までの時間を短縮することのバランスをとることを学びます。ほとんどの場合、これは ウォータースクラムフォール アプローチ。
製品構想フェーズでは、製品の原則、目標、および高レベルの機能を可能な限り詳細に拡張します。優れた製品マネージャーは、ビジョン、ミッション、機会評価、ハードウェア製品の目標、機能など、このフェーズの成果物の改善により多くの時間を費やしています。これは製品の北極星であり、あらゆる種類のハードウェアプロトタイプの作業を開始する前に十分に明確にする必要があるため、ウォーターフォールアプローチをお勧めします。
ハードウェア製品の要件と機能仕様を十分に文書化すること、およびハードウェア製品を駆動する組み込みソフトウェアの優れた技術アーキテクチャを用意することが重要です。要件と仕様の変更は罰せられるべきであり、チーム全体によって承認された後は奨励されません。
組み込みソフトウェアを開発するときは、標準のスクラム手法を使用できます。事前定義されたハードウェアアーキテクチャを使用するためにソフトウェアの実装を調整および改良する方が、その逆よりも時間と費用の面で安価です。
最終的な統合テストとユーザー受け入れテストは、ウォーターフォール条件で実行する必要があります。この段階で、開発フェーズが完了し、新しい機能と不足している機能が次の計画期間の追加作業要求としてログに記録されます。
組み込みソフトウェアを使用して複雑なハードウェア製品を構築すると、従来のソフトウェア開発手法がどのように適用されるかに影響します。パーソナルコンピュータ上で動作するソフトウェアを作成するために使用される多くのシステムは、リソース不足とはるかに長い開発ライフサイクルに関する制約があるため、組み込みソフトウェアの開発には適していません。
ブラジルの学者や専門家のグループが、潜在的な解決策を提供しました。 組み込み制御システムのためのプラットフォームベースのソフトウェア設計方法論:アジャイルツールキット 。この方法論には、 アジャイル 組み込みソフトウェア開発の原則。以下は方法論の簡単な要約ですが、ハードウェア製品マネージャーは以下を読むことを強くお勧めします。 完全な説明 彼らの実践にそれを適用する前に。
この方法論に関係する役割は次のとおりです。
この方法論は、組み込みソフトウェアの開発を3つのプロセスグループに分割します。
初期段階のハードウェア開発プログラムを構築することで、企業は迅速なピボットまたはプランBを提供できるようになりました。ビジネスの観点からは、財務マージンが減少する可能性がありますが、最終的には、絶えず変化する市場に対処するために必要な俊敏性を提供します。競争によってリリースされた製品と進歩する技術的能力に関する条件。
ある会社が、組み込みソフトウェアを備えたハードウェア製品のクラウドファンディングキャンペーンを成功させたとします。彼らは、大手の確立された会社が同様のことを発表するまで、製品の最初のバッチに向けてうまく機能します。汎用性と市場投入までの時間は最も重要であり、この状況に対する実用的で機敏な対応により、製品が成功する可能性が高まります。ハードウェア開発のプログラムを実施することにより、同社は競合他社への対応として、製品のより豊富なバージョンを迅速に適応させ、スポットライトを当てることができます。
テストはハードウェア製品管理の重要なコンポーネントです。 アジャイルソフトウェアテスト 、ほとんどのハードウェアバグは、製品の新しいバッチを作成することによってのみ修正できます。サムスンギャラクシーノート7デバイス 火がつく これは、ハードウェアテストがすべての製品マネージャーにとって最優先事項である理由の良い例です。
機能テスト 組み込みソフトウェア製品を備えたハードウェアの技術的検証の主要な目標です。これらの手順の複雑さは、エラーがシステムの任意の部分から発生する可能性が高いという事実に起因します。
衝突検出c ++
ユニットテスト シミュレートされたハードウェアには完全に制御可能であるという利点があるため、通常、各スプリントの後にシミュレートされた環境で発生します。テストスクリプトは自動化でき、実行を監視し、クラッシュしたように見えるテストを強制終了して結果を生成できません。
統合テスト オンラインおよびオフラインの操作と、実際の操作条件へのハードウェア製品の提出を考慮に入れる必要があります。たとえば、企業が野外活動中にヘッドマウント脳モニタリングシステムを開発する場合、テスト条件はこれらの特殊性を考慮する必要があります。
システムテスト システム全体のエラーやバグをテストする必要があります。このテストは、システム全体のハードウェアコンポーネントとソフトウェアコンポーネント(以前にユニットテストと統合テストが行われたもの)をインターフェイスしてから、全体としてテストすることによって実行されます。このテストは、ユーザーが予想するシナリオ、潜在的な例外、およびエッジケースの状態についてソフトウェアがチェックされるブラックボックステスト方法の下にリストされています。テストの言及可能な特別なカテゴリ:
製品価値 組み込みソフトウェアを備えたハードウェア製品の場合、通常、ウォータースクラムフォール方法論の製品受け入れステップの後に検証されます。組み込みソフトウェアエコシステムを備えたハードウェアは、検証と受け入れのためにソフトウェアよりもハードウェアを優先する必要があります。前に述べたように、ハードウェアの変更は実行がより困難で費用がかかります。プロダクトマネージャーは、ハードウェアを変更できないという制約を考慮し、ソフトウェア開発分野での追加の反復を優先することで、受け入れの問題を解決したり、価値を調整したりするために必要な革新的なソリューションを考案するのが一般的です。
優れたプロダクトマネージャーは、ハードウェアのニーズを予測し、適切な包含機能に優先順位を付けて、ビジネスモデルが健全で、受け入れがしっかりしており、ユーザーが製品を楽しんで使用できるように、製品に対する洞察力と優れたビジョンを持っています。組み込みソフトウェアを考えると、ハードウェアの「装飾」は、ハードウェア開発プロセス、認証手順、製造上の課題、および市場での受け入れによって推進されるルールと制約に従う必要があるため、驚くべきことではありません。
アジャイルはソフトウェア開発の世界を席巻し、ハードウェア分野に忍び寄り始めました。ただし、組み込みソフトウェア開発を備えたハードウェア製品の条件には、さまざまな課題が伴います。
これらの課題により、ソフトウェア会社と同じようにアジャイル原則を適用することが難しくなります。
これらの課題に対処するために、管理された敏捷性アプローチがウォータースクラムフォールの形で必要です。組み込みソフトウェアの開発は、標準のスクラム手順に従って作成されますが、構想、仕様の作成、テストなどの他のステップは、ウォーターフォールのセットアップで実装されます。これにより、ハードウェア企業は、上記のさまざまな制約を考慮しなければならない機能的な製品管理アプローチを維持しながら、アジャイルが提供する見返りを享受できます。この管理された敏捷性アプローチは、急速に変化する市場の状況と絶え間ない技術的改善の文脈で成功する方法を提供します。
アジャイルハードウェア開発には、ウォータースクラムフォールアプローチが推奨されます。組み込みソフトウェアの開発は、標準のスクラム手順に従って作成されますが、構想、仕様の作成、テストなどの他のステップは、ウォーターフォールのセットアップで実装されます。
ハードウェア開発エンジニアは、回路基板、プロセッサ、メモリデバイスなどのハードウェアコンポーネントを実際に作成してテストする責任があります。
ソフトウェアエンジニアリングとハードウェアエンジニアリングの主な違いは、物理的な要素です。ソフトウェアエンジニアはコンピューター上のコードのみを操作しますが、ハードウェアエンジニアはプロセッサ、回路基板、メモリデバイスなどの物理製品を操作します。
組み込みシステムは、ハードウェア製品内で実行されるソフトウェアコンポーネントです。それらは、その特定のハードウェアでのみ実行するように適合されているため、組み込みと呼ばれます。