The Two Things -

The Two Things

Click here for reader response to this article

Glen Whitman, Assistant Professor of Economics at UC Northridge, has been playing a game called “Two Things.” Ask your pals what the two most important things are about their profession. The answers will vary widely, but the results are interesting. He documents his sometimes serious, sometimes amusing results here.

Under computers, his first entry is: The two things about binary systems:
One: 0
Two: 1

So what are the two things about firmware? Here's a stab:
One: It's the most expensive thing in the universe
Two: It's becoming the most ubiquitous thing in the universe

What are the two things about embedded systems?
One: They're everywhere
Two: They all have limited resources, unless they don't

How about engineering? Glen gives us:
One: It's all about tradeoffs
Two: The tradeoffs are all about money, time, and quality

The Two things about civil engineering:
One: Dirt + Water = Mud
Two: You can't push a rope

My suggestion for the two things about digital engineering:
One: If it's not a one or a zero, call an analog engineer
Two: Digitize everything as soon as possible

Here's another attempt at the two things about digital engineering:
One: It's always a software problem
Two: If it's not a software problem, it can be fixed by changing the code

Two things for analog engineering:
One: Digital is really analog in disguise
Two: You can do anything with enough op amps and 10k resistors

Computer Engineering is a relatively new college major spawned entirely by the microprocessor revolution of the '70s. These folks bridge the hardware, analog and firmware worlds. With each of their three feet in very different camps they experience the best of computers, with perhaps the highest frustration levels.

Two things about computer engineering:
One: Nothing beats making lights flash and motors whirl
Two: Fuse everything

The two things about programs:
One: They all start out with bugs
Two: After they're fixed, they all have bugs

Glen addresses managing PCs. The two things about computer maintenance:
One: Disk scan, defrag, virus scan, update drivers, wait 30 days, repeat
Two: Never download Kazaa

And that's pretty good advice.

Obviously it's naïve to condense complex subjects down to a mere pair of attributes. But it sure can be a lot of fun.

What are the 10 Things about people?
01: Those who know binary
10: Those who don't

What do you think are The Two Things about our profession?

Jack G. Ganssle is a lecturer and consultant on embedded development issues. He conducts seminars on embedded systems and helps companies with their embedded challenges. Contact him at . His website is .Reader Response

1. Volatile
2. Pointer

– Some guy

The Two Things about Embedded System Design:
1: It's all about the hardware.
2: It's all about the software.

– John Patrick

The two things about development:

One: There are n ways to solve a problem
Two: You know n/1000 ways, other people the rest

– Maarten Verhage

One: The customer doesn't know what they want.
Two: You have to give the customer what they want.

– Mark Holdgrafer

1. Managers are not needed.
2. Management does not know.

1. Projects succeed w/o meddling managers.
2. Meddling managers can't manage successful projects.

– Jack D. Crack

What do you think are The Two Things about our profession?

1, Change.
10, Adapt or die.

– Steve King

The two things about software delivery:

1. If it was not delivered on time, it was QA's fault.
2. If it was delivered on time but had a bug, it was QA's fault.

– Ed Sankey

Two things about a software guy working in an analog/hardware company:

1. If it's not a schematic it's “just software”.
2. If an analog product fails an in-house factory automated test, there must be a bug in the test software.

– Alex Specker

Two things about software, according to mechanical designers:

1) Replacing a mechanical part never affects software
2) All it takes is “just a firmware upgrade”.

– Fredrik L

1. It's CSU Northridge, not UC Northridge.
2. Software is easy except for the special cases. Unfortunately, stopping and starting are special cases.

– Ed

1.When a engineer say's it's not likely.(it wont happen).

2.Economics play a big part and budgets are not made of swiss cheese.

– fred barnes

Two things about distributed systems:

1. There are always race conditions.
2. Some race conditions cannot be resolved.

On designing large-scale distributed systems:

1. Model, simulate, model, simulate
2. Loop to 1.

– Bill Boyle

1. Seeing the big picture is essential.
2. The product succeeds or fails on the details.

1. The division between hardware and software is a fiction.
2. Know enough about everything to be able to understand the detailed answer from an expert.

– Forrest Wunderlich

1. Thinking only inside the Box for design/development/testing.
2. Presenting all Out of the box ideas to our customers

– Raja

1. Add features 'on demand', build a fully configurable product.
2. Shrink code size, reduce component count.

– Monali Bhalerao

01. Design=Code
10. Code=Fix

01. Never use 'goto'
10. goto 01

01. Under Pressure (Always!)
10. On Time (Ever?)

– Saravanan

1) From the software guy: it's a hardware problem.
2) From the software guy: it's a software problem.

– Troy McVay

1. Just after you're “almost done” is when the real work begins.
2. Prolonged exposure to computers is not good for the mind or the body.

– Lester Burnham

SW Development phases:

1. Authoring/coding bugs
2. Defacing them into features.


1. It is a bug, only if customer sees it.
2. Special Feature: is a bug, that customer doesnot notice.

– Harish

Product Design:

1. To have sales, product design must be market-driven.
2. Market research is usually as bad as the sales forcasts.

– Steve Addison

Debugging again:

1) It is always software bug.
2) If it is not a software bug, work the software around or it will become a software bug!

– Terence

1. You need to know more to implement less.
2. Never letting the customer know you are implementing less..the more the costlier!


1. PRIDE: It took an electrical/electronics engineer to design the PC.
2. DISMAY: No software/computer engineer will ever agree.

– Gautam Morey

1. “Creature feap” (or feature creap) happens.
2. Keep a bit in your back pocket.

– A.L. Devine

1. Recursion is bad. (See 2.)
2. See 1.

– Pedro Alves

10 truths about digital systems?

01: Systems seek their windows of vulnerability.
10: The hardware works, the software works, but the system doesn't!

– Peter Moss

1. Hardware problem, Replace it.
2. Software problem, Fix it.

1. Every manager needs developers.
2. Vice versa is not true always.

1. Successful projects are developed properly.
2. Failure projects are managed poorly.

1. Requirements are always unclear.
2. Deadlines are always clear.

– Ram

1. The Watchdog will catch it.
2. To paraphrase the Latin “Quis custodiet ipsos custodes”, “Who watches the watchdog?”

– Ken Kelly

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.