September 20, 2012, 11:53 AM —
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: