Michael Flanakin's Web Log

Comments and complaints on software and technology in general

  Home  |   Contact  |   Syndication    |   Login
  159 Posts | 18 Stories | 210 Comments | 497 Trackbacks

News

This weblog is no longer being maintained. For the latest, check out www.michaelflanakin.com!

Article Categories

Archives

Post Categories

Image Galleries

Miscellaneous

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.

posted on Wednesday, March 24, 2004 9:40 PM

Feedback

# re: Save the Hobbyist Nanotechnology Engineer 3/25/2004 2:26 AM Paul Wilson
Well said.

# re: Save the Hobbyist Nanotechnology Engineer 3/25/2004 5:19 AM Julie LErman
Michael-
I don't think Kathleen is saying that the hobbyist programmer represents the symbol of where the field of programming is going. She makes the analogy of the canary in the coal mine. That canary is not a representation, but a weak and fragile variety of living/breathing thing. Canary is to hobbyist as human is to serious professional developer? Not that the hobbyist is expendable as the canary is shown to be in the old fashioned coal mining industry. But if the canary dies, it's a good and early warning sign that there is something wrong in the coal mine. And that is what I think Kathleen is trying to say regarding the importance of watching how these changes are affecting the "hobbyist"/ "mort" programmers.

# re: Save the Hobbyist Nanotechnology Engineer 3/25/2004 5:48 AM JonR
wow. completely alienating people looks like fun!

# re: Save the Hobbyist Nanotechnology Engineer 3/25/2004 8:27 AM Michael Flanakin
Julie,
You're right. I definitely mis-phrased that. But, my point stays the same. I believe that, if OPs start dying off, that doesn't mean that the rest of us need to worry. That just means there will be less room for slack, which is good. It's about time our career field got more competitive. Competition brings out the best [and worst] in us.

# re: Save the Hobbyist Nanotechnology Engineer 3/25/2004 9:06 AM Tejas Patel
"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."

and how do you propse to do this ?

# re: Save the Hobbyist Nanotechnology Engineer 3/25/2004 9:18 AM Michael Flanakin
I'm not in the business of firing anyone. And, beyond that, I'm sure that most OPs are providing beneficial services to the companies they work for. So, getting rid of them might help other developers, but it would hurt companies relying on custom software. Why? Because they'd have to spend more money for more skilled developers. You won't pay a OP the same as a lead developer. But, I'm sure you can see where each has a benefit in their own right. The problem is when you try to make the OP fill both positions, which is what a lot seem to be doing, as far as I've seen.

I don't think I'd advise to any company that they should fire all of their OPs. If they did that, they'd have to be ready to bring on more expensive developers. As long as all of the key roles are fulfilled and the appropriate checks and balances are in place, most companies should be fine. In the same breath, however, I wouldn't shed too many tears to see the OP move into a different role within the organization. Personally, I'd like to see them in true business analyst roles where they'd combine a mix of their domain and IT knowledge. This, is where I feel the OP should be and would be most beneficial.

# re: Save the Hobbyist Nanotechnology Engineer 3/26/2004 10:32 AM Duncan Lamb
The promise of technology has nothing to do with best practices and certainly nothing do with whatever you might mean by "there is a lot to software that most developers don't know and/or understand."

The power of technology is only realized by people that can think outside of those constraints, not within them. I think anyone would accept that it doesn't matter what your culture or your first language is, it has nothing to do with being a programmer that can see things in a new way that rewrites the rules, and it has nothing to do with age either, or primary occupation if you want to go that far.

Want to see good programmers that follow best practices, are entrenched in a profession, have convinced everyone of their "serious job" and have all the hubris that goes along with it? Visit your nearest mainframe shop and have a chat with the COBOL crowd. Not quite the future I'm hoping for. And not exactly the kind of culture where new ideas are examined for value no matter how disruptive they might be.

# re: Save the Hobbyist Nanotechnology Engineer 3/27/2004 7:22 AM Kathleen Dollard
This turned out to be a really fun editorial becuase of all the ways people have flown off from it. That's really cool because the core fo the editorial was so simple. Julie described the canary metaphor well in her comment.

The threat obviously insn't poison gas. It's that the amount of time that's required to keep up which has gradually increased over the last 20 years. Of the feedback I've read (literally hundreds of blogs, comments, emails, etc), I don't recall a single person has said "you're wrong I am doing just great with only four hours of week learning new things."

Much of the feedback I've gotten involved the fact that non-hobbyist programmers, the kind of passionate people that Michael writes about, either feel unable to keep up, or feel the quailty of their lifestyle is tanking.

I just wish I knew how to address it, because I adore the rapid rate of technology change. I know code generation helps a lot, I know no one's ever bothered to do significant pedagical research for our industry, and I also know that those things alone won't fix the problem.

We disagree on the role of the OP/hobbyist in our industry. These are often the people that find the new applications of technology and that cross the techonlogy/domain barrier. Sure some of them right crappy code. Some full time developers wite really crappy code, and I've actually seen more of the latter. But that wasn't the point of the editorial.

The point was - how will this industry afford the training required today, and the greater training requrid tomorrow. Can you put four more hours/week learning new things next year?

# re: Save the Hobbyist Nanotechnology Engineer 3/29/2004 4:53 AM Michael Flanakin
From that point of view, I completely agree. Things are getting technically harder. But, at the same time, that's a good thing. Think of where we (humans) have gone since 1904, even. Only 100 years, but we've changed so much. Heck, the biggest changes have probably been since 1954. The way of life is to make things more complicated and grow with that. Survival of the fittest - only the strong survive. Evolution is a fact of life, and if you can't keep up, then you won't survive in tomorrows world. I'd be glad to see part-timers fade away if they can't keep up...heck, I'd be glad to see ANYONE fade away if they can't keep up. Making our field more competitive will only make it better in the end.

I do think that there is a limit, but I don't know what that is. As long as we have people smart enough to create new, innovative ideas, we'll have others who will slowly drop off the radar screen. One of the big jumps was people moving from VB6 to VB.NET. While the latter is far superior, people still couldn't make that jump. Complexity? How easy does it have to be? Software is complex for a reason. While any attempts to make software easier are good (i.e. beautiful IDEs and training), there will always be complexity to software. If you don't like it, get out of the field. Leave it to those of us who have a passion for it.

My biggest problem with the OP is that there are passionate people without jobs while the OP is creating questionable software. And, while I agree that "passionate" people can create bad software, too, this is just another selection process and those individuals will be weeded out with time.

Anyway, as far as the ever-increasing technology issue goes. I agree. I'm sure we could use more training and other things to decrease the level of effort to keep up-to-date. The thing that set me off was the title. And, if your focus was tech complexity, it was lost with me after the first 4 words.

# re: Save the Hobbyist Nanotechnology Engineer 4/25/2004 11:14 AM Robert Björn
I like your articles but I have to say I completely disagree with you this time.

I am very puzzled by your description of OPs as lacking passion. It has been my experience that developers that are formerly or currently hobbyists are significantly more passionate about software and technology than those who that are strictly academically schooled (some of whom entered the field mostly because the money was good before the dot-com boom as opposed to because of a genuine interest in the field). Hobbyists generally do not need motivation to learn new things and to keep up with new trends, programming languages or conventions -- they even do it in their own time!

Facing a choice between working with an "academic" or an OP, I would likely select the hobbyist -- precisely BECAUSE I want to work with people who are passionate and competent, and have an inherent drive towards technical elegance.

Obviously there are limits, and generalizations are difficult. There are competent and less competent people on both sides. When I use the phrase hobbyist, I am thinking more of the C/C++ hobbyists than people who experiment with VB (VB should have been left to rot a long time ago).

Regards,
Robert
(hobbyist, turned academic, turned professional)

# re: Save the Hobbyist Nanotechnology Engineer 4/25/2004 11:29 AM Robert Björn
Having read the article again, and now Kathleen's editorial as well, it dawned on me that perhaps I misunderstood the phrase "OP". I guess what it comes down to in the end is passion and interest, no matter what kind of background you come from. I do agree that casual, half-interested programmers are a liability to the industry.

Having said that, I don't think that software is necessarily good just because it was crafted by full-time developers. I am one, and let's face it -- we aren't perfect, and most of us have a lot to learn in this huge field of knowledge.

# re: Save the Hobbyist Nanotechnology Engineer 6/1/2004 8:19 PM Michael Flanakin
Robert,
I do believe that OPs (aka hobbyists) are passionate. I just think they have a different passion. The passion I'm refering to is the passion to create great software - no matter what its purpose or user-base. Passion within an OP's mind would be a somewhat watered down version of this. Basically, what I'm trying to say is that good developers follow good practices to get the job done. OPs tend to do what is the easiest to find and easiest to accomplish, whichever comes first. One who has a strong passion for software development will take complexity over simplicity - if/when it is the right choice. OPs don't always have the experience to know when that is.

With academia vs. OP, I'd rather someone to be an OP anyday. I feel worse about most academic professors than I do about OPs. At least OPs are doing something good - albeit misdirected, IMHO. But, perhaps this is just my one-sided opinion after dealing with overwhelmingly lackluster collegiate professors. Moreso than the professors, there has been a big gap between what is taught in the classroom and what is "faught" in the "battlefield." Don't get me wrong - I know that there are truly great professors out there. I just hope that the differences between what is taught and what is faught is better bridged than what I've seen in the past.

And, just to touch on academia a bit more, I don't even like the idea of requiring degrees for dev jobs. Trust me, most of the students I've seen shouldn't even be looking for computer jobs, let alone programming jobs. Again, this is probably [read: hopefully] a rare case.

And, in regards to your latter post, no, we are not perfect. A full-time developer can make as many, if not more - and lets be honest, worse - mistakes than a part-time developer. With that, I draw your attention to my late-night rant of questionable nature...
http://geekswithblogs.net/flanakin/archive/2004/05/19/5101.aspx

Thanks for your input

Post A Comment
Title:
Name:
Email:
Website:
Comment:
Verification: