The Line Between Amateur and Professional
Sep 28, 2006In the business of software development I’ve found time and time again that the definition of “Professional” is very ill defined. This leads to people labeling each other as Professional or Amateur in a seemingly illogical fashion.
In the world of software development if you are a VB programmer then you must be an amateur that uses a toy language. If you use Java then you are a real programmer and very professional. Ruby on Rails is only used by amateurs since it’s not ready for real business web applications yet. Your application is either Enterprise ready or just a hobby application.
If you are professional then you are to be admired. Creating robust, usable, bug free software is what you do day in and day out. If you are an amateur then you create fragile software. Software that will crumble in the face of doing even the most routine tasks for its users. If you an amateur then you are to be shunned, because if you were worth your salt you would be out there creating professional software.
I find this common line of thinking limited. Everything I’ve just mentioned is based off opinions and caused fervent near-religious debates on the topic. So I propose to scale back the term “Professional” to a much simpler meaning.
You are a Professional if you accept payment for your services.
This works very well in sports. If you play without getting paid you are an amateur athlete. If you get paid to play you are a professional athlete. Simple as that. This does not mean that all professional athletes are better than all the amateurs. Nor will all talented amateur athletes turn professional. All a professional athlete does is earn money for being an athlete.
Why does the same criteria not apply to software developers? A developer’s skill does not hinge on their label as a professional or amateur. True, most talented developers find a way to earn living by coding, but talent is not a result of being professional or amateur. Just as there are professional developers producing shoddy software there are amateur developers producing amazing things.
Open source software is a great example of this phenomenon. Many popular software development tools are created by people who receive no compensation for their work. The best part is that there are many cases of free open source software simply being better than their commercial counterparts1.
We should not be determining the value of software and skill of its developer by the tools used, or the job title held, or salary earned. We would be much better served to simply judge software by how well it solves the intended problem and the developer by their accomplishments.
1 Compare the Firefox, Linux, Eclipse, and MySQL to their commercial counterparts.