Working on an Internet of Things (IoT) project for a Bluetooth smart gadget last year was tough because it differed from pure software development in several ways:
Initially, integration is difficult because the mechanical, firmware, mobile app, and design components are outsourced to many vendors with geographically dispersed teams and varying work cultures. When developers are so specialized in their domain that they work in silos rather than as a team to produce one item at a time, the entire scrum model is unlikely to work.
Second, hardware iterations are far longer than software iterations, making it difficult to respond to change. Unlike software, which can be readily modularised to separate components and implement functionality one by one, many chips and motherboards are interconnected. As a result, the method is more waterfall. You either get the prototype in its entirety or nothing at all; there is no middle ground for shipping the highest valuable product (MVP) to consumers to test. Hence, there is no user feedback input into the feature prioritization process. The longer you wait, the greater the chance you won’t have the confidence to provide the product to the end-users because you’re worried it’ll be flawed.
Third, when things don’t function, it’s nearly impossible to figure out what’s wrong, whether it’s a mechanical failure, a firmware glitch, or a problem with mobile app development. End-to-end testing is more difficult to achieve as the interface evolves. Testing without complete hardware automation and generating the expected signal to the software was similarly time-consuming. A preferable way is to set down all acceptance criteria, with each statement actionable and testable, and no partial acceptance, thus ensuring a strict definition of done.
Overall, effectively dealing with communication failure is a critical component of assuring the I.T. project’s success. When things aren’t going well, it’s normal for people to point fingers at one another, leading to defensiveness and damaging relationships between silos. Stop evaluating emotionally, judging, or disagreeing from your point of view to communicate effectively. Instead, attempt to listen and comprehend what is going on from the other person’s point of view.
Customers judged high performance based on the value they received. This method can cut down on wasted time and effort while encouraging more optimistic and problem-solving mindsets, improving performance. I’m hoping to see the final product released and the users’ positive and pleasant reactions.
Experience in software development, application architecture, and deploying cloud solutions for enterprise customers. Strong hands-on skills with a Master's degree in Computer Science and business acumen with a master of business administration (MBA) in Finance. Certified in Amazon Web Services (AWS), Google Cloud Platform (GCP), Microsoft Azure, Kubernetes (CKA, CKAD, CKS, KCNA) and Scrum (PSM, PSPO) with experience in building banking products from scratch.