A Blog about the Internet of Things | Softeq

How to Avoid Multiple-Vendor Outsourcing Pitfalls (Based on Our Real-Life Story)

Written by Anna Hofer | Jul 8, 2021 1:59:23 PM

Multiple-vendor projects are not trivial to take from start to finish; they can easily get derailed or stuck. More communication between the teams can speed up the product release, but might also slow it down. In this article, we will tell you about a real-life project where we had to collaborate with another developer’s team to develop a parking assistance solution. In the end, we provide best practices on how to create a productive environment for multi-vendor collaboration.

Initial Situation

The hero of this story was a 360-degree camera parking assistance system. Its mission was to help car drivers avoid blind spots and to secure the parking process. To accomplish its mission, the system should have been able to produce high-quality spherical video and operate offline. Technically, it was a merging of four camera feeds in real time to create a seamless video.

The entire idea of this solution belonged to a startup that already had some experience with IoT projects and typically worked with a single vendor from Asia. But for this project, they invited Softeq to assist with firmware development, while the hardware and its architecture remained on the other vendor from Asia. By doing this, the startup wanted to get an international team with more manageable documentation. (When all the documentation is written with a logographic writing system, it's difficult to support the product internally and almost impossible to change the vendor.)

Only one in four IoT projects is completed successfully. Our business analysts will help you rule out potential technology roadblocks from the beginning and avoid scope creep.

The Start of the Project

The project kicked off with a common meeting among all the participants: the client, the hardware team (Asia), and the firmware team (Softeq). We agreed on and documented the basic set of features, as well as divided responsibilities for all project stages. The hardware team was responsible for the hardware architecture and component cost optimization. In tandem with them, the Softeq team was to develop the accompanying firmware.

We jointly decided to use the i.MX processor family as a basis for the solution. The hardware team was to choose the processor series that would underpin the product functionality. The development kit they provided was based on the i.MX 6 processor. After that, we began to develop the firmware using the chosen processor. 

The good thing about the i.MX processor family is that the manufacturer provides full documentation and usage examples. We can easily find the needed information, which speeds up the development process.

Softeq developers’ team lead

The First Challenge: Multiple Product Owners

As the project began, there were changes in the customer team, and the product owner left. The coordinator responsibilities, like creating the roadmap and controlling its implementation, were divided among several people. 

In such situations, chances are high that teams may distance themselves from the agreed product vision. But there was no time to wait, so we moved on.

Softeq project manager

Contradictory Approaches: Efficiency vs Costs

In the perfect world, when two vendors work remotely, they’re expected to work in sync and collaborate on all critical aspects of the future solution—and that means a lot of communication. Clear communication ensures there will be seamless integration of the various parts along with steady product development. In our situation, we had multiple product owners on the customer side and several vendors as well. This meant that we’d need even more communication than usual to be sure our priorities were correctly defined.

To get down to firmware development, we needed detailed information about camera interfaces, resolution, fps rate, video data storage before merging, etc. from the remote hardware team.

Our hands-on experience proved that developing firmware without understanding hardware may lead to inconsistencies between these two foundational parts, and the bring-up would fail.

Softeq development team lead

The hardware team in turn wanted to have firmware available so that they could start designing hardware, so they should start selecting minimum satisfying components and design the product hardware part. As a result, they would deliver their part with minimum expenses from their side.

Apparently, the teams had different understandings of what an efficient solution design process should look like. Depending on which deliverable would be produced first—firmware or hardware—the solution will be either efficient or low-budget. The client decided to take the efficiency path, so costs increased slightly. The hardware team provided us with all the necessary documentation, and we started developing firmware. 

Processor Reconsideration: Functionality vs Costs

In the process of firmware development, we figured out that merging four video streams required a more powerful processor than the one initially agreed on—the i.MX 6. The next-generation i.MX processor would have been a much better option, but it was twice as expensive as the previous one. Understandably, the client had some doubts and asked for possible alternatives.

Option 1: Alternative Product Concept

The Softeq team came up with an alternative implementation option that would not require replacing the processor with a more powerful one. This approach would require moving the video merging process to the cloud. In this case, the solution would only be able to operate online: The user, for example, might not be able to use the system somewhere in the forest. However, this would be a significant change in the original product concept, and the option was therefore rejected.

The only way out of the situation seemed to be to find a completely new processor, which would reduce the hardware cost.

Softeq project manager

Newsletter
 

Option 2: Powerful and Affordable Equivalent of the Expensive Processor

The hardware team managed to find a less expensive processor equivalent to the i.MX 8. This processor was developed and produced by a Chinese company and all documentation was available in Chinese only. So the client faced the situation they had wanted to avoid by hiring Softeq. Ultimately, however, when we tried porting the already-developed firmware part, it became clear that the new processor didn’t meet the necessary technical requirements.

A promised feature of the equivalent processor was the built-in stitching of multiple video streams requiring no additional programming. But it didn’t function correctly in our case, and we had to implement a custom stitching algorithm. From our experience, such algorithms are very power-intensive and require a graphics accelerator. The i.MX family processors feature a graphics accelerator, but their equivalent doesn’t. So this low-cost option didn’t work for us.

Softeq development team lead

Back to Origin—Expensive but Efficient Processor

In the end, we all agreed to continue development based on the more powerful i.MX 8 processor. In the end, the final hardware cost exceeded the target cost by at least 40%, and product release was delayed due to poorly coordinated communication between all stakeholders.

The good news was that the developed part of logic could be easily ported to the i.MX 8 processor.

Softeq project manager

Best Practices in Outsourcing Project Work: How to Grow a Multi-vendor Project?

Multiple-vendor collaboration isn’t an easy undertaking, but it is manageable. The following guidelines can help you keep your project on track:

  1. Assign a single product owner. If possible, try to avoid changing the product owner or dividing his or her responsibilities between several people. Otherwise, changes to the original product vision may occur. This could lead to contradictions between work already done and the new vision, which in turn cause confusion within the team and multiple delays.
  2. Create a well-planned roadmap with clear milestones and deadlines to set the direction. This will ensure that all teams involved understand and are working toward the strategic goal. 
  3. Set the right priorities: costs vs. functionality? Advanced features require a powerful processor. And the more powerful the processor, the more it costs. Before you start a project, ask yourself: Are you ready to invest more if your solution has to support advanced features? If not, what compromises would be acceptable to you in order to optimize the hardware costs?
  4. Make sure that the hardware and firmware teams are compatible. All stakeholders should be aware of the technical limitations and the compatibility of the firmware and hardware components. Otherwise, chances are high that teams will have to redesign the hardware and rewrite the firmware parts, which will unnecessarily extend the development process and waste your budget.
  5. Plan extra time and budget when using unknown components. If you plan to use components from a manufacturer neither you nor your vendors have worked with before, you may run into a problem. It may turn out that these components will not be compatible with the existing solution components. In this case, it would be better to allocate more time and budget to research the functionality, especially if there is no documentation in English.

If you’d like help with verifying costs from an external hardware manufacturing vendor or building a firmware and hardware solution from scratch, send us your request at ask@softeq.com.