Software development, just as science fiction writers predicted some fifty years ago, is becoming more and more common activity people are engaged in. Software drives not just traditional computers, it now propels literally everything plugged in; phones, cameras, TVs, cars, even washing machines. The knowledge of at least one simple programming language soon will be as essential as basic writing skills. Why? Because as the complexity of average software increases, professional programmers become less affordable and less accessible for basic programming tasks.
Let me explain.
Just recently a friend of mine was asking for some help with Excel. He needed a fairly intelligent macro for some intense spreadsheet transformations. I had to explain that it would probably cost him about six hours of programmer's time and no programmer will do it for less than at least $60/hour. Actually... no programmer will do it. Period. Because it is boring. Because they have "better things to do" for $60 an hour. Outsourcing ultimately is not going to help because the population of laptops, cell phones, TVs, microwaves and other programmable devices is growing much faster than world-wide population of professional programmers. Therefore nobody will help you with your basic programming tasks.
And you will always have some basic programming tasks, simply because more and more of what we do includes programmable devices. And off-the-shelf components created by professional programmers will not keep up. Charging your customers money, for instance, used to be a purely mechanical operation; you'd put a smile on your face, stick your hand out and a customer lands a $10 bill on your palm. Now you would want to set up a merchant account hooked to a payment gateway all integrated into your accounting and possibly other software. And you inevitably will want something more, something custom from your (without a doubt) highly customizable software. Why? Because it is customizable. But mostly because you already know: what you want is possible. Because it, whatever you have on hands, is programmable.
And programmers willing to help you are getting scarce. The alternative? Learn to do it yourself. Visual Basic (or bash scripting - depends on who's reading this) should be next to English in an average school's curriculum.
Programmers are expensive. Geez... they are getting more expensive every year. And the software they build is getting more complex. And more essential to whatever you do. Starting almost any kind of company these days involves hiring programmers. Your business does not need to be in information technology, but you have to hire programmers anyway.
Now lets think about starting companies. Some of them get born, grow, transform, evolve and eventually succeed. But others miserably crash and burn. Books get written about those failures, articles get published and MBA students are getting fresh real world cases to study and learn from. They blame CEOs for their mistakes. They blame ineffective marketing strategies, strong competition and only god knows what else those MBAs are trained to blame failures on.
But you know what? I have grown to suspect that a lot of companies are failing simply because they hired dumb engineers. There are several factors that lead me to believe this.
First, as I said above, programmers are becoming more important as software becomes more vital to what most companies do. Therefore, the impact the quality of engineers has on business has grown substantially. Second, it is very hard to find good programmers because there are fewer and fewer of them measured in "PPD" (per programmable device). And finally, it is damn near impossible to tell good programmer apart from a bad one unless you happened to be an engineer yourself. And most companies are not started by engineers.
Do they teach this in business schools these days? Do they teach that dumb engineers will have an immense impact on your business? A sufficiently dumb engineer may hurt you more than most competitors will. When organized in loose formations, even in modest numbers, they can even kill an otherwise healthy business. I'll write some more about those blood sucking yet fascinating creatures a bit later.
You may label this post as "self important crap" and you are welcome to, but isn't it everyone's belief that his or her profession is the most important one? Similar to university professors who almost without exceptions believe their course is the most valuable.