Requirement for Engineers in Embedded Software Development Outsourcing

: In general, research on software development outsourcing, which implicitly assumes application software development, tends to ignore hardware product characteristics. However, in embedded software development, the skills and knowledge required of engineers can differ depending on hardware product characteristics. This study employs the data from an interview-based survey to identify the impact of hardware product characteristics on software development outsourcing. In the case of embedded software, engineers at companies that undertake outsourced work must possess not only knowledge of software developed by the outsourcer but also technical information and knowledge regarding hardware product characteristics that can only be acquired from the same client. This accumulation of firm-specific knowledge and information occurs on a continual basis, and is necessary for this type of outsourcing business. Thus, maintaining a low engineer turnover is important.


Requirement for Engineers in Embedded Software Development
Outsourcing Mizuki KOBAYASHI a) Abstract: In general, research on software development outsourcing, which implicitly assumes application software development, tends to ignore hardware product characteristics. However, in embedded software development, the skills and knowledge required of engineers can differ depending on hardware product characteristics. This study employs the data from an interview-based survey to identify the impact of hardware product characteristics on software development outsourcing. In the case of embedded software, engineers at companies that undertake outsourced work must possess not only knowledge of software developed by the outsourcer but also technical information and knowledge regarding hardware product characteristics that can only be acquired from the same client. This accumulation of firm-specific knowledge and information occurs on a continual basis, and is necessary for this type of outsourcing business. Thus, maintaining a low engineer turnover is important.
Keywords: product characteristics, capability requirement, firm-specific knowledge, software development outsourcing

Introduction
This study identifies the impact of hardware product characteristics on the embedded software development outsourcing.
Software development separates modules and processes to a great degree, and codification is considered a simple matter. Therefore, software development outsourcing is a general phenomenon (Bruce, Leverick, Littler, & Wilson, 1995;Eppinger & Chitkara, 2006).
Outsourced projects often end in failure due to delayed deliveries and budget overruns. It has been noted that the company that undertakes outsourced work must acquire knowledge of a customer's business processes and project management (Bruce et al., 1995).
However, existing research implicitly assumes application software development, thereby overlooking the impact of hardware product characteristics on embedded software development (Rottman, 2006). Rottman (2006) highlighted that in the case of embedded software development, software development depends on hardware characteristics, and requires time to train engineers because they must acquire complex knowledge of business processes and products.
He offered some suggestions for skillfully managing overseas outsourcing projects for embedded software, stating that the outsourcer should 1) utilize multiple companies and create a competitive environment that maintains low cost and high quality; 2) maintain a stable pool of personnel for knowledge retention and transfer; 3) increase opportunities for face-to-face communication; 4) internally communicate the purpose for the outsourcing strategy in a clear fashion; and 5) invite engineers of the company to which the work is outsourced and let them observe the development team as part of their training. While very few studies focus on embedded software development outsourcing, they suggest that for this type of software development, the type of knowledge required for engineers will vary according to the hardware characteristics.
According to Umezawa (2007), Japanese companies have been slow to adopt software development outsourcing compared with their U.S. counterparts, with international outsourcing intensely beginning around 2001, primarily with China. There has thus been a gradual increase in literature depicting the development of regional software firms in China that focus on work with Japan and descriptions of development projects with Japanese companies (Kobayashi, 2014a(Kobayashi, , 2014bTanzawa, 2014;Umezawa, 2007). While some studies deal with embedded software development outsourcing among Japanese companies (Kobayashi, 2013), most of these focus on the impact of differences in local characteristics, and very few systematically examine hardware characteristics. 1 The product characteristics that are outsourced influence the selection of locations and partners (Graf & Mudambi, 2005;Hätönen, 2009). Traditional research has applied the characteristics of embedded software and explained that the creation of embedded software varies depending on the hardware, rather than the application software. However, it goes no further than to suggest that the time it requires to train engineers is longer due to the acquisition of knowledge regarding hardware (Rottman, 2006). In other words, the most critical point-the impact of hardware characteristics in embedded software development on companies to which the work is outsourced-remains unclear.
This study is organized as follows: Section 2 explains the research design; Section 3 employs the data from an interview-based survey to primarily explain the theme of the study; Section 4 presents the conclusion.

Research Design
This study is based on interviews conducted in July and August 2013 among three Japanese companies in Dalian and Fuzhou, China, and two Chinese companies in Dalian (Table 1).
The Japanese companies specialize in information systems (J1), automobile components (J2), and office automation equipment (J3) industries, whereas the local companies (C2 and C3) 2 specialize in software development. J1 is tasked by its Japanese headquarters to work on embedded software. J2 and J3 outsource embedded software work to local companies C2 and C3.
Interviews were semi structured with questions 3 composed along three lines of inquiry. The first is regarding the environment for local software development outsourcing; the second deals with basic information regarding company products and systems produced locally, as well as the timeline for expanding into China (or for creating a company there); the third queries the division of labor with

Case Study
In general, application software has "open" characteristics, whereas embedded software is "closed." Compared with application software, embedded software has more severe development constraints, and engineers are required to possess software development skills in relation to hardware products. Case studies are used to describe both application software and embedded software development.

Application software development
J1 is tasked by its Japanese parent to develop embedded software.
The company, a major system integrator, is also very familiar with application software.
Application software operates on computers and servers, and is characteristically "open," with information regarding development or interface specifications available on the Internet. For example, application programming interfaces, or APIs, that connect the operating system (OS) and application layers are open to the public.
In addition, this type of software aims for such computer-based information processing activities as data calculation. Ultimately, any engineer working in software development outsourcing in this area can get technical information required for development at any time, in any place, and freely use that information without having to get it from their customers.
System engineers, or SEs, are those individuals that design overall systems, that is, programmers who actually create the software.
Programmers follow certain specifications to create software programs, and depending on their experience and skill, they may encounter problems in developing user-friendly software products or performance in addition to bugs or other quality problems.
In order to avoid such problems, engineers must be intimately familiar with the business processes of the outsourcer. Otherwise, they cannot ensure fulfilment of all system requirements. For example, the development of a medical system. The programmer must first understand the manner in which the system will be used in actual practice (accessing patients' medical records or a list of prescription drugs, for instance) prior to creating the software, after which engineers check the software to ensure that it meets the requirements.
There are no noticeable differences among software companies with regard to software knowledge because technical information, such as development methodologies and technologies, is available on the Internet. In the application software outsourcing, companies demand user-friendly products, and outsourcing firms that are familiar with business processes are at an advantage.

Embedded software development
In contrast to application software, embedded software is the driver first launches the car navigation system, then the CD player, and then the DVD player, or a situation in which the driver randomly launches these systems.
C2 must possess an in-depth knowledge of both existing and new technology used in the products of J2. In other words, the more that C2 engineers engage with J2, the more C2 engineers acquire J2-specific capabilities as telematics equipment progresses from generation to generation. Because C2 needed to continuously accumulate knowledge regarding the characteristics of J2 products, the company maintained a low engineer turnover (Kobayashi, 2012).
This is one vital reason that the company was able to maintain winning business from J2.
In the case of office automation equipment, engineers from Chinese company C3 possess not only knowledge of software created by customer J3 but also technical knowledge regarding the functioning of office equipment created by customer J3 to enable functions such as printing, copying, collating, and stapling. Thereafter, they create software to control the hardware and realize these functions. C3 maintains a stable pool of personnel to maintain the consistency of its software development.
Thus, unlike application software, embedded software comprises many layers that are unique to specific manufacturers. The hardware also tends to have "closed" characteristics, with technical knowledge relevant only to specific companies.
While little focus is placed on hardware characteristics in the application software development, the goal of embedded software is to control hardware and enable hardware functionality. Thus, the embedded software development varies greatly by product and model.
Engineers must possess firm-specific knowledge of the hardware characteristics.
Furthermore, compared with application software, embedded software operates on microcomputer chips that play the same role as computer systems, and cost and performance requirements are quite strict. A series of software modules can be embedded in chips, and the CPU processing capability and memory capacity must be kept to a minimum to maintain low costs. Engineers develop software with very strict constraints imposed by CPU and memory specifications.
In comparison with application software, engineers involved with embedded software not only have severe constraints imposed on development but must also possess the knowledge of hardware characteristics. Low engineer turnover is critical for companies that undertake outsourced work so that they can continue to win orders and accumulate firm-specific capabilities.

Conclusion
Unlike application software implicitly assumed in the software development domain, embedded software requires engineers to possess different skills depending on the hardware characteristics.
This study compared and contrasted application and embedded software to identify the differences in requirements for companies that undertake outsourced work (Table 2).
Application software uses a computer for information processing, and does not consider hardware characteristics. Engineers can acquire necessary skills for software development from outside sources, and need the ability to create software that is easy to use from the perspective of business processes. In this type of software development outsourcing, the company to which the work is given gains advantage by acquiring detailed knowledge of the business process of the customer.
Embedded software differs from application software in one important aspect. Embedded software is designed to control the functions of hardware through information processing. Thus, embedded software development is heavily influenced by the characteristics of specific hardware. When developing this type of software, engineers face CPU and memory constraints. They must also acquire technical knowledge of both hardware and software that are specific to their customers and available only from them.
Companies that handle outsourced assignments are required to possess software development skills that are skewed to the product characteristics of customer hardware. It is vital for these companies to maintain low engineer turnover to continuously develop knowledge specific to their customers.