I spent a decade working as a technology professional in public media. One of the themes that was often repeated was that everybody - no matter their role - was “in fundraising”. Whether we actually worked in the fundraising department or not, we are all responsible for helping to bring in the bucks, one way or another. In reality, this didn’t translate to much, other than being encouraged to keep it in mind and to volunteer now and again to take part in pledge drives and such.
It’s not done just to “raise the level of intelligent dialogue and improve collaboration between the various teams within the company,” as FreeCause CEO Mike Jaconi said in the article. It’s also done with the expectation that everybody will produce real, useable code. In addition to the required training, all employees must also participate in developing code for either a new feature or improved functionality. They’re also hoping to offload some regular “mundane” engineering work, so that programmers can focus on “high-level” tasks.
As a former developer, project manager and technical lead, this seems nuts. I totally get the concept of requiring everyone in the business to have some basic, working knowledge of what the business is built on. Requiring employees at a company like this to get some basic, high level training in programming concepts, application architecture and even some language-specific basics is, I think, a fine idea. It can't hurt, at least.
However, I think this particular approach is a bad idea for the following reasons:
1. You’re asking - no, requiring - people who have never coded and (likely) have never wanted or been trained to code, and who may not have a good aptitude for it, to code. Putting employees in this position can cause stress and unhappiness and, ultimately, isn’t likely to produce a happy workforce or good code.
2. You’re asking - no, requiring - professional programmers to teach, train, and mentor non-programmers. Just like not everyone wants to, likes to or has an aptitude to code, not everyone wants to, likes to or has an aptitude to teach. Again, unhappiness may result.
3. It’s one thing to ask non-programmers to learn some programming basics and even try some actual coding, it’s quite another to require them to create or support production code. That’s just asking for trouble. Programming is a profession that people study and practice for years to master. Plus, the real programmers at the company are the ones who will have to clean up any bugs or problems with the code written by the non-programmers. As a former developer, I would not have been happy at the thought of supporting code that was being written by the HR department. Better I spend my time on “mundane” tasks than cleaning up someone else’s coding mess.
Back to my public media experience, while we were all encouraged to learn about fundraising and participate when it made sense, they were not about to ask a web developer, accountant or network administrator to court a major donor or write fundraising copy. That was left to the real professionals, people who had devoted educations and careers to learning that craft.
There’s a reason you don’t see things like:
- Pilots training flight attendants how to fly so they can handle the occasional takeoff or landing
- Plumbers teaching their office managers how to work a snake so they can come out to your house and unclog the shower drain
- Ryan Seacrest giving hosting lessons to American Idol grips so they can fill in for him early in the season
I exaggerate and jest, of course, to make my point. Ha! Honestly, nobody could ever fill in for Ryan Seacrest.
Seriously, though, I think this is a bad idea, but that’s just my opinion. Maybe it’s working really well for them, in which case more power to them. Maybe they’re onto something. But I doubt it.
What say you?