Marks of a professional developer
Several of my clients have described horror stories of working with software “developers” who took them for a ride and ripped them off. In other cases, websites and scripts they’ve had built are confusing and convoluted.
So what are some marks of a solid, professional software developer?
Here are some things to look for:
Version control usage: Some form of version control is absolutely essential for a programmer. If not, you will be left with a proliferation of vaguely named files (.bak /new/old/backup_new_old) for versioning. A good version control system lets you rollback changes and provides a backup for every change in your project if ever files get deleted or corrupted. There is no good excuse for not using version control.
So ask: “What kind of version control software do you use?”. Mercurial and Git are the two most popular ones.
Open source awareness: A professional developer will leverage Open Source software and libraries. Why? Because it saves you money and pain in the long run.
Money & pain... because Open Source software:
- has solved thousands of problems already, and...
- tested them with hundreds of users, and...
- fixed every possible security hole, and...
- is performance conscious, and...
- and is documented throughly
Why should you be charged thousands of dollars for an inferior, hard-to-maintain product created by one programmer, when an open source solution exists that could integrated in a fraction of the time and cost, and will be stable and very secure and continuously tested by an active community? Open source is a good thing!
So ask your developer: “Have you worked with any open source software recently?”
Project management: A professional developer will maintain a project outline with steps, details, snippets of information and relevant documents in an organized fashion. It maybe in a home-brewed wiki format, but at any time he should be able to pull up his next 3 steps and his last 5. In an unstructured project, details get missed and deadlines start to slide. Project management allows for steady progress and reasonable estimates.
Ask your freelancer: “Could you send me an outline of your plan to approach to this project?”
Framework familiarity: Frameworks are a godsend -- to a professional. They allow for rapid development and secure code. It helps you REUSE code. So a tweak is just that – a quick fix -- not a change across 50 files because code has been cut and pasted all over the place. Frameworks are MORE SECURE, and they follow widely accepted standards. They have a learning curve, but not knowing frameworks means your developer has not kept up with the positive developments in the industry.
Ask: “What frameworks do you like? And why?”
Tools will tell: A good code-crafter has solid tools. A professional IDE (development environment) is a good start. Why? Because an IDE will help you avoid mistakes and reduce coding time (Code-completion and syntax coloration). It helps you fix complex errors (visual debugger). It integrates with version control and file upload (secure transfer to your website). It can even integrate testing so that it makes your software rugged and usable for high loads.
Ask: “What kind of software development tools do you use?”
Documentation availability: Both in the code (“comments”) and in a general sense, documentation is extremely valuable. If you want to find another developer to rework something, without documentation, you are really at the mercy of the original developer
Ask: “Will you be providing me with an overview document of this project?’.
Obviously there are more things to look at, but this, in my opinion is a very good start. Happy hunting!