Last year, I worked on an Internet of Things (IoT) project focused on a Bluetooth smart gadget. The experience differed significantly from pure software development in several ways:
Firstly, integration posed a challenge because the project's mechanical, firmware, mobile app, and design components were outsourced to multiple vendors. These vendors had geographically dispersed teams and varying work cultures. When developers are so specialized in their fields that they work in silos, the Scrum model is unlikely to function effectively.
Secondly, the duration of hardware iterations far exceeded that of software iterations, making it difficult to adapt to changes. Unlike software, which can be easily modularized, many hardware components like chips and motherboards are interconnected. This situation pushes the development process toward a more waterfall-like approach. You either receive the entire prototype or nothing at all; there's no middle ground for delivering a Minimum Viable Product (MVP) for consumer testing. The absence of early user feedback further hampers the feature prioritization process.
Thirdly, diagnosing issues becomes particularly challenging when things go wrong. It's difficult to determine whether the problem lies in the mechanical design, firmware, or mobile app development. Additionally, end-to-end testing becomes more complex as interfaces evolve. Conducting tests without comprehensive hardware automation was also time-consuming. To alleviate this, it's essential to have clearly defined and testable acceptance criteria, ensuring a strict definition of "done."
Effective communication is crucial for the success of any IT project, especially when various aspects aren't progressing as planned. Finger-pointing and defensiveness can severely damage interdepartmental relationships. Effective communication requires empathy; try to understand issues from the other person's perspective instead of reacting emotionally or judgmentally.
Customers assess performance based on the value they derive from a product. Adopting an empathetic and problem-solving mindset can reduce wasted time and effort, thereby improving overall performance. I look forward to the product's release and the positive reactions from its end-users.