For novel ideas about building embedded systems (both hardware and firmware), join the 27,000+ engineers who subscribe to The Embedded Muse, a free biweekly newsletter. The Muse has no hype and no vendor PR. It takes just a few seconds (just enter your email, which is shared with absolutely no one) to subscribe.
By Jack Ganssle
Just Do It
In one of the made-for-TV pseudo-histories of the Apollo program, an astronaut figured landing on the moon would be something like flying helicopters. So he learned to fly choppers. He didn't ask permission. His boss wasn't involved. No one told him to acquire this new skill. In the ultracompetitive astronaut office where spacemen vied for position, for that extra angle needed to get on a flight, astronauts took dynamic action to fill holes in their experience.
Wow. Yesterday I listened to a developer whine about his dead-end job, due (he claimed) to a slew of flaws in his boss. Actually, in a succession of bosses. His biggest skill is 8051 assembly language programming, and he cannot believe that the current boss wants him to move to C. Which, of course, he does not know and refuses to learn. I was astonished to learn he's defiantly waiting for the company to send him to C class, using his lack of knowledge as some sort of self-defeating line in the sand.
Back in the old days, paternal corporations benevolently managed their employees' careers. You could leave college and work for IBM till you retired. and they'd take care of you. Need a new skill? Your boss would identify the weakness and schedule some sort of training.
No more. Today's existential competitive environment would make Kirkegard gasp. At times it seems no one cares a whit for any individual. Cut costs! Drive up profits! Increase stock valuations! Get the product out the door today no matter what the personal cost may be. Joe is still struggling with C++? Replace the SOB! There's an army of applicants knocking at the door. The company has neither the time nor the incentive to engage in training and career management.
I believe it's our personal responsibility to upgrade our skills. constantly. Relentlessly. Technology changes so fast, and even the first derivative of that change is accelerating. Too many developers stop learning when they leave college. Do that, and your career will end in your twenties. Companies will use your skills as long as they are still relevant and then spit you out, a burned-out husk obsolete at 30.
In lectures I often tell firmware folks they must learn Watts Humphrey's Personal Software Process. It's one of many techniques sure to help reduce defects and improve estimating abilities. I push the PSP because it's something individual developers can do with zero buy-in from their boss or colleagues. Like a self-help program it requires nothing more than a personal commitment. Yet in follow-ups I find only a handful of folks ever work through the program. Many buy the book; few do the homework. The usual excuse (we're all busy and have very full lives) is full of truth but devoid of wisdom.
No doubt the astronauts have an incredible amount of personal freedom in their jobs, as well as a budget we can only dream of. They are all dynamic personalities who look at a problem, figure what resources might be needed, and immediately take action. That sounds like a great description of the engineering method.
Take action. Learn. Grow. Become expert at something new. Stasis in this industry is death.