This is the second in a series of interviews between Ray Keefe of Successful Endeavours and Lance Harvie of People 4 Embedded. Lance is a LinkedIn connection of mine has wanted to do a series of interviews with Embedded Developers to go over issues, tips and career advice from those of us who have been in the industry for a while. We touch on topics such as:
Embedded Development is the process of creating a computing system that is encapsulated within a self contained object. This object may or may not be part of a larger system. In it’s own right it is an Embedded System. So how do you go about creating an Embedded System?
Lance Harvie of People 4 Embedded and a LinkedIn connection of mine has wanted do do a series of interviews with Embedded Developers to go over issues, tips and career advice from those of us who have been in the industry for a while. For our first attempt we decided to try a Skype video call and record it. But Skype was not working well. So then we thought we would try out a Google Hangout and video record the interview.
First tip: never try a process that isn’t fully debugged when it has to work first time.
Second tip: have a backup plan.
From that you might be able to tell that both the Skype and Google Hangout processes didn’t go to plan.
Third tip: don’t rely on debugging during a live demo.
Those who don’t regularly read this blog won’t know that I got into electronics because I was the electric lead guitarist that thought it would be cool to be able to design and build my own amplifiers, racks and effects. I have a post covering my background in Music Electronics.
So I had an audio recorder with me and recorded the audio from the speakers of my laptop. I know there are other ways to do this but I hadn’t expected this to end up being the only thing that worked on the night and I had to make it work right then and there. So the audio you hear is Lance from my speakers sounding a little thin and far away and me in the room. This is also why the video is static but it does have our contact details on it.
Fourth tip: have a fall-back position you know will work.
There will be a transcript soon but you can check out the conversation above. If you want to get a copy of the transcript then either subscribe to the blog or leave a comment.
We were an excited bunch of Engineers as we watched the live feed from NASA of the landing of Curiosity on the surface of Mars. Given the telemetry delay of 15 minutes, the real landing had already happened. Here we were looking back in time as we were watching history being made. The tension and excitement were evident in the room and we felt it too.
Curiosity Landing taken from the Mars Orbiter
As a team of Engineers who focus on the delivery of a brand new Electronics Design with the supporting Embedded Software, we know a little of what it is like to fire things up for the first time but celebrate that it didn’t go up in smoke. Not that this happens literally very often, but it is a good feeling to get confirmation that the careful design work has been successfully implemented. We develop up to 100 new Electronics Products each year so we have had some practice at this.
In space this is harder still for 3 reasons:
You can’t easily rework it if it goes wrong. It is too hard to get to it. It has to be right.
Radiation is much worse and the environment is more demanding. You can’t just use any technology for Aerospace Electronics Development.
A lot more investment is at stake.
The celebration when the first telemetry feeds came through as ‘Nominal’ was overwhelming. So this is what it looks like to deliver on $2B of R&D Investment!
Curiosity On Mars – front leg in view
And thoroughly deserved too. Though the use of ‘Nominal’ for such a great outcome is a little understated. But then this is Engineering and science. We know a little of what that is like though we don’t get to spend that level of investment in creating the future. Certainly the win last year for the Industrial Electronics Future Awards 2011 was a moment we savour.
You can watch the whole landing here:
And some links you will enjoy if you are an enthusiast as I am
BRW recently ran an article by Matt Barrie on business ideas that are worth pursuing. If you haven’t heard of Matt Barrie, he founded Freelancer. In the article he wrote about business ideas that interest him, and what doesn’t interest him. In particular he had a sideswipe at us Engineers about our focus on the technology and solving those problems first instead of testing whether the idea has a viable market. As an Engineer who has had to learn about business in order to run one, I can agree with some of what he said. In particular, we can become so focussd on the technical problem that we don’t make sure there is a real business case for the final product or service.
Here is the short list of what Matt Barrie doesn’t like in a business:
Anything that involves selling your personal time – e.g. consulting
Anything that isn’t scalable – more on that later
Anything that requires a technology breakthrough before you have something to sell
Small, niche and low total market potential opportunities
By scalable, Matt means that the sales potential is not directly proportional to either people or capital investment. Matt wants leverage. In his words “Businesses that are not scalable are bad”. But is this really the case? And what does he mean by bad?
Is non-scalable always bad?
I agree that if you want to maximise your income potential, the non-scalable businesses will not give you same ability to do that as scalable businesses will. However my business doesn’t only exist to make money. Making money is a by-product of a good business that is well run and meets a real need. Businesses should make money, otherwise they are not adding enough value or not well enough run.
My favourite business quote is “The purpose of the organisation is for ordinary men and women to come together, and in cooperation with each other, do the extraordinary”!
For me, business is a mechanism to make the world a better place in partnership with others. It is too big a job to do on your own. And it should deliver real value.
There are many essential non-scalable activities out there. Here is a short list:
anything to do with the patient side of medical or nursing care
most forms of teaching and education
personal services
mental health
government
Product Development
construction
Notice I said activity. For the quote above also covers the “Not For Profit” sector and Government. Both should deliver real value. They just don’t directly derive their income from that value.
I’m sure Matt Barrie is not upset if he has to see a Doctor just because the Doctor does not have a scalable business.
The final point above is about Product Development. Thomas C. Gale said, “Good design adds value faster that it adds cost“. So I am not advocating development at any cost. It has to have a value proposition. A client of ours recently told us of a product we designed for them nearly ten years ago that they had made millions of dollars from. Given our fairly modest fees for that project, they got a massive bargain there. That was an example of very good value Product Development which they got a lot of scalable leverage out of.
Product Development uses a mixture of leverage and personal effort. Leverage comes from using existing technology tools to do the work faster. This includes things like:
Computer Aided Design and Analysis tools
Reference Designs and existing technologies
Science and technology understanding already known
Research findings, existing data, other specialists
The above all came from past work that can be used to make current work more productive or more effective. I started my career laying out PCBs using tape. Now I wouldn’t dream of not using a CAD System. We use Altium Designer for Electronics Design Schematic Capture and PCB Layout. This is much more productive than the manual methods. As part of our ongoing Product Development activities for our clients we design and lay out a new PCB every 2 weeks on average and this is only possible with the use of CAD tools and the full leverage of our experience. In general I don’t want to rediscover the wheel, or the technological equivalent of that, in whatever area of Electronics Design or Embedded Software Development we are working at the moment. I want to take as much advantage of leverage as I can, and only apply the personal effort to what I can’t buy at a reasonable price.
Likewise we use proven Software Development tools that just work every time. It is not a good use of any of my team’s time to be working out why the latest release of something no longer works or breaks a project we had nearly completed. Of course we shouldn’t do that mid project anyway, but the legacy issue still applies. Clients do want updates down the track. So we use IAR tools for our Embedded Software Development. They work, are well supported, and we almost never have an issue of any kind with their performance.
So my conclusion is that non-scalable business activities are essential to modern economies. They just aren’t where the maximum profit potential is.
Let’s take manufacturing. We serve Australian Manufacturers by providing them with the new Electronics Designs they need to either remain competitive, become market leaders or bring a brand new product to the market for the first time. The manufacturing side is scalable although the Australian economy primarily supports lower volume or niche manufacturing opportunities. But once a design is in production and the process is running, they can scale up to meet demand within their capacity.
But our business activities are not scalable. Each design takes at least some personal effort to produce. But if I stop my non-scalable activities, then someone else has to do it. And if everyone does the same, if all the non-scalable activities stop, guess what – the scalable activities also stop!
Freelancer enables the buying and selling of non-scalable activities in a scalable way. It is a great service to those who use it and extremely good value. I agree with Matt Barrie that it is a good business.
Personal effort is still valuable
Warren Buffet said, “No matter how great the talent or efforts, some things just take time. You can’t produce a baby in one month by getting nine women pregnant.” Some things cannot be sped up by adding more resources. This analogy works well because we all know this is the case for pregnancy. Many other things are also like this. It will take generations to get peace in some parts of the world. Mindsets cannot be undone overnight. And it takes time to create economic frameworks. Successive Australian governments have spent 50 years working toward an uncompetitive Australian Manufacturing industry. This will not be undone with one policy initiative or one statement of a change of approach. It will take time and personal effort, by those with a vision, to make it happen.
So my belief is that personal effort is not only still valuable, but still essential, even if there are limits to how much I can scale it. I agree with Matt that it isn’t going to make me as rich as his approach will make him, but I’m not just in it for the money. For me, it is not bad, it is essential.
The link to the full article is no longer available.
The twin pillars of modern business are Greed and Ruthless Efficiency according to the Harvard School of Business. If this were an organic process, we would call it cancer. Ultimately it will kill. We need a better model and we need better values. Greed and Fear are the enemies of many a good thing.
And if you were wondering where my favourite business quote comes from, it is from Aristotle, some 380 years B.C.
Want a great career?
And finally, a Ted Talk on “Why You Will Fail To Have A Great Career”! OUCH! But is it true?
This is an excellent presentation that challenges many of the common assumptions about careers. But there is hope and Larry Smith explains both the challenge and the solution.
The idea for this post came from an interesting article by Bryan Murdoch who also writes a blog on technology topics. In the article he looked at why some developers can be Averse To Change and made some interesting observations about why that is so. One of those conclusions I agree with very strongly.
Before I come to that, let’s look at the basics of the Embedded System.
An Embedded System is a computer that lives inside a system and is dedicated to that system. It has specific control functions and can be quite simple or quite complex depending on the system. An Embedded System therefore has Electronics Hardware that Embedded Software runs on.
Electronics PCB
The Electronics Hardware can be as simple as a tiny 8 bit processor such as the Atmel ATtiny13 or a full blown Intel multi-core processor. But the key is that it is dedicated to that system and not a general purpose computing device such as a Windows or Linux PC that we just happen to be using for that purpose today and can use for something else tomorrow.
Electronics Hardware is not generally reconfigurable in the field and where it is, such as FPGAs, it is really the software control portion that is changed and not the underlying hardware itself.
Embedded Software
Embedded Software
The Embedded Software is therefore the software that runs on the Embedded System. This can be as simple as a few lines of assembler through to a full Information Kiosk product running on Windows Embedded. As usual with software, it can be anything. We are not going to focus on what it is, but why we prefer to use Software for much of a modern system’s functions.
Why Software?
The real reason for the focus on software, is that once you deploy the hardware, the only thing you can easily change to improve it is the software. This is one of the core points made by Bryan Murdoch that I agree with.
Another point he made in a post on Software Cost is that software becomes more valuable and more usable when we make the effort to make it simple, testable and compact. This makes it more readily reusable and also more easily maintained. These are two life cycle costs not often considered at the front end development phase of a project. It is also a good reason why the number of lines of code is not a good indicator of the real value of a piece of software.
Product Development
So this is where the rubber of the New Product Development process hits the road. Amongst other things, you have to be able to decide what you will do in software and what you will do in hardware. And it also depends on your core competencies as a company and those in your supply chain. During the development of the XBOX processor Microsoft told IBM that they were a software company and so any issues with the silicon they would fix in the drivers. This was done to reduce the development time frame and fits with the comments from Bryan Murdoch about one of the primary reasons people use software, its changeability. It also played simultaneously to both IBM’s and Microsoft’s strengths and was a smart business move on Microsoft’s part.