Archive for the ‘Engineering’ Category

Old Memories

Posted: January 6, 2012 in Engineering, Management
Tags: ,

I ran across an old magazine a few days ago and it brought back a lot of memories. The magazine contains an article entitled “The Chip Man Finally Comes” discussing the founding of Integrated Device Technology’s (IDT) Atlanta Design Center (ADC). This was IDT’s first design group outside of California. ADC was different not only in location but in concept.  it was a central design organization and worked with all of the product lines in the company. For 16 years I ran ADC and it was the most fun I have ever had in my career. From just an idea it grew and generated hundreds of millions of dollars of revenue in many areas including networking, memory, logic, clocking and power. It’s a great feeling to create something like that and I feel fortunate to have had the experience. To take a small group of engineers and beat the competition when they have more money and more people is an awesome feeling. Looking at the operation today it’s easy to forget the early days of $10 surplus desks and a few people in a single room. For those interested, and particularly those who experience ADC, I have posted the article here.

Advertisement

Earlier I wrote about the need to instill certain core values into new college graduates, NCG’s. It is often during the training review that issues related to core values and expectations show up and where the initial reset occurs. One common issue is the belief that 99 is an A+. IN terns of the NCG, this has been the case for years. Consider a typical college engineering class project. A semiconductor design class might involve the design and physical layout of a small circuit. This must be done within class time constraints. The project will get reviewed to make sure the student understands the basic ideas. Small errors and deviations will be tolerated since time was limited and the student got the main point of the exercise. The business world is different and this is one of several places where expectations must be reset in the mind of the NCG.

To even get to the point of being able to reset expectations, without having prior corporate financial damage done, requires a well designed training program and, in particular, a well chosen training project. The project must be able to be completed in the training timeframe (5 to 7 weeks is a good range) but with some carefully chosen exceptions. In the past I have used an 8 bit register design project with specifications that were mostly easy to meet but with a few challenges. I will reference this project in several future posts since it has proven excellent at bringing out several common NCG issues.

Today’s topic involves meeting all, and I mean ALL, design targets. As the trainee chugs along through his design, most tasks come to completion in a straightforward fashion. He begins to feel that the main point is to show competency with the tools and that is certainly one point of the training exercise. However, there is typically one spec, be it speed or input levels, which is difficult to meet. OK, it isn’t doable for the average NCG. What I will describe next is a surprisingly common occurrence. During the review the NCG explains that he did his best and it’s close to spec. He explains that he met all other targets. The others in the room lower their heads. They know I am about to go on a rant. I start by giving an example of something most NCG’s can understand – buying that first new car. I ask him to imaging getting a new Accord, driving up to a stop sign, and finding out that the car won’t stop. He uses the hand brake to limp back to the dealer where he is surprised to find that the dealer thinks he should be happy. You see, the car is 99.9% perfect. The radio is fine, as are the seats, the engine and the environmental controls. The only issue is a bad seal in the brake system master cylinder. This is an A+ car! I then explain that just like he wouldn’t be happy with that car, our customers won’t be happy with our parts if they are only 99.9% correct. Consider a chip involved in routing data. If only 0.01% of the data gets corrupted, that’s a disaster. The only acceptable grade is 100.

If you have been following my bog (of course you have – right?), you might be thinking I am contradicting myself. Didn’t I say it was about just being good enough? I did and I still do. Read that older post carefully. It mentioned that quality is meeting customer expectations and needs. I wasn’t saying you could fail to meet the requirements. I said great engineering involved deeply understanding what the requirements really are and meeting them in a cost effective manner rather than brute force over engineering.

There are several other topics related to 99 being a failing grade and the training review scenario I have described above. I want to save some of these for later posts so they get their full due. However, I want to touch on the limits of engineering authority. Every now and then, and less than I would like to see, an NCG trainee circumvents my standard way of being able to relate the new car story and my ability to make the point that 99 is a failing grade. He does this in a very simple way. He discusses his inability to meet the target specification with his training supervisor and the supervisor tells him that the present performance is good enough. That is equivalent to getting marketing to change the target datasheet. For the majority of trainees that have not gotten this special dispensation, there is a second lesson, in addition to 99 being a failing grade, that they need to understand. They have exceeded their authority. In the real world, a company will put its name on the parts they design. Organizations will count on them. The company must be confident that changes, even if necessary, will only be done out in the open and with agreement from the corporate parties responsible for setting design targets. Working in partnership with others in the company is an important core value. It is important that we all know what our charters are and what they aren’t. That doesn’t mean being sheep. It does mean bringing issues out into the open and being part of the solution. For most reading this post my comments will sound obvious. To many NCG’s they aren’t.

Just about every company pays lip service to the value of hiring new college grads, NCG’s, but few do a great job utilizing this raw talent. To start with, few realize the true potential and why NCG hires are so important. They hire a few, sprinkle them around the company and are done. Some pay lip service to training but with training that is poorly targeted. Even fewer understand what they should be looking for in NCG’s.

Let’s start by understanding the fundamentals of hiring NCG’s and what to look for. To do this we need to look at what the downsides are to hiring experienced engineers. If your first thought is salary then you are way off base. When you go for experienced engineers you are rarely able to get the best people. The best people usually have golden handcuffs keeping them at their present company. You get the person below the best. He may be great. However, the interview often tells you less than you think. It is difficult to decide whether the candidate is the creative mind generating the great work on his resume or a following mind led by someone else. Knowledge is great but the ability to generate new knowledge and be creative in previously unexplored areas of engineering are what make great engineers.

Now consider hiring NCG’s. There are no golden handcuffs. They assume they will be relocating so they are very mobile and will go where you want them to. You stand a lot better chance of getting that brilliant, creative mind. You do have to aim you interview process in the proper direction. The interview questions must look at understanding and insight rather than memory work. I once got told that all you had to know to pass my interview was Ohm’s Law, Q=CV, and charge conservation. That’s a bit of a stretch but there is truth in it. I replied that to pass my interview you didn’t have to just know those items but they must be understood at a deep, inner, level to where they had become intuitive. Those people are rare, whether experienced or not. However, your best shot at hiring one is looking at NCG’s.

Once you have hired that rare, insightful mind, you need to make good use of it. That means training them, setting expectations, and generating the habits of great engineers. It does not mean throwing them onto a project and calling the hiring process done. What I have done in the past is put the NCG’s through a five to seven week  training program. A proper training program should accomplish several major goals. First, the student must learn the basics of the tools he will use. Secondly, he must come to understand the overall framework that a design process follows. This is much like a student taking general physics in college. The classes that follow, optics, mechanics, relativity, thermodynamics, etc. are elaborations of what was taught in general physics. The general physics class acts as a framework onto which the new knowledge is placed. In the engineering world it is important that it is always understood how individual processes and engineering steps fit into the overall design process. The third item that needs to be inculcated involves a number of attitudes that make up a great engineer. These attitudes are often overlooked. With experienced engineers they either have them or they don’t. With NCG’s you stand a good chance of forming a proper view of the engineering world. These attitudes are so important I will make them the subjects of separate posts. It’s just too much to include right now. It takes a lot to get these concepts ingrained but it starts with the first design review. The training program should involve designing a small part from start to finish. It should cover more than what the engineer will work on when on a real project. It is important that the NCG develop a sense of the issues confronting others and how his work will interface to their work product. The training, if successful, ends with a design review. It can be a bit brutal since it is meant to be a reality check. For that reason it is limited to senior staff who are intimately familiar with the goals of the training process. It is this review which introduces the engineer to concepts such as why 99% is a failing grade, the limits of his decision making authority, how an engineer manages his time and resources to prevent spinning his wheels, and how to properly run a design review so that the correct objectives are achieved.

After the design review has been successfully completed, the NCG is ready to become part of a design team and commence work on his first project. The project lead can extend the basics the NCG has learned during training and concentrate on bringing him along as an engineer. The group, having a common set of values and attitudes, is stronger and more functional. During the early days, Microsoft was built on this idea. It is key that everyone be well integrated into a common culture which elevates getting the job done in a correct fashion and discourages destructive behavior. Properly done, this culture brings out creativity rather than stifling it while keeping divergent activities in check. After all, the goal is to sell a product and make money. We’re talking engineering and not science.

There is a caveat here. Life is gray. It’s all about balance. I have been focusing on new college graduates. There is also a place for the experienced engineer. When to go for experience and how to select that engineer is a topic for another post.

I just finish talking to a friend and mentioned my last post. As we discussed it I realized it was about the individual engineer. Missing was how the concept of “good enough” affects business. That was a very big omission on my part. It’s time to fix that mistake.

When it comes to business, the idea of being “good enough” has a huge impact on decision making and the future of companies. This is best illustrated by discussing an area I am intimately familiar with – the semiconductor business. Imagine you are running the fictitious company GPScom. GPScom makes the world’s best GPS chips. They are WAAS and LAAS capable, very sensitive, and simply the best GPS chips by far. They own the personal navigation device, PND, market along with being in most other GPS based devices. However, companies like Broadcom and Qualcomm start producing mobile phone chipsets with relatively poor GPS receivers in them. These chipsets have only basic GPS circuitry that lacks not only LAAS but WAAS. They aren’t very sensitive and the GPS might say you are in the parking lot when you are really in a cafe having a bowl of soup. The problem is, these receivers are mostly good enough. With proper software the mobile phone becomes a decent navigation device. Furthermore, after a couple of generations, these phone chipsets have GPS receivers that are more than good enough. Since they are integrated into the mobile phone chipset they burn less power, take less precious board real estate and cost less. This means they do a better job of meeting the needs of the consumer. The PND market begins to fade as mobile phones take it over. This is happening today. GPScom engineers can tell themselves all day long how their circuitry is superior. The problem is that sales, and hence revenue, are going to Broadcom and Qualcomm. GPScom will have to either diversify, get acquired, or watch itself become less and less relevant until it fades into the sunset.

As an area of technology moves forward there gets to be a tipping point when what can be put into a CMOS chip is good enough. At that point the technology gets integrated and becomes part of a bigger solution. Companies that fail to recognize this risk becoming irrelevant. This is why the idea of “good enough” isn’t just about the individual engineer. It affects core business strategy. Every company needs to be worried that their area of core competency will evolve to the point where “good enough” marginalizes their value. These companies must either diversify so that they make the chips with the broader functionality, acquire technology that can be integrated in, or get acquired themselves. Is your company aware of just what “good enough” is when it comes to their specialty areas or does hubris cloud their thinking?

Cliches exist because they contain truth in an easy to digest form. There’s an old saying among engineers. “Anyone can build a bridge. It takes a good engineer to do it on time and under budget.”  That one holds the essence of why I consider good engineering more difficult to accomplish than good science. My formal training was as a scientist. I have been around scientific research in both the theoretical and experimental areas and I certainly appreciate the difficulties involved. However, it is the imposition of schedule and budget into engineering that makes it even more difficult than good science. Budget doesn’t just apply to the resources involved in the creation of the item but also involves the cost of manufacture. Great engineering means understanding “Just good enough.” Like many topics in this blog the concept of “Just good enough” is much broader and more important than many people think. It is related to the concept of quality. In his book Quality is Free, Philip Crosby defines quality as “conformance to requirements.” Great engineering meets the customer’s needs in the best manner. Best, in most cases, means finding a solution the customer can afford. For this reason designing a mid sized sedan like the Honda Accord is much more difficult than designing something like a Ferrari Italia. The Accord is in a much more competitive space and has tremendous budget constraints. If you want to upgrade the audio system then you have to find cost savings elsewhere. Many thousands of components have characteristics that must be traded off in order to meet the target price-point. The Ferrari design starts by asking “What’s best?” Just for fun, when it comes to the Accord, you get to layer on tougher customer expectations. The Accord isn’t a showpiece. It is a day-to-day working automobile and must perform perfectly for many years with few service needs. The Ferrari is expected to require some pampering. Even several year old Ferraris usually have just a few thousand miles on them. The Accord is a much tougher design challenge.

One engineer I admire is Steve Wozniak. If you look at the Apple II, the computer that made Apple a real company, you find many examples of awesome engineering. Again and again features are included and performance is achieved with elegant rather than brute force design. The result was a great combination of features at a reasonable price for its day. To highlight what I mean by “just good enough” I am going to single out just one of the many elegant design choices in the Apple II; but first I need to set the stage.

The personal computing era was kicked off in 1975 with the January issue of Popular Electronics. The cover article was on the construction of a computer kit called the MITS Altair 8800. With it came the introduction of the S100 bus. The Altair 8800 was a frame style design where cards were added to increase functionality. While many functions such as main memory have moved to the motherboard, we retain this expansion concept today although the S100 bus has mostly moved into history.

The Altair 8800 was copied by many companies and expanded upon. The S100 bus became an industry standard expansion bus. Lots of companies made cards for the S100 bus. Because of this a lot of computers placed only the basics on the motherboard in an effort to control price. There are problems with this approach. Since there was no game controller (joystick, paddle, buttons) functionality included in the Altair, there was no standardized game interface. I once looked at the cost of adding joysticks to an S100 based computer. The card alone was several hundred dollars. The approach involved expensive analog to digital converters (ADCs). The result was that only keyboard based games evolved for the S100 based machines.

During this time, games like Pong and Breakout were popular. It made sense to bring them to personal computers but they required interactive game controllers i.e. paddles or joysticks. A keyboard used as a controller lacked the same smooth interactivity. Using the keyboard for games was a compromise aimed at satisfying the engineers and accountants and not the customers but it was a compromise most computer manufacturers had adopted. Enter Apple and a few others. In 1977 Apple introduced the Apple II. It came with game paddles along with games like Breakout. To accomplish this in a cost effective manner, Wozniak pushed most of the design into software. Since he had designed Breakout in hardware for Atari, this was a big change in mindset. Great engineers adopt what is best as opposed to just reworking what they did in the past. Simplifying hardware and pushing complexity into software would turn out to be a very important trend. Here was that trend at a very early stage. Look at the schematic below.

This is part of the schematic of the Apple II included in the Apple II Reference Manual dated January 1978. What looks like a 553 integrated circuit (H13) is actually a 558. This is a quad version of the venerable 555 timer chip. The 558 is used to generate four paddle, or two joystick, inputs. Each paddle is just a variable resistor. Hooked into the 558, the resistance of the paddle controller determines the oscillation frequency of a simple RC oscillator. A loop in the code keeps reading the oscillator. The microprocessor can only read a 1 or a 0. If the voltage is above a certain level the microprocessor sees a 1. Below that it sees a 0. The Apple II loops while looking at the game paddle input. By looking at the pattern, for example 111000111000111000, it can determine the frequency of oscillation. This is then related to a game paddle position and the screen paddle is moved to the appropriate screen position. The beauty of this is that the paddle controller doesn’t have to be super linear. The paddles just need to be consistent i.e. all paddles need to act the same way. Nonlinearities can be corrected in software. To the user, using visual feedback as he looks at the screen while turning the paddle, this is all “just good enough.” It is also a high quality solution since it meets the user’s expectations and the requirements for playing games like Breakout. Including games and controllers gave the Apple II great consumer appeal and was a big part of its success and with it the success of Apple Computer.

Today we often see companies just iterating on a theme. These are the so-so companies. Great companies sit back, look at the bigger picture and think about possibilities. Rather than layering expensive, iterative solutions on each other, the great companies rethink the approach and create solutions that are cost effective while meeting user requirements. Exceptional companies go beyond this and create solutions to user requirements that the user didn’t know he had. That, however, is a topic for another post.