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

106  THE ART OF  DESIGNING EMBEDDED SYSTEMS

                            The best prototype spec is one that models risk factors in the final
                        product. Risk comes in far too many flavors: user interface (human inter-
                        action with the unit, response speed), development problems (tools, code
                        speed, code size, people skill sets), “science” issues (algorithms, data re-
                        duction, sampling intervals), final system cost (some complex sum of en-
                        gineering and manufacturing costs), time to market, and probably other
                        items as well.
                            A prototype may not be the appropriate vehicle for dealing with all
                        risk factors. For example, without building the real system it’ll be tough to
                        extrapolate code speed and size from any prototype.
                            The first ground rule is to define the result you’re looking for. Is it to
                        perfect a data reduction algorithm? To get consensus on a user interface?
                        Focus with unerring intensity on just that result. Ignore all side issues.
                        Build just enough code to get the desired result. Real systems need a spec
                        that defines what the product does; a rapid prototype needs a spec that
                        spells out what won’t be in it.
                            More than anything you need a boss who shields you from creeping
                        featurism. We  know that  a changing  spec is the bane of  real  systems;
                        surely it’s even more of a problem in a quick-turn model system.
                            Then you’ll need an understanding of what decisions will be made as
                        a result of the prototype. If the user interface will be pretty much constant
                        no matter what turns up in the modeling phase, hey-just  jump into final
                        product development. If you know the answer, don’t ask the question!
                            Define the deadline. Get a prototype up and running at warp speed.
                        Six months or a year of fiddling around on a model is simply too long. The
                        raison d’ztre for the prototype is to identify problems and make changes.
                        Get these decisions made early by producing something in days or weeks.
                        Develop  a  schedule with  many  milestones  where  nondevelopers  get a
                        chance to look at the product and fiddle with it a bit.
                            For a prototype where speed and code size are not a problem, I like
                        to use really high-level “languages” like Basic. Excel. Word macros. The
                        goal is to get something going now. Use every tool, no matter how much
                        it offends your sensibilities, to accomplish that mission.
                            Does your  product have a GUI? Maybe  a control panel?  Look  at
                        products like those available from National Instruments and IoTech. These
                        companies provide software that lets you produce “virtual instruments” by
                        clicking and dragging  knobs,  displays, and switches around on a PC’s
                        screen. Couple that to standard data acquisition boards and a bit of code in
                        Basic or C, and you can produce models of many sorts of embedded sys-
                        tems in hours.
   114   115   116   117   118   119   120   121   122   123   124