Page 118 - The Art of Designing Embedded Systems
P. 118

Firmware Musings  105


                        Even hardware  is moving away from conventional prototypes. Re-
                   programmable  logic means that the hardware  is nothing more than soft-
                   ware. Slap some smart chips on the board and build the first production
                   run. You can (hopefully) tune the equations to make the system work de-
                   spite interconnect problems.
                        We‘re paid to develop firmware that is correct-r   at least correct
                   enough-to  form a final product, first time, every time. We’re the high-
                   tech civil engineers, though at least we have the luxury of fixing mistakes
                   in our creations before releasing the product to the cruel world of users.
                        Though we’re supposed to build the system right the first time. we’re
                   caught in a struggle between the computer‘s need for perfect instructions.
                   and  marketing’s less-than-clear product  definitions. The B-schools are
                   woefully deficient  in  teaching  their  students-the  future product  defin-
                   ers-about  the harsh realities of  working in today’s technological  envi-
                   ronment.  Vague handwaving and whiteboard sketches are not a product
                   spec. They need to understand that programmers must be unfailingly pre-
                   cise and complete in designing the code. Without a clear spec, the pro-
                   grammers themselves, by default. must create the spec.
                        Most of us have heard the “but that’s not what I wanted’ response
                   from management when we demo our latest creation. All too often the cus-
                   tomer-management,  your  boss.  or the end user-doesn‘t  really  know
                   what they want until they see a working system. It’s clearly a Catch-22
                   situation.
                        The solution is a prototype of the system’s software. running a min-
                   imal subset of the application’s functionality. This is not a skeleton of the
                   final code, waiting to be fleshed out after management puts in their two
                   cents. I’m talking about truly disposable code.
                        Most  embedded  systems  do possess  some  sort  of  look  and  feel,
                   despite the absence of a GUI. Even the light-up sneakers kids wear (which,
                   I‘m told, use  a microcontroller  from Microchip) have at least a “look.”
                   How long should the light be on? Is it a function of acceleration? If I were
                   designing such a product, I’d run a cable from the sneaker to a develop-
                   ment system so I could change the LED’s parameters in seconds while the
                   MBAs argue over the correct settings.
                        “Wait,” you say. “We can’t do that here! We nlwzy ship our code!”
                   Though this is the norm, I’m running into more and more embedded de-
                   velopers who have been so badly burned by inadequate/incorrect specifi-
                   cations that even management grudgingly backs up their rapid prototyping
                   efforts.  However,  any  prototype  will  fail  unless  the  goals  are  clearly
                   spelled out.
   113   114   115   116   117   118   119   120   121   122   123