If it's a new project, we will make sure you have the requirements and acceptance criteria in place and fill all gaps we find. Then determine our options in technologies and development approach.
If it is a modification of the existing system, we'll find out if all necessary knowledge is in place, and to what degree to invest effort into technical debt mitigation.
This all applies to any software (embedded and IoT, desktop, cloud, SaaS) with or without hardware integrations.