Software development

Collaboration that delivers

software optimised for hardware A platform for unleashing value Whole of life cycle support

Developing software that is optimised to work with electronic devices is a specialisation of Xentronics. We understand that software can be the key driver of value even for hardware centric products. We work hard to develop a close collaborative relationship with your in-house software team to deliver a seamless software development environment.

What is software development for electronic products?

Software development for electronic products involves the rigorous application of software engineering methods to ensure product reliability. Methods include traceability of requirements to features and functions, architectural and interface design, test planning and implementation at multiple system levels, rigorous code reviews and release management, configuration management (version control) and more. There are several types of software that may be developed to support an electronic product including:

Cloud infrastructure

  • Cloud infrastructure provides scalable services like compute power, storage, and databases essential for connected devices and the internet of things.
  • Developing virtual cloud servers offer significant benefits over in-house servers, including enhanced reliability and disaster recovery, cost efficiency through pay-as-you-go business models.
  • Uploading computationally intensive processes to the cloud helps extend device battery life and simplifies embedded software design.
  • Leveraging cloud services also enables remote management and aggregation of data from large numbers of devices across wide geographical areas.
  • Mobile applications serve as intuitive interfaces for controlling, commissioning, and remotely monitoring electronic devices.
  • In some cases, a mobile app can replace the need for a display on the product itself, leveraging all the convenience and rich features of a mobile device.
  • Apps can be developed that work for all the major platforms like Android and iOS, through cross-platform frameworks like React Native.
  • There are particular challenges in developing apps designed specifically for integrating with hardware including connection management, file management, and cybersecurity.
  • Web applications deliver data over the internet via a web browser. An electronic device can therefore be managed and monitored from anywhere with internet access.
  • Web interfaces are “responsive”, which means they adapt to different screen sizes, providing a consistent experience for all users.
  • Embedded web servers can generate web pages directly from your electronic device using Wi-Fi, greatly simplifying key process steps such as commissioning and data retrieval in remote locations without internet.
  • Web apps generally lack the rich features of Apps and direct access to your device’s hardware such as cameras and GPS. This can affect performance and limit functionality.
  • APIs provide structured methods for devices to communicate and exchange data securely across different elements of your system.
  • A common API approach is REST, leveraging standard HTTP requests to allow hardware to communicate with cloud or web applications. However, there are many approaches to share information, including the use of MQTT, BLE, USB, UART, SPI and I2C.
  • Designing APIs that work reliably involves careful consideration of authentication protocols, error handling, testing and validation processes, and cybersecurity. 

To learn more Contact Us

Success factors for software development

Software development is a mature discipline but there are still pitfalls that catch people out if they don’t apply a rigorous engineering process and some aspects that are rapidly growing in importance. Here are some key success factors we advocate at Xentronics:

  • Not every app developer can develop apps that reliably function with embedded systems. There are unique challenges requiring an intimate knowledge of how hardware functions.
  • Ensuring an assured and easy connection between the device and the cloud or mobile apps is a key requirement to avoid frustrations.
  • Latency challenges can lead to a poor user experience, as can bugs arising from changes to a mobile device’s operating system.
  • Other challenges include data synchronisation between the device and cloud; optimising power consumption when battery operated; implementing over the air firmware updates and more.
  • Allocate a balanced amount of time to testing, ideally aiming for a 50/50 split with code writing, rather than the usual 90/10 imbalance.
  • Employ a test-driven development (TDD) approach, where you write tests before developing the corresponding code, guiding your implementation.
  • Conduct various testing types, including unit testing before releasing individual components, regression testing to prevent introducing bugs to existing features, security testing and more.
  • Utilise hardware-in-the-loop (HIL) testing to simulate real-world conditions, thoroughly validating software interaction with physical devices.
  • Seek early user feedback on prototypes to identify usability issues and inform necessary software adjustments before widespread deployment.
  • IoT devices are a point of vulnerability in any system and it’s now essential to include cybersecurity considerations from the very initial stages of software design, not as an afterthought.
  • Address the main areas of cybersecurity, including cryptography, authentication, access controls, remote communication, access to sensitive or private data, secure data transfer protocols and human factors.
  • Comprehensive logging, audit trails, and backup should be standard, enabling rapid detection, investigation of security incidents and recovery.
  • Conduct security testing before release, including penetration testing and compliance with relevant standards.
  • Aim for over the air update capability to regularly apply security patches and updates to all software and firmware, as required.

To learn more Contact Us

Why product companies should care about Software engineering

As software increasingly underpins product value and commercial success, product managers should ensure their developers implement a rigorous engineering approach to software development in this vitally important aspect of their product. Key things to think about are:

  • A key value of hardware is that it creates a barrier to entry for competitors. However, software typically delivers the core value and innovation for users.
  • Software enables diverse revenue streams, allowing business models where hardware might be free in exchange for a recurring software subscription.
  • While hardware contributes to the user experience, software is typically the key driver of how customers experience a product, through the user interface and workflows.
  • Software can be updated remotely over time, allowing the release of new features to provide ongoing value or upgrades.
  • Software scalability means the system can handle increasing volumes of data, users, sessions, or connected devices without requiring fundamental architectural changes.
  • Ensure your backend systems can efficiently manage and process simultaneous connections from numerous devices in the field. Also pay attention to how large numbers of new devices are onboarded to your system.
  • Plan for communication and management of different data types, as multi-modal AI systems will increasingly use data fusion techniques to deliver value.
  • Utilise scalable cloud-based infrastructure solutions to support scalability.
  • Ensure your over-the-air (OTA) update mechanisms can reliably deploy new firmware to a large number of deployed devices.
  • Poor coding practices and insufficient documentation can significantly escalate future maintenance costs and even necessitate complete software rebuilds.
  • Invest in clean coding principles from the outset, ensuring code is readable, modular, and easy for subsequent developers to understand and modify.
  • Comprehensive and up-to-date documentation reduces the learning curve for new team members and streamlines troubleshooting for existing systems.
  • Insist on rigorous adherence to coding standards and documentation protocols to safeguard your product’s long-term maintainability.
  • Implement automated code analysis tools to enforce consistency and identify potential issues early, further reducing future technical debt.

To learn more Contact Us

How better collaboration delivers balanced & integrated software

At Xentronics, we are constantly seeking better ways to collaborate with all stakeholders in the software development process, including users, industrial designers, specialist software disciplines and of course our clients. Here are some key focus areas that underpin our collaboration practices:

  • Development of a user interface is the collective effort of industrial designers, software developers, hardware engineers, system architects, in collaboration with your product manager and user representatives.
  • The product manager and users ensure alignment with market needs, industrial designers provide expertise in usability and brand appeal; software developers focus on functionality and responsiveness; while hardware and system architects advise on technical limitations.
  • Achieving a great user experience, requires a commitment to collaboration that takes individual roles outside of their box.
  • Key collaboration practices include joint documentation and visibility of how user needs are being met, continuous iteration and feedback loops between all disciplines, and integrated project management.
  • When product developers handle some software in-house and outsource other functions, a shared understanding becomes paramount. Good collaboration involves aligning both in-house and outsourced development standards and policies,
  • Ensure explicit agreement on key integration points like communication protocols, API specifications, and data schemas for seamless data flow from devices.
  • It’s particularly important to ensure consistent documentation practices so that all parties understand the code, now and in the future.

To learn more Contact Us

Frequently Asked Questions

on electronics design for products

Is it best to outsource software development for electronic products or do it in-house?

  • Many companies develop software internally around areas of core competitive advantage, often a cloud-based algorithm or system. However, those skills are very different from those needed for software in physical devices and this is often outsourced.
  • Outsourcing can provide access to specialist skill sets that are challenging to find and retain in-house, offering flexibility and broader expertise.
  • External consultants also have pre-existing codebases and proven methodologies, which can accelerate development and reduce initial project costs.
  • Reusing code still incurs significant costs related to integration, testing, and debugging to ensure seamless functionality within a new product’s specific environment.
  • These adaptation expenses are typically factored into project estimations, covering the necessary efforts to make the existing code compatible and reliable for your unique application.
  • While hackathons can generate innovative ideas quickly, they rarely produce production-ready software due to the inherent need for reliability, thorough testing, and clean code.
  • Software engineering for electronic products requires detailed requirements definition, systems integration, extensive validation, and ongoing maintenance that extends far beyond a few days. 
  • AI tools are rapidly enhancing developer efficiency for specific coding tasks and automating repetitive processes in software development.
  • However, the overall software architecture, system integration, and strategic oversight still require human expertise to ensure reliability and scalability.
  • Software designed to interface directly with hardware necessitates hands-on human involvement to ensure precise functionality and proper interaction with physical components.
  • The Waterfall method offers a linear, sequential approach, suitable for projects with stable requirements and a clear, predictable scope.
  • Agile methodologies, such as Scrum or Kanban, provide iterative and flexible development cycles, ideal for projects with evolving requirements or rapid prototyping needs.
  • Many complex projects benefit from a hybrid approach, combining elements of both Agile for core development with Waterfall for specific phases like hardware integration or certification.
  • Common programming languages include C/C++ for embedded systems, Python for backend and data processing, and JavaScript for web applications and some device interfaces.
  • Development tools often involve Integrated Development Environments (IDEs) like VS Code or PlatformIO, alongside version control systems such as Git, tailored to the specific hardware platform.
  • Open-source software is widely used and highly beneficial for accelerating development, particularly in Proof of Concepts or for common functionalities, due to readily available code and community support.
  • However, open source software can come with licensing implications, long-term maintenance, and security vulnerabilities of open-source components. 
  • Many companies choose to develop their own custom software in order to build and protect what is a key source of competitive advantage, only using open-source where appropriate. 
  • Intellectual property (IP) typically relates to unique, custom-developed code specific to your product’s core functionality or algorithms.
  • Typically, any custom code is owned by the company paying for the development work and this should be clearly defined in the development contract.
  • Common software elements previously developed by your outsourcing partner, such as standard libraries, operating system components, or widely used communication protocols, are generally not considered IP owned by a single client.

To learn more Contact Us

Our Capabilities

Learn more about our other capabilities that support our product development services