|
Grade this article: |
This series of articles concerns embedded systems design and programming, and how to do it with excellence, whether you are new to the discipline or a veteran. This article is about selecting the proper product and system features. Keep in mind the last article and the emphasis on economics. Having designed many products and pieces of products since the 1970's, I understand how features fit into the mix during product design. The sales people want a rich set of features, and the engineering staff wants to build a killer product, bit understands that features cost money. This tug of war is good and helps to identify the features that benefit the bottom line. The first thing you should do to your list of proposed features is delete as many as possible. I'll guarantee you that many of the features on the list are unnecessary or counterproductive, even though they may be championed by the company president. You certainly have used products which were loaded with idiotic features. How about some examples?
Then, how do you select features? First, select the minimum features required to solve the customer's problem, with possibly one or two additional features to make his job easier. Features should be selected for robustness, not glitz. If you cannot make it work consistently, then leave it out. OfficeMax sells injet cartridges that are supposedly compatible with Lexmark printers, but after the second set of compatible cartridges, the printer refused to print. The 'feature' of compatibility in those cartridges is not robust. And the 'feature' of Lexmark printers to prohibit use of non-Lexmark ink cartridges has relegated that printer to the landfill. I'll never purchase another Lexmark product -- ever. (Actually, there's a railroad track out back of my office, and I considered creating a Lexmark Cam web site to document the untimely demise of the printer. Unfortunately, disposing of printers under locomotive wheels is illegal.) Avoid features that will confuse the customer. I had one client with a wide range of customers with a wide range of needs. This caused huge feature creep in the product line, to the point where some features were conflicting with others. Some customers wanted password security, and others would forget the passwords so we had to install a universal back-door password, a totally lame solution. Customers could not understand the product, and neither could the sales staff, though they requested each and every feature and approved each addition. If the product has features that your own people do not understand, how will the customer? You should also assign a cost to each feature. Some features come at essentially zero additional cost. Some features impact the per unit cost, and some impact the development cost without adding dollars to each unit. If you take the total product cost and apportion it to each feature, it will be easier to keep and kill features. And stating it in terms of dollars will help marketing people understand the true cost of each feature. Another valuable exercise is telling a prospective customer about each feature and watching his or her reaction. We engineers tend to make things too flexible and complicated. A blank look from a potential user is a powerful thing. Author Biography Hank Wallace is the owner of Atlantic Quality Design, Inc., a consulting firm located in Fincastle, Virginia. He has experience in many areas of embedded software and hardware development, and system design. See www.aqdi.com for more information. |