Please bring your seat backs and tray tables to their upright and locked positions... It's time to get down and dirty. So, don't blame me if you get offended by anything within the following post. I'm letting it all hang out and I'm not stopping for the weak at heart. So, send the kids to bed, folks - it's time to bring the pain...
Kathleen Dollard submitted a guest opinion in the April issue of Visual Studio Magazine. Anyone who's ready my posts (1, 2, 3, 4) knows where I stand on this issue, but this article just got the blood pumping and I had to post something. Recently, it seems that the term “hobbyist (part-time, occupational, etc.) programmer” has become synonymous with VB developer. While, I'm sure references have been made in the years-gone-by, I keep seeing the same topics brought up with respect to VB and .NET. I'm starting to get sick of it!
Kathleen explains that the hobbyist programmer (let me refer to them as occupational programmers, or OPs, from now on) acts as a symbol for where the field is going. I have to say that I disagree. She claims they “are being cut out of the picture,” and, “That's a danger for the rest of us.” That's crap. OPs tend to lack the skills that set good developers away from the pack - not always, but I have yet to meet one that brings a unique skill to the table. I'm not saying that OPs are useless, however - don't read it that way. From a business point of view, OPs can prove to save your organization a lot of money. However, this savings is usually only short term. Long term goals and technology updates tend to increase costs nearly exponentially due to poorly written software or a general lack of experience. Again, I'm not saying that this applies to all OPs, but most of them.
Kathleen was right, however, “it's becoming difficult for any of us to remain competent with technology.” I completely agree. And, that's why we're software developers. If IT didn't change, or was so easy that anyone could do it, we wouldn't be here. Having a known “hobbyist” group of developers just degrades the career. It says that “anyone can do it.” Well, the truth is, not everyone can build software...correctly. There is a lot to software that most developers don't know and/or understand - and most of that is in the realm of best practices. That doesn't mean that they can't get by without knowing it; but, the more you know, the better off you are for making technical decisions.
Nobody knows everything about software - and nobody should try. But, also, nobody should build anything by themselves. Key roles are necessary to bring necessary skills and experiences to the table (i.e. architects, designers, developers, and DBAs). All roles are ideal, but not always available. So, what we've tried to do is stick one person in all of them. The OP is an example of this. We need to utilize everyones' skills for what they're worth. And, in the same breath, we need to utilize real developers for doing real development.
Software development is a serious job. Do you really want a bank teller trying to create software that manages your money? Hell no, you don't. You want a real software developer that knows what they're doing. Imagine if a nurse created software to run a pacemaker. Would you use it? Your life would be in the hands of a nurse that claimed s/he could do some VB6 (let's face it, most OPs are VB developers). The reason we have so many projects that are behind schedule and over budget are because of people who don't know what they're doing. (I'm not blaming these problems solely on developers.)
Right now, a lot of jobs are going overseas. I think getting rid of the OP would help the field. Think about it. If you get rid of all the people who aren't completely dedicated software development, that would open a lot of jobs. Then, those people could focus on whatever domain their experience is from. If they need a job, they can become business analysts (which I've been meaning to post about) and work with architects/designers to model business processes and other applicable domain information. That's a place that could use a good staffing with heavy domain knowledge augmented by mild technical knowledge.
So, in my opinion, software is for adults. When kids play with fire, they get burned. And, that's what's happening in the software industry. OPs are trying to develop software and aren't able to keep up and/or comprehend key topics (i.e. OOP). There are tons of jobs in the IT industry, and OPs have a place, but it's not in front of a development environment.