I’ve been a PHP programming consultant for over a decade. I have learned first hand what is out there. There are a lot of very good PHP programmers, however most do not know how to manage a project. They are good at programming tasks just not the business end. And of course there are the ones that should not be programmers at all.
I have talked to a lot of people who have had projects go South. For the most part I chalk it up to programmers who do not know how to manage a project. One of the biggest issues I find with my peers is the lack of communication skills. Oh, they are great company when going out to have a burger, however they do not do a good job of communicating when it comes to managing a project.
It is a vicious cycle
They get the specs from the customer and off they go to build out what they heard from the customer. Then they return 2 weeks later and the customer is surprised. The customer asks for multiple corrections and the developer runs off to work on the project some more. Then they show the project to the customer. The customer then asks for multiple corrections. This becomes a vicious cycle. At some point the programmer stops working on the project and does not return phone calls or emails. Then I get a call and hear this story.
This is a communication problem
Projects are hard. It takes lots of communication to flesh out what the customer wants. I take a two pronged approach. I listen to the customer and write up what they have told me. Once we both agree I understand I start the project. I do not wait long to get the customer involved. I keep the customer involved in the process. At first I may need to take some time to get the project rolling. Once I get the project to a point where I can get the customer involved I do so. I bring the customer in for project review as often as possible.
Keeping the customer involved serves two purposes
One, they know I am working on their project. Two, they get to give feed back at a much more granular level which means I will do less rework and the customer will get as close to what they want as is possible. This approach is win-win.
There are other potential problems as well
More than likely you may not know the consultant you are about to work with and they are going to ask for some amount of money up front. How do you know they are not some kid that does projects after class or some guy that is in between jobs?
What are some of the other things you can look for that will guide you to a viable consultant?
I’ve hired 2 programmers to work for me and 2 for another company. I have also worked with other independents on projects. It has been quite the learning experience.
From my experience I would look for several things
1. Are they really in business or is this a hobby, a side job, or something to fill the void until the next W2 job comes through. Some things to look at as proof they are really in business:
- Do they have a business license?
- Have they formed an LLC or a corporation?
- Do they have a web site?
- Do they have a business phone?
- How long have they been in business?
2. I look at experience and their skill set. Most corporations require a bachelor’s degree, usually in computer science or a related field. I look for proof of skills. What kind of history do they have? How did they learn to program in PHP? Even though PHP is widely used on the Internet, for the most part, PHP is not taught at the university. Something like 70% of the websites on the internet were written in PHP. Because PHP is not taught at the university, most PHP programmers are self taught. That does not mean they have not attended college or do not have a degree. It means if they learned how to program in college, they were taught programming using languages other than PHP. To me education is important. It gives me an idea of what they studied and what I might expect from them. That does not mean a PHP programmer who does not have a degree is any less skilled. Education is just a way to predict one’s skills.
One of the things I like to ask about is database normalization. This is a skill that is a must for an independent consultant. Having working skills in database normalization aid in designing an application. This is a very important skill to have as a PHP developer. I was working with a guy who was really smart and had tons of programming skills and was a really good Linux system administrator, who had no database normalization skills. This was a handicap because he was unable to define a project in terms of the database layout and how to modularize a project. He did great when given the specifications, he just could not create the specifications.
It is a jungle out there
You must be prepared or your project might not come together the way you would like it to.
I completed an AAS degree in programming, and a BS degree in Management Information Systems and Operations Management. I formed an LLC in 2007. I’ve been in business since September of 2006 and I work out of my home office that contains a land line dedicated to my business. I have lots of experience with PHP / MySql programming and managing projects.