Finding a reliable company for outsourced software development may seem like a challenging task. Search for the company capable of providing embedded software outsourcing services can be even more complicated. Still, after you have found the developers who match your evaluation criteria, 50% of overall success depends on you.
Level of the project management organization, testing process, knowledge transfer between your in-house staff and outsourced developers are some activities that will require your extensive engagement. In this article, we will explore how to evaluate developers and how to make collaboration with the embedded software development company work.
List of content
- Research methodology
- Experience evaluation
- Technical expertise requirements
- Project management approach
- In conclusion
HOW TO SEARCH FOR THE EMBEDDED SOFTWARE OUTSOURCING COMPANY
The first challenge you’re likely to meet in your search for embedded outsourcing companies is that major catalogs simply ignore this category. You can’t filter the embedded software outsourcing providers from the huge numbers of the development companies represented on Clutch, GoodFirms, etc. It would be much easier to find the outsourcing companies that focus on mobile app development or web application development just because they’re listed under those categories. As a result, when you need to find solely the portfolios/ profiles/ references of embedded software outsourcing companies you have to compose the list manually.
This fact is kind of surprising because according to the Global Market Insights report, the size of this market was valued at 10.46 billion USD in 2015 and is expected to reach at over 7% CAGR from 2016 to 2023.
The growing adoption of electric vehicles will rise dramatically, especially in cargo-carrying after Tesla has announced the first electric-powered truck in 2017. Electric cars alongside hybrid electric vehicles will have a significant impact on the embedded software development market, over the next 5 years.
Wearable technologies are also showing very promising numbers across many industries like healthcare, security, safety, IoT, and fitness. The fast-growing demand for advanced embedded software is forecasted.
As you can see, the demand will grow and hardware companies are going to extend their development resources with the help of experienced embedded software development services as often as never before. In the last couple of years, everybody used to search for the providers on the B2B reviews and research platforms. However, those listings do not contain companies profiles that represent them solely as the embedded software outsourcing vendors. Moreover, they discourage the outsourcing companies to have such profiles, because they don’t match any of the categories. And this makes the research more complicated.
Information about the companies working on embedded software outsourcing can be taken from search engines, referrals, companies’ websites and unreliable information sources such as forums. All this data is unstructured and requires additional confirmation. We suggest you structure your knowledge about the developers in three key evaluation criteria:
- Previous experience
- Technical skills
- How they manage embedded software outsourcing projects
Let’s talk about them in more detail.
PREVIOUS EXPERIENCE IN EMBEDDED SOFTWARE DEVELOPMENT
As a rule, customers are searching for the external embedded software development services for two reasons: first, because of the inability to quickly ramp up their in-house development resources and second, because they need to get access to the technical capabilities beyond the expertise of the in-house staff. By selecting the embedded software outsourcing company with a rich portfolio you gain access to the experience in various products and industries that outsourcing service provider has accumulated during his work in the past. This considered being one of the main outsourcing advantages which also nicely works for embedded software projects as well.
We can take Existek as an example of a company that provides embedded software outsourcing in multiple domains. Our expertise includes SDK development, firmware development, technical support of third-party solutions and integration with such solutions. Experience in the development of embedded software projects for the IoT, wearables and industrial automation may also be considered as a nice recommendation.
Embedded outsourcing companies who gained knowledge in various industries and hardware will be able to fuel your product with innovations. For example, the outsourcing company that has previously successfully worked on the projects related to the wearables is likely to be very good in making any device more power-efficient. They know how to allocate the limited amount of energy by putting the hardware that is not in use in the sleep mode thus minimize the power consumption. This know-how can be a valuable addition for those, who development hardware that has to be very efficient in terms of power consumption, like the IoT devices. In-house developers or architects who worked all the time with the devices that have the unlimited and stable power source, like the smart home gadgets, simply wasn’t in the situations where they have to fight for every extra hour of working from the battery, so they’re likely to less advanced in saving power. Who knows, maybe lower power consumption will become the product’s competitive advantage and become the decision criteria for the buyers.
TECHNOLOGY EXPERTISE AND TECHNICAL SKILLS EVALUATION
Usually, when you start any offshore outsourcing project service provider gives the bunch of the resumes of the developers who are supposed to be allocated to the project. And these development initiatives are not exclusion. In this paragraph, we will try to give an exact definition of the embedded software developer and how to evaluate his expertise.
Embedded software engineers are a relatively rare breed these days. In retrospective, 20 years ago the guy who was working on the hardware prototyping was the same developer who writes low-level code for that hardware. The industry has shifted since then and large companies have allocated those responsibilities between different roles. However, the survey shows that this old tradition is slowly coming back. For comparison, 20% of embedded systems engineers worked with hardware and software at the same time in 2010 when in 2017 you can expect that nearly 30% of them are working with both. It would be nice if you could find at least one of those specialists on the list of CVs and hire him for your embedded software outsourcing project. He’d definitely be a good addition to the dedicated development team.
Obviously, the set of technical skills required from the developer will highly rely on the type of your project and its specifications. Further, we will try to picture the averaged portrait of the embedded software developer. First of all, he must be experienced in writing the code on C and C++. Second, he has to feel comfortable with Embedded Linux and the real-time operating systems (RTOS) which will allow him to work with the limited system resources and, for example, operate CPU usage in the most effective way. These are the essential skills that distinguish the professional developer.
In addition, when the engineers who are working with software exclusively have to know the programming languages, this developer has to have deep knowledge of the hardware and chips. New trendy processor technologies are as important to know as trendy languages. The processors are the key component and the embedded systems and software are built around them.
A qualified embedded software developer should be familiar with control systems, data structures, algorithms, and hardware design language.
When you or your in-house team will be conducting the interviews with the offshore developers pay attention to how effectively they can express their thoughts and ideas about the system design graphically. Any developer should be able to explain what’s on his mind using a block diagram, pictures or clouds or any tools that helping to describe the concepts. Especially, this is meaningful in distributed working environments where knowledge transfer between outsourced and in-house developers in both ways is a must.
MANAGEMENT OF THE EMBEDDED SOFTWARE OUTSOURCING PROJECT
Now let’s discuss this question using the real embedded software examples.
In 2012 Existek has developed software and hardware for the control module of the Carpenter Group water treatment system which later has been installed in many private households in California. The product was released to the market in a straight timeline and budget. Here’s a short description of the product functionality to give you an idea of the project complexity. Users are able to monitor and control water supply remotely via 3G/4G or GPRS on the user web portal. The system is completely automatic but if the needed user can see system status and remotely change settings or start/stop some procedures via the web-based control panel. The device construction also allows the user to tweak it manually if needed as it includes the control panel with screen and buttons.
As it has been said above, the Carpenter Group water treatment system project has been completed within the planned budget and time. To achieve that we focused on such aspects as:
Intensive knowledge transfer process
Software and hardware for the control module were developed and prototyped to control a much bigger system with various hardware and equipment manufactured by different vendors. This is a normal way the development process works thus it often requires specific skills and manufacturing domain knowledge. Engineers can’t develop the hardware and software for that module without being familiar with all the system components. Required skills cannot be gained by the developers without an extensive knowledge transfer process between the client (manufacturer) and contractor. We managed to set up knowledge transfer process by the direct communication between the customer’s in-house team and offshore developers, including engineering samples transfer and onsite work of the customer’s architects to make sure that our developers are trained to work with the equipment, understand the system design and the global goals of the project. Throwing the documentation over the wall is not working well enough in embedded outsourcing. This is, probably, the worst possible idea in the context of embedded software outsourcing development. Pay attention to how seriously the provider treats knowledge transfer in this kind of project.
Managing the project closely with smaller tasks
During the negotiations process, we suggested the Carpenter Group the management approach where all the development process is broken down into smaller tasks. The approach was accepted and together with extensive knowledge transfer, has brought us remarkable results. The main idea behind this approach is to divide the development process into smaller tasks with very clear objectives and comprehensively described requirements. These tasks typically lasted from five to seven business days. This enabled us to avoid many risks because problems in one task have helped us to see the global issues coming a mile away and prevent them from impacting the rest of the work.
Our project management secured the project from the budget and time overhead. As for the costs, the customer was able to avoid transaction costs overhead which can be relatively high in outsourcing in comparison to the in-house development (15 to 60 percent and 5 to 10 percent of contract value respectively). The project timeline was completed successfully because smaller tasks have mitigated many of the risks related to embedded outsourcing.
The last paragraph shows that the way how embedded software development company manages the project defines the success of the collaboration alongside with their previous experience and technological expertise. What are your evaluation criteria for choosing the vendor for embedded software projects? Leave your questions and comments below.