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 embedded software developers who match your evaluation criteria, the 50% of overall success depends on you. Level of the project management organization, testing process, knowledge transfer between your in-house staff and outsourced embedded software developers are some activities that will require your extensive engagement.
In this article, we will explore how to evaluate embedded software outsourcing developers and how to make the collaboration with embedded software outsourcing provider work.
List of content
- Research methodology
- Experience evaluation
- Technical expertise requirements
- Project management approach
- In conclusion
HOW TO SEARCH FOR THE EMBEDDED SOFTWARE OUTSOURCING PROVIDER
The first challenge you’re likely to meet in your search for embedded software companies is that major catalogs of the software development companies 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 companies who focus on mobile app development or web application development just because they’re listed under that categories. As the result, when you need to find solely the portfolios/ profiles/ references of embedded software companies you have to compose the list manually.
This fact is kind of surprising because according to the Global Market Insights report, size of the embedded software market was valued at 10.46 billion of USD in 2015 and is expected to reach at over 7% CAGR from 2016 to 2023.
Growing adoption of the 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 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. Fast-growing demand for the 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 outsourcing providers as often as never before. In the last couple of years, everybody used to search for the software development companies 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 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 embedded software 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 companies 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 the 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 development as well.
We can take Existek as the example of the company who provide embedded software outsourcing in the multiple domains. Our expertise includes SDK development, firmware development, technical support of the third-party solutions and integration with such solutions. Experience in the development of embedded software for the IoT, wearables and industrial automation may also be considered as a nice recommendation.
Outsourcing company who gained knowledge in various industries and hardware will be able to fuel your product with innovations. For example, the company who have 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 the 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 embedded software 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 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 the embedded systems software development initiatives are not the 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 is 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 is working with both. It would be nice if you could find at least one of those specialists in 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 which distinguish the embedded software developer.
In addition, when the engineers who are working with software exclusively have to know the programming languages, an embedded software 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 build 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 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 embedded software developers and in-house developers in both ways is a must.
MANAGEMENT OF THE EMBEDDED SOFTWARE OUTSOURCING PROJECT
Now let’s talk about embedded software outsourcing with real 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 straight timeline and budget. Here’s 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 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 much bigger system with various hardware and equipment manufactured by different vendors. This is normal way the embedded software development works thus it often requires specific skills and manufacturing domain knowledge. Embedded software 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 embedded software developers without 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 software outsourcing. This is, probably, worst possible idea in the context of the embedded software development outsourcing. Pay attention how seriously provider treats knowledge transfer in this kind of the projects.
- Managing 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 have brought us remarkable results. The main idea behind this approach is to divide the development process into the 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 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 the embedded software outsourcing.
The last paragraph shows that the way how embedded software outsourcing company manage 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 outsourcing project? Leave your questions and comments below.