How do you start developing a completely new product? If you are integrating IOT, Artificial Intelligence, Industry 4.0 trends or automation into your project, you will face recurrent issues when gathering specs in the design process. Since new tech product development can take between 2-5 years in average, design methodologies should be used as basis for determining the hard system requirements in terms of hardware to save resources and money.
If you read our previous blog on the difference between minimum and hard system requirements, you already know that the first historically dealt with legal coverage for software development companies to solve complaints when their software did not run properly in certain hardware platforms. In contrast, hard system requirements refer to the specs without which software will not run.
Furthermore, when a new product is being developed, you will face some recurrent issues during the design process which can be costly. If during the initial phases, before the prototyping, you do not accurately define the hard system requirements, you will end up expending a great deal of money on equipment for testing purposes. By leveraging a design methodology in any new development, you can avoid mistakes in this expensive part of the process. Let’s look at some details.
The First Step to Save Money
In any design methodology the first step to save money is precisely gather the specifications for the system. For embedded systems, for instance, you can work on defining the architecture. This is a methodology which allows an interdisciplinary team to work together to map relationships between hardware and software while taking care of end user needs using common language. You can read more in this post. The most important aspect of this first step is communication between the different parties (technical and non-technical) to make sure you capture the end results accurately from the software and hardware standpoint.
Defining Hard System Requirements
Once you gather initial requirements, you need to translate them into hard system requirements. Some categories you need to determine are technical architecture constraints, implicit hardware requirements, contextual hardware requirements, and minimum supported hardware requirements. You can read more about those requirements in this post.
How does this relate to minimum system requirements? If you are following a solid design methodology your minimum and hard requirements should be the same. In addition, you should define your target and desirable hardware platform, performance, and reliability.
By defining a scale between your hard and desirable parameters, you can create a cost-effective repeatable testing environment of different hardware platforms. Only then, you will be able to tell what systems work best with your software. Consequently, your minimum system requirements will be based on true performance data.
Is the Industry Ready?
Nevertheless, the industry does not have yet a standard procedure or methodology to test systems to determine minimum system requirements. In most cases, companies develop their own and use it privately or, in the worst cases, they just guess what those minimum requirements can be. Unfortunately, some companies just use the hardware platform for developing software as the guideline to set up minimum system requirements. The problem is that the platform typically used for development has oversized components which increases the cost of the final system.
As a result, you will be fighting an uphill battle against increasing costs through the whole life cycle of the product, especially with the current market conditions and supply chain issues. Oversizing components and sticking to a single set of specs with one option for each component is simple a luxury you cannot afford any longer.
It is true that a design methodology and defining hard system requirements will take more time that you are probably used to at the beginning of the process, but it will reduce the time to market of your product, will save you a lot of money during the prototyping phases and will give you flexibility during the mass production stage. Finally, a design methodology will prolong the life cycle of the product and will give you the option to phase out your product on your terms.
How Can I Develop my Own Testing Environment?
Based on the hard requirements, you should choose several hardware platforms, besides the system used for software developing, and run the solution in several different scenarios and users. Make sure to include the same tasks in all systems and run the software both as the first time and as a user that intensively takes advantage of it. Make sure that you can perform all tasks your end users will leverage with your equipment. Finally, systemically save the data to analyze it and make decisions. Since there is no current industry standard, partner with a hardware manufacturer that can guide you through this process and who can be a truly business partner while developing a reliable and repeatable methodology to gather minimum and hard system requirements.
If you want to continue reading about Embedded Systems, you can review this page.