組み込みソフトウェア開発を備えたアジャイルハードウェア

公開: 2022-03-11

製品/市場の適合性を見つける複雑なハードウェアおよびソフトウェアエコシステムを構築することは困難な作業です。 CB Insightsのレポートによると、ほとんどのハードウェアスタートアップは資金が不足しているために最終的に失敗しますが、最大の根本的な理由は実際には製品に対する需要の欠如です。 これは、ハードウェアスタートアップにとって製品マネージャーの役​​割がいかに重要であるかを強調するだけです。彼らの主な目標は、成功する製品を提供するためにクライアントのニーズと問題点を把握することだからです。

私が最後に経営した会社は、駐車場業界向けのWeb、モバイル、組み込みソフトウェアアプリケーション、およびハードウェアデバイスのエコシステムを作成しました。 ハードウェア製品戦略は私の日常業務の一部であり、さまざまなハードウェア製品開発ワークフローの実験につながりました。 ハードウェア製品を10年間使用し、電子通信の理学士号を取得したにもかかわらず、私はまだ仕事で学ぶことがたくさんありました。 以下のガイドは、ソフトウェアスペースが組み込まれたハードウェア内の製品管理を私よりも早く習得できることを願って作成しました。

ハードウェア製品管理の課題

SaaSとモバイルアプリはアジャイルフレームワークを使用して簡単に開発できますが、組み込みソフトウェアとハ​​ードウェアデバイスの開発における独自の条件により、アジャイルの原則を適用することははるかに困難です。 この最初のセクションでは、複雑さを生み出すハードウェア開発の特徴について説明します。 それらのすべてが簡単な解決策を持っているわけではありませんが、次のセクションで説明する特定のハードウェア開発戦略を採用することによって困難を軽減する方法があります。

専門の技術的才能を地元で見つけるのは難しい

新しいハードウェア製品を作成することは、既存の製品を繰り返すよりもはるかに困難です。 それは、大学ではめったに教えられないプロトタイピングにおける多くの創造性と経験を含みます。 一部の大学には、これらのスキルを開発するためのプロトタイピング設備や必要なツールさえありません。そのような経験は、R&Dセンターを持つ大規模なハードウェア企業でほぼ独占的に得られます。 したがって、関連する専門知識を持つ地元の専門家を見つけることは非常に困難である可能性があり、その結果、多くのハードウェアスタートアップの創設者は、リモートで雇用することによって人材プールを拡大する必要があります。

バージョン管理システムはハードウェア設計に適合していません

ほとんどのバージョン管理システム(VCS)は、ソフトウェア開発の共同作業用に作成されたため、テキスト形式をサポートすることを目的としています。 ハードウェア開発を伴うプロジェクトでは、代わりに、OrCADなどの特別なツールを使用して作成された設計ファイルに情報がラップされます。 また、これらのツールの中には、VCSで使用するように最適化されていないバイナリファイルのみをサポートするものもあります。 CADLABは、ハードウェア互換のVCSを作成するための比較的新しい試みであり、近い将来、このようなツールがさらに増えることを願っています。

ハードウェア生産施設が非局在化

ハードウェア製造施設は、多くの場合、別の地域、国、または大陸にあります。 ハードウェアの生産者と製造者の間のコミュニケーションには特別な配慮が必要であり、製品を成功させるための鍵となります。 コミュニケーションを成功させるには、製品の品質を保証し、動的な製品市場の検証段階での変化に対応できるようにするために、より戦略的なフレーミングが必要です。 これを実現するには、ハードウェアの生産者は、製造業者に送信される多くの詳細な仕様を作成する必要があります。 コラボレーションフレームワークは、情報の迅速な配信と仕様のライフサイクルの管理を保証する必要があります。これは、仕様がすぐに古くなる可能性があるためです。

ハードウェアの変更は柔軟性が低い

ソフトウェアスタートアップで人気のあるオペレーティングモデルは、初期段階で速度のために品質を犠牲にします。 Facebookでさえ、かなり長い間、「速く動き、物事を壊す」というマントラを支持していました。 もう1つのよく知られたアプローチは、「あなたがそれを作るまで、それを偽造する」ことです。 これは、安価なインフラストラクチャコストと、開発者がコードの更新を毎日展開できる合理化されたプログラミングフレームワークにより、ソフトウェアのスタートアップで機能します。

この開発へのアプローチはハードウェアの分野に徐々に浸透してきましたが、ハードウェアの変更を加えて展開するのがはるかに難しいため、この分野では不幸な傾向です。 開発コストは、高速で頻繁なリリースによって得られる価値を相殺するため、実際には、健全なハードウェアアーキテクチャを作成するために、設計段階により多くの投資を行う方がはるかに望ましい戦略です。

クラウドファンディングの落とし穴

多くの新興企業は、ハードウェアクラウドファンディングキャンペーンを成功させることは市場の検証と同等であるという考えにとらわれています。 クラウドファンディングは、特に物理的なオブジェクトに関連する所有権に対する私たちの無意識の欲求のために、ハードウェアコンポーネントを含む製品で最も成功する傾向があります。 ただし、クラウドファンディングは、製品を大規模に検証することを目的としたものではなく、初期段階の製品開発に資金を提供する民主的な方法を目的としています。 残念なことに、クラウドファンディングキャンペーンに成功した多くの企業は、市場を大規模に検証しなかったため、生産を拡大することが困難またはほぼ不可能であることに気づきました。

認証、規制、および承認

すべてのハードウェア製品を販売するには、何らかの認証が必要です。 これは、ハードウェア製品を市場に投入する非常に初期の段階で最も見過ごされているステップの1つです。 認証の制約は、開発に適用される製品計画とフレームワークにどのように影響しますか? プロジェクトのマイルストーンとして認証やその他の承認を得てプロジェクトの初期段階を計画し、その後、条件付きでキックオフ段階に戻ることは珍しくありません。 代わりに、製品マネージャーは、よりウォーターフォールのようなアプローチで、規制、依存関係、および製品計画の戦略的意思決定ゲートウェイを注意深く分析できます。

ハードウェア製品管理の機会

組み込みソフトウェア分野のハードウェアに存在するいくつかの課題をカバーしたので、ハードウェア開発の固有の困難を相殺するために、開発プロセスをより合理化および予測可能にする方法を見てみましょう。

アジャイルをハードウェア開発に組み込む

経験豊富な製品マネージャーは、新しい技術開発によって生み出された市場機会を活用しようとする組み込みソフトウェアを使用してハードウェア製品を構築することの背後にある課題を認識しています。 彼らは、計画段階から製品の成功の可能性を損なうことなく、市場投入までの時間を短縮することのバランスをとることを学びます。 ほとんどの場合、これはウォータースクラムフォールアプローチを介して形成されます。

ハードウェア製品開発のためのウォータースクラムフォール
ハードウェア製品開発のためのウォータースクラムフォール

製品構想フェーズでは、製品の原則、目標、および高レベルの機能を可能な限り詳細に拡張します。 優れた製品マネージャーは、ビジョン、ミッション、機会評価、ハードウェア製品の目標、機能など、このフェーズの成果物を改善するためにより多くの時間を費やします。 これは製品の北極星であり、あらゆる種類のハードウェアプロトタイプの作業を開始する前に十分に明確にする必要があるため、ウォーターフォールアプローチをお勧めします。

ハードウェア製品の要件と機能仕様、およびハードウェア製品を駆動する組み込みソフトウェアの優れた技術アーキテクチャを十分に文書化することが重要です。 要件と仕様の変更は罰せられるべきであり、チーム全体によって承認された後は奨励されません。

組み込みソフトウェアを開発する場合は、標準のスクラム手法を使用できます。 事前定義されたハードウェアアーキテクチャを使用するためにソフトウェアの実装を調整および改良する方が、その逆よりも時間と費用の面で安価です。

最終的な統合テストとユーザー受け入れテストは、ウォーターフォール条件で実行する必要があります。 この段階で、開発フェーズは完了し、新しい機能と不足している機能は、次の計画期間の追加の作業要求としてログに記録されます。

アジャイルを組み込みソフトウェア開発に組み込む

組み込みソフトウェアを使用して複雑なハードウェア製品を構築すると、従来のソフトウェア開発手法の適用方法に影響を与えます。 パーソナルコンピュータ上で動作するソフトウェアを作成するために使用される多くのシステムは、リソース不足とはるかに長い開発ライフサイクルに関する制約があるため、組み込みソフトウェアの開発には適していません。

ブラジルの学者や専門家のグループが、潜在的なソリューションを提供しました。組み込み制御システムのプラットフォームベースのソフトウェア設計方法論:アジャイルツールキット。 この方法論は、アジャイルの原則を組み込みソフトウェア開発に組み込んでいます。 以下は方法論の簡単な要約ですが、ハードウェア製品の管理者は、実際に適用する前に完全な説明を読むことを強くお勧めします。

この方法論に関係する役割は次のとおりです。

  • プラットフォームの所有者–品質、計画、およびコストの目標を定義する責任があります
  • 製品リーダー–製品の実装、統合、およびテストを担当します
  • 機能リーダー–サブシステムプロジェクトの管理と機能成果物の進捗状況の追跡を担当します
  • 開発チーム–製品開発に取り組んでいます

この方法論は、組み込みソフトウェアの開発を3つのプロセスグループに分割します。

プラットフォームベースのソフトウェア設計方法論プロセスグループ
プラットフォームベースのソフトウェア設計方法論プロセスグループ

  1. システムプラットフォームプロセスグループ。 システムは、プラットフォームライブラリからアーキテクチャおよびAPIプラットフォームの一部となるシステムコンポーネントを選択し、問題のアプリケーションの制約を満たすようにそれらをカスタマイズします。 カスタマイズプロセスは、プラットフォームに統合されたデザイナー構成可能なプロセッサーとランタイム再構成可能なロジックをプログラミングすることにより、反復サイクルで実行されます。
  2. 製品開発プロセスグループ。 製品を構成する機能は、プラットフォームのハードウェア要素またはソフトウェア要素のいずれかに分割されます。 この方法論は、アプリケーションのコンポーネントのエネルギー消費、実行時間、およびメモリサイズを考慮に入れるためのパーティショニングアルゴリズムを提供します。
  3. 製品管理プロセスグループは、製品の範囲、時間、品質、およびコストのパラメーターを監視および制御します。 提案されたアプローチは、主にスクラムアジャイルメソッドによって促進されたプラクティスとアジャイルパターンで構成されています。

ハードウェア開発プログラムを作成する

初期段階のハードウェア開発プログラムを構築することで、企業は迅速なピボットまたは計画Bを提供できるようになりました。ビジネスの観点からは、財務マージンが減少する可能性がありますが、最終的には、絶えず変化する市場に対処するために必要な俊敏性を提供します。競争によってリリースされた製品と進歩する技術的能力の観点からの条件。

ある会社が、組み込みソフトウェアを備えたハードウェア製品のクラウドファンディングキャンペーンを成功させたとします。 彼らは、大手の確立された会社が同様のことを発表するまで、製品の最初のバッチに向けてうまく機能します。 汎用性と市場投入までの時間は最も重要であり、この状況に対する実用的で機敏な対応により、製品が成功する可能性が高まります。 ハードウェア開発のプログラムを実施することにより、同社は競合他社への対応として、製品のより豊富なバージョンを迅速に適応させ、スポットライトを当てることができます。

ハードウェア開発プログラム
ハードウェア開発プログラム

組み込みソフトウェアを使用したハードウェアのテストの成功

アジャイルソフトウェアテストとは異なり、ほとんどのハードウェアバグは、製品の新しいバッチを作成することによってのみ修正できるため、テストはハードウェア製品管理の重要なコンポーネントです。 火がついたSamsungGalaxyNote 7デバイスは、ハードウェアテストがすべての製品マネージャーにとって最優先事項である理由の良い例です。

機能テストは、組み込みソフトウェア製品を備えたハードウェアの技術的検証の主要な目標です。 これらの手順の複雑さは、エラーがシステムの任意の部分から発生する可能性が高いという事実に起因します。

ユニットテストは通常​​、各スプリントの後にシミュレートされた環境で行われます。シミュレートされたハードウェアには、完全に制御できるという利点があります。 テストスクリプトは自動化でき、実行を監視し、クラッシュしたと思われるテストを強制終了して結果を生成できません。

統合テストでは、オンラインとオフラインの操作、および実際の操作条件へのハードウェア製品の提出を考慮に入れる必要があります。 たとえば、企業が野外活動中に頭に取り付けられた脳モニタリングシステムを開発する場合、テスト条件はこれらの特殊性を考慮する必要があります。

システムテストには、システム全体のエラーやバグのテストが含まれます。 このテストは、システム全体のハードウェアコンポーネントとソフトウェアコンポーネント(以前にユニットおよび統合テストが行​​われたもの)をインターフェースして、全体としてテストすることによって実行されます。 このテストはブラックボックステスト方法の下にリストされており、ユーザーが予期するシナリオ、潜在的な例外、およびエッジケースの状態についてソフトウェアがチェックされます。 テストの言及可能な特別なカテゴリ:

  • イベントによってトリガーされるテスト:ハードウェア製品の寿命における特定のイベントまたは状態の変化(起動、リセット、シャットダウンなど)によって開始されます。 その目標は、永続的な障害を検出することです。
  • 時間トリガーテスト:システムの通常の動作で事前構成された時間に開始され、永続的な障害を検出するために定期的に実行されます。 これは、重大なテストトリガーイベントが発生しない、長期間実行されているシステムで役立ちます。 時間トリガーテストは、断続的な障害を検出する場合にも役立ちます。

組み込みソフトウェアを備えたハードウェアの製品受け入れ

組み込みソフトウェアを備えたハードウェア製品の製品価値は、通常、ウォータースクラムフォール手法の製品受け入れステップの後に検証されます。 ソフトウェアエコシステムが組み込まれたハードウェアは、検証と受け入れのためにソフトウェアよりもハードウェアを優先する必要があります。 前に述べたように、ハードウェアの変更は実行がより困難で費用がかかります。 プロダクトマネージャーは、ハードウェアを変更できないという制約を考慮し、ソフトウェア開発分野での追加の反復を優先することによって、受け入れの問題を解決したり、値を調整したりするために必要な革新的なソリューションを考案するのが一般的です。

優れた製品マネージャーは、ハードウェアのニーズを予測し、ビジネスモデルが健全で、受け入れがしっかりしていて、ユーザーが製品を楽しんで使用できるように、適切な組み込み機能に優先順位を付ける際に、製品に対する洞察力と優れたビジョンを持っています。 組み込みソフトウェアを考えると、ハードウェアの「装飾」は、ハードウェア開発プロセス、認証手順、製造上の課題、および市場での受け入れによって推進されるルールと制約に従う必要があるため、驚くべきことではありません。

ハードウェア開発には管理された敏捷性が必要

アジャイルはソフトウェア開発の世界を席巻し、ハードウェア分野に忍び寄り始めました。 ただし、組み込みソフトウェア開発を備えたハードウェア製品の条件には、さまざまな課題が伴います。

  • 専門的な才能の欠如
  • ハードウェアに適合していないバージョン管理システム
  • 非局在化した生産施設
  • ソフトウェアと比較して行うのが難しい変更
  • 計画のハードルを課す認証および規制要件

これらの課題により、ソフトウェア会社と同じようにアジャイル原則を適用することが難しくなります。

これらの課題に対処するには、ウォータースクラムフォールの形で管理された敏捷性アプローチが必要です。 組み込みソフトウェアの開発は、標準のスクラム手順に従って作成されますが、アイデア、仕様の作成、テストなどの他のステップは、ウォーターフォールのセットアップで実装されます。 これにより、ハードウェア企業は、上記のさまざまな制約を考慮しなければならない機能的な製品管理アプローチを維持しながら、アジャイルが提供するメリットを享受できます。 この管理された敏捷性アプローチは、急速に変化する市場の状況と絶え間ない技術的改善の文脈で成功する方法を提供します。