 |
Article:
 |
 |
The Blacksmith and the Bookkeeper, Part 2
|
| Subject: |
To quote Mark Twain, "The rumors of my death have been greatly exaggerated" |
| Date: |
2004-10-16 22:22:37 |
| From: |
developerdude |
|
|

|
As others have pointed out, our demise has been predicted for at least a decade - usually as a result of outsourcing or automation, or a combination of both. VB was supposed to allow non-programmers (usual example was business or process analysts) to develop software - the result? A truly terrible and unmaintainable mess. Those projects alone are enough to keep people like me in the green for the next decade.
It takes more than understanding the problem to explain to a computer how to solve it.
Yes, we have made progress in software development, but it is slow - oh so very slow. Where hardware in the last ten years has increased in speed by almost one thousand times, the productivity of developing software has increased by maybe 20-50% at best - and the day when a computer can automatically develop a non-trivial software system to solve a problem, that hasn't already been solved in software, is a long ways off - a long ways.
The day when a person who isn't a software developer can use a software program to develop a software system to solve a problem, any software problem, without writing major chunks of code, is still a ways in the future - quite a ways. And yes, I have played with things like BPEL and other plug-n-play systems - and yes, they are really cool and productive - as far as they go. But to declare that they are the end of my profession is highly premature.
As for outsourcing/offshoring. This is something of a fad. Already, after just a few years, many companies are pulling back their processes from offshore. Also, those countries, such as India, where outsourcing was so inexpensive at first, are already seeing huge increases in costs as the people there are demanding (and getting) higher and higher wages. Some are seeing their salaries increase by 50-100%. Of course, they are still less expensive, but the incentive to offshore is decreasing, not increasing.
Personally, I don't have a problem with offshoring - if someone in India can do my job for half the money, then more power to them. I would rather have them earning that money than my tax dollars going to them via foreign aid and mostly winding up in some corrupt bureaucrat's pocket.
Eventually the supply and demand will even out. Offshore development efforts will stabilize in number (percentage wise). Meanwhile here in the USA, the jobs are already coming back. There are a number of reasons they went away:
1) The dot com crunch where a lot of companies that never should have existed (and some that should have) suddenly went away. That dumped a lot of developers on the market and for a while it was really hard to find a position. I went for two years without work of any kind. But it is coming back now. It will take a while for the market to eat up the surplus that still exists, but recruiters are already finding it difficult to fill some positions.
2) The economy went bad, and not just the tech industry, but the whole economy. Everybody had problems finding jobs. But that too is coming back now. In fits and spurts, with occassional stumbles, but it is coming back. It will probably never be like the peak of the dot com era again, but it will come back.
3) Offshoring ate up a significant percentage of what jobs there were to be had during the crunch - but a lot of those jobs are non-interesting maintenance coding jobs on legacy code bases which will eventually die out as they are replaced. Some of those jobs are also core algorithm jobs, which, when the algorithms are polished enough, will mostly go away also. Finally, what happens to the offsore jobs when software development automation does come? You guessed it, those jobs will be the first to go as they will be among the first to be automated. If I were in India and a software developer, I would be working on the automation systems, not the boring legacy maintenance coding.
4) Y2K came and went. A lot of development effort was spent on that problem, and most of that has gone away.
As for the number of students in software engineering decreasing, that argues for increased demand, not decreased. It means there most likely will be a shortage, not a glut.
Finally, the statement that "Moore's Law all but ensures that genetic programming may effortlessly succeed where other approaches to AI have yet to; it is, perhaps, only a matter of more compute cycles" betrays a total lack of understanding of what it takes to arrive at true AI, and it isn't faster computers (although they don't hurt). We really aren't that much closer to AI now than we were ten years ago, and our computers today are a thousand times faster and half as expensive.
We don't need faster computers to achieve AI, we need a better understanding of what intelligence is first before we can achieve it, and for the most part we really don't have a clue what that is yet.
Comparing software developers to bookkeepers and blacksmiths, the author made the observation that bookkeepers have to deal with an almost infinite combination of business transactions - and that is just within the realm of business and accounting.
Software developers have an even larger set of problem domains, each with at least several different ways to solve many different problem sets - ranging from mapping the human genome, to accounting, to managing taxonomies at several different levels of enterprise systems. I could write volumes just categorizing the problem domains and different solutions for which software has been developed, and we haven't even scratched the surface yet. There is a whole undiscovered world out there of problem domains for which software is yet to be written.
That is what I love about writing software. When I started almost 20 years ago I wrote software to analyze the performance of a WAN system that bounced it's data off meteorites in the E-Layer, then I worked for a voice mail company, then a company involved in genetics research, then I developed software to track therapy results for spinal trauma, then I developed software for the publishing industry, and now I am writing software to manage taxonomies and meta-schemas. Who knows what I will be doing ten years from now, but it is a fair bet it will be writing software for some interesting problem domain. |
|