After Kathleen worried about losing the hobbyist programmer on .NET, Rory came back with the question “Should the hobbyist programmer matter to Microsoft?” His thesis, in a nutshell, was:
I say that we don’t worry about the hobbyists – don’t dissuade them from coding in .NET, but don’t cater to them either.
I understand where he’s coming from, but I think that the terminology is confusing the issue. When we talk about “hobbyist programmer,” it evokes images of guys tinkering in their garages or in their basements on the weekend. And, yeah, maybe if it was just the equivalent of a bunch of guys (or gals) building model trains or making furniture or rebuilding old cars, it wouldn’t matter so much. But the reality is that the hobbyist programmer doesn’t just program on the weekends – they’re also programming during the week at their “real” jobs.
Before I started working on VB, I worked on Access. And I cannot count the number of times that customer testimonials started along the lines of “I was fooling around with Access one day and managed to write this small app to help manage my group. Once my department found out about it, they started using it to manage the department. Now my whole company uses it!” One of the key aspects of Access’s success was this kind of “viral adoption” where some tinkerer used it to solve some local problem that ended up solving a company-wide problem. The same holds for VB – lots of VB applications in corporations started life as someone’s side project. As I put it in a recent presentation, “Throwaway applications have a way of becoming mission critical applications.” And where do those throwaway applications come from? Hobbyist programmers.
With the spread of computing into more and more industries, the people who don’t consider themselves programmers become more and more important because they’re the beachhead for “real programming” to make its way in. For example, the throwaway applications that hobbyists write ultimately helps drive demand for professional programmers to come in and “professionalize” the applications so that they scale correctly for the corporation. Also, as hobbyist applications make companies more open to the benefits of technology, they open the door to commercial software that can augment or replace the homegrown applications and maybe do a better job. And, of course, hobbyist programmers usually need lots of help, which drives demand for websites, magazines, books, consultants, etc.
So, in much the same way that small businesses serve a vital function in keeping the economy going so that large corporations can thrive, hobbyists play a vital role in sustaining the ecosystem that supports the professional programmers. Even if the professional programmers don’t always appreciate that…
I teach ASP.NET classes and a good percentage of the students do this sort of thing full time at their jobs, but almost every quarter I have a student or two who works in a traditionally "non-computer field" (last quarter a student worked at a lumber company), and they are the "hobbyist programmer" at the company, who every now and then creates a little project that gets adopted by everyone.
Many people formally trained in computer science sort of shun VB, thinking it inferior and the reason why there are poor programmers (because it lowers the bar, so to speak), but I like to look at how it’s really improved productivity, opened up new jobs and opportunities, and helped push along the economy.
Thanks for hitting the semantics issue of this. What I said was hobbyist/part-time programmers the first time I used it, then did some shortcutting later to work with space limitations. I was looking for a way to talk about all those people that live and breath other stuff in addition to programming.
But the problem is companies become used to the quick development time of Access and Excel-based applications. The business people don’t understand the value of all the "ilities". They don’t understand that professional programmers know more than just syntax. I’ve seen so many hobbyist programmers think they can get up-to-speed programming in a week or two.
I’ve seend several of the line-of-business applications in Access and Excel. They were not scalable, broke down almost daily, and were maintained by 1 or 2 of these hobbyists.
But when I was part of a team to help port those applications to .NET, and make them scalable, reliable, etc, the business people choked. They were expecting 1 day turnarounds on things, and would complain about the smallest little crap (like I want to press Spacebar to do X) and did not care about the system being reliable and scalable. We reduced the response time of 1 system function from 2 minutes to under a second, and they yawned (though they complained about the 2 minutes before). Then they wanted to talk about some Access gadget.
Pingback: -:[web caboodle]:-
I agree that lots of side-applications in Access and VB have gotten morphed by businesses into mission-critical apps. Of course, one should say that with a shudder in one’s voice, and with a general feeling of nausea. Everyone is at fault here. The managers, of course, are the jerks who could care less what happens to the company as a whole as long as their day seemed to go by easier TODAY. But I also blame the semi-computer-literate folks who probably saw the disaster coming but were to weak to hold their hand up, for once, and say STOP — JUST STOP!!! FOR THE LOVE OF GOD, STOP!!!! Finally after 4 years of some gawdawful Access piece of ^&$^&$)(*& getting promoted to ever higher circles of influence, an outside consultant gets hired to try to make sense of it all and instant-presto-chango turn it into a truly Enterprise-worthy application. Of course, he/she is roundly hated by management and co-developers alike, angry about the high hourly rate being charged. But the consultant is paying dearly too, as managers who expect 1-day-turnaround (after all, the first dude who created the unspeakable thing seemed to create it awfully fast) impatiently wait for the silver bullet.
I’m one of the ‘hobbyist’ but i come from different background. Perhaps this is wrong place to rant, but coming from the script world (php/perl/etc) i would definetely love to see a c# style language but one which would be more allowing to take the more script style approach to coding, and also allow the coder to forget things like null checking and making threading a lot more easy, even if it cost 10% of performance. I did some c64 basic and qbasic though, but that was long ago. Leap from qbasic to vb long ago was a bit too much for what i had time back then, otherwise i could not be writing this.
Viral Adoption: Who’da thunk?
Can’t keep a Good Meme down!
Paul, it sounds like you’ve got a real clue here. Wish you and the team would have listened three years ago. What a waste it is to lose one’s market, huh?
Ah well, my Inbox is always open…
The link I referenced above has moved to a new domain and has a cleaner URL:
Pingback: Mike Schinkel's Miscellaneous Ra