image I've been working on Distributed Embedded Systems and related communications technology recently so for the "Distributed Computing", Issue #17, of the Microsoft Architecture Journal I wrote a paper on the subject. My Aim was to open up - 'expose' - this very exciting field to the "traditional" distributed systems community. As the industry moves from standalone, smart devices to connected devices and then towards systems of service-oriented connected devices, we will begin to see much more overlap with "traditional" distributed systems design and architecture practices. Not everything we (traditional distributed systems developers and architects) know translates easily to the world of distributed embedded systems, so it's vitally important to understand the different challenges and issues faced, technical imperatives, development strategies, and technology road maps. Hopefully, in my paper, I've done some justice towards answering those questions.

Apart from my own paper there's a fab collections of others. I haven't started reading them as yet, but personally know and respect many of the authors. I know attendees of PDC2008 will be receiving a copy of the Journal, so we've been calling this the "PDC Issue"! The new editorial team are beginning to make their positive marks and you'll notice a new clean, bold look to the Journal as it starts to establish a shared identity with Microsoft other "architecture evangelism" assets. I approve wholeheartedly, but it still hasn't got the minimalism I think we prefer in Europe Western/Northern. But at the end of day it's about content value and that you certainly have in abundance.

On another note, my colleague, Yuriy Zaytsev, alerted me to a Japan MITI survey which concluded:

  • (4) Over 40% of the quality problems with embedded products after shipment are caused by software errors.
    The leading cause of the quality problems with embedded products after shipment was software errors (46.3%), followed by hardware design faults (21.8%) and production faults (12.7%). A trend over the past four years is that the percentage of faults during product conceptualization and specification continues to fall year after year. Software errors have remained the major cause of quality problems for the past four years.
  • (6) Advanced* embedded software engineers are needed.
    Although overall shortages are easing, demand is still high for embedded software engineers with advanced skills; the shortage rate of entry-level engineers was 26.3%, while that of advanced (experienced) engineers was 48.4%. Over the three years from 2006, the shortage rate of entry-level engineers fell from 44.2% to 26.3%, showing the largest decline among all the categories. The shortage rate of advanced engineers stood out last year at 64.9%, but the rate declined this year, making the disparity between different skill levels restored to an extent equivalent to that of two years ago.

    *Advanced: Capable of implementing technologies, methodologies and businesses while exercising leadership or capable of implementing these while leading internal and external teams by means of standardization and the development of new technologies.
    Intermediate: Capable of discovering and solving challenges in business operations while exercising leadership.
    Entry-level: Capable of discovering and solving challenges in business operations under the leadership of higher-level engineers.
  • (7) Software engineering methods have been introduced for improving quality and developing human resources.
    The respondents’ most common reason for having adopted solutions developed and provided by the Software Engineering Center was “quality improvement” (cited by more than 75%), followed by “human resource development” (more than 60%). This suggests that many respondents recognize SEC’s solutions as effective for solving major challenges in developing embedded software. About 70% of those who have adopted SEC’s solutions give high marks to them, rating them as being “beyond expectations” or “just as expected.”

The questions that arise for me, especially in the context of realizing Distributed Embedded Systems solutions (i.e. Complex Embedded Systems), are:

  • Which, if any, of the software development processes, design and architecture methods we use in traditional software development, can be leveraged in Embedded Systems development to mitigate these quality problems and skills shortages?
  • What is Microsoft doing to address these issues in terms of next generation tool chains for this industry?

Over the next few months we'll certainly be exploring these questions in more detail and report back our learning.


Anyway, here’s wishing you a great read of Journal 17!