In the world of freelance web developers / web consultants, there seems to be no clear definition of this role and what the person’s professional background and knowledge base should include. To help clarify roles, I will describe the types of roles that I have encountered and will humbly suggest a name for the role. I am not trying to put down any role, and on any project there is an overlap of who can work on a task.
web developer A) A person with NO professional programming background in any compiled languages such as C/C++, Java, Cobol, RPG, Visual Basic, etc. This person has never worked as a full time programmer. This type of person started building static personal websites for themselves, friends and family. After a period of doing purely static websites, they wanted fill-out forms and some dynamic pages. So they picked up a book and taught themselves Perl, PHP, CSS, and Java Script. After a period of time, they managed to build up a client base of non-family members.
web developer B) A person with a professional background in graphic design and/or multimedia design. Typically this type of person worked full time on traditional media projects, such as an ad campaign that included a catalog, brochures, a video, and flyers. At some point the projects would include websites as well as the traditional media elements. So the initial focus would be making sure everything has a consistent look and feel, layout, brand image, fonts and graphics. After a period of doing purely static websites, their clients wanted fill-out forms and some dynamic pages. So they bought some books and attended training on PHP, CSS, Java Script and Flash.
web developer C) A person with a professional background in a compiled programming language, such as C/C++, Java, Cobol, RPG, Visual Basic, etc. This person worked full time as a programmer/analyst, and worked on projects where they wrote the business requirements, technical requirements, coded an application and created the database objects ( tables, views, indexes, etc) to support the application. At some point the projects would include a web user interface as part of the client requirements. So their initial focus was on maintaining the integrity of the whole application and the database, and not having to write duplicate code. After a period of creating highly robust and functional web applications, their clients wanted more beautiful and easy to use web applications. So this person would buy books and teach themselves CSS, Java Script, Image editing software.
I would suggest the following role names:
web developer A ==> web consultant
web developer B ==> web designer
web developer C ==> web developer
Some things that none of these roles should do: Never manage or change the infrastructure. This is best handled by an infrastructure dept of medium to large companies, or a reliable ISP for smaller companies. All three roles should be able to deliver a product ( a functioning website) to the client, ready to use. They should provide a list of technical requirements at the very beginning of a project to the infrastructure team, or select an ISP that provides it. Such a list may include: Linux, Apache required, JDBC access to a database. Another list may include: Windows, IIS, .NET, ODBC access to a database.
Hopefully most people know their professional limits, and bring in appropriate expertise as needed. Some horror stories show this is not always the case:
Background: A freelance web consultant was hired to build a website that was mostly static, less than 10 fill-out forms each with a script and database table, shopping cart with less than 15 items, and a chat area. The prototype was graphically beautiful, and very easy to use. The client was pleased and gave to go ahead to use the new website to replace the old website. The client already had a well-advertised domain name and wanted to continue using it. The client also had an established and reilable ISP, as well as an internal IT staff.
Outcome:
After the prototype was made live, email stopped working entirely ( inbound and outbound) for the entire organization for about 3 days. The website and DNS were hosted on a new ISP, under an account in the name of the consultant. So the client’s IT staff was not allowed to talk to the help desk, or make any changes at the new ISP, because the ISP account was not in their name. The account was also used to host the consultants other customers. The consultant also bought a new domain name, similar to “clientname-test.com”. The legal owner of this new domain was the consultant.