Knowing Enough Programming to be Dangerous is Not a Good Thing.
First, let me start be saying I believe that everyone should learn how to program, the same way everyone should learn to read and write. In today's world programming is the new literacy, so everyone should spend some time learning programming fundamentals. That said, there is a big difference between being familiar with a topic (know how to write) and being a professional (being a published author).
Keeping that in mind, I always have a little bit of trepidation when I hear a CMO, CEO, etc. use the phrase "I know enough programming to be dangerous". If this means they know enough to know when to call in a professional and to listen to that professional's advice, that's great. If it means they want to be more "hands on", that can often spell disaster. I've talked about this phenomenon before, given the complexity of today's modern web frameworks, but I think it's important to underscore how important this is.
Becoming a professional in any serious field takes time, dedication and aptitude, something Greg Jorgensen underscores in his article, Sorry, Digital Ad Exec, I Probably Don’t Want To Work For You. His key points include:
- Programmers have worked hard to learn their skill.
- Not everyone has the talent or inclination to program [professionally].
- The grammar and logic of computer languages are not the big picture.
Missing the Mark
People who are hobby programmers, often make the mistake of misestimated the scale of a programming job. The disconnect often boils down to layered on complexity. In other words, to build an app with twice as many features it will take more than twice the time because of the complex interactions between elements. An application like Facebook (which on the surface may not even appear that complex) has required hundreds of millions of dollars in programming time, yet for the amateur, they may only perceive a few features that line up with code libraries they have worked with. This paired with the principal that simple is not easy, means that there is often a mismatch in perception and execution.
Home improvement stores have staked out a niche, encouraging people to tackle their own home projects. The infrastructure provided there helps guide people to make good choices about:
- how long a project might take
- how much it might cost
- whether they should do it at all
Unfortunately, there are no such stores for programming, and often getting the wrong people involved at the beginning of a project can be very expensive in the long term. Many people don't realize that large scale websites now cost in the hundreds of thousands of dollars to design and build. Starting with the wrong foundation, can mean a complete teardown later on. For some businesses this means it can be years before their poorly planned initial build can be funded and replaced.
Choose Your Vendors Carefully
Keeping the potential cost in mind, and the dangers of "doing it yourself", where does that leave a marketing person in need of a website? The answer is that they should find a vendor and choose them very carefully. Keep the following in mind and ask these questions:
- Will you outsource development to a 3rd party and if so, what projects have you successfully completed with them in the past? Outsourcing to experts can be a good thing, but you'll want to be sure the programmers being slated to do the work are tested professionals.
- Do you have a platform in mind or can you build on anything? People who claim that they can "build on anything" are being disingenuous. No company should claim to be experts at even a tenth of the available options out there, and honesty around this is important.
- Will technology experts be at the table for information architecture planning? In the same way you don't want to design a building without consulting with an civil engineer and getting permit approvals, bringing a technologist to the table during information architecture is extremely important.
Don't be Dangerous, be Informed
In the end, the goal of educating oneself should never be to "become dangerous". Instead I'd like to see a day where stakeholders come to the table claiming to "know enough to know when I need to bring in a professional". As a programmer, that's certainly how I approach house construction.