As part of my profession it has fallen on me once or twice to quantify the differences between the two roles, if any. I have written a white paper and a couple of advisories on this subject and if I could post them here, I would - contractual obligation and client confidentiality unfortunately forbids it. So I will attempt to the best of my ability to explain a few conclusions that a few focus groups made up of business representitives, developers and I managed to come up with.
This needs to be split into at least two areas of consideration:
- Past and present situations.
- Corporate and personal expectation and reality.
(and various others… but the above encapsulate most of it)
In the days of yore, developing interactive non-static web applications tended to be the province of C++ developers via the CGI standard of the HTTP protocol. This required an in-depth knowledge of communications and the servers OS. Later this progressed to Perl implementations which started to allow abstraction of the hardware layers from the implementation allowing greater productivity. However Perl as a language suffers somewhat from a geeky image and never really got the popular vote.
It wasn’t until PHP, ASP and their ilk that web development started to come to the masses. ASP (with VBScript/JScript) and PHP are both exceptionally well abstracted from the hardware and only require a superficial knowledge of the underlying systems to be productive. Due to this, pretty much anyone who could string together an if statement and understood basic algebra could start creating dynamic websites.
More recently this is beginning to change again. Websites are beginning to look and work like applications (SaaS is a good example of the future) and the distinctions between Web and Desktop applications are beginning to blur. Developers are being required to have more than a superficial understanding of the hardware and systems they are using and this is actually beginning to become a problem that business is starting to notice.
The cohorts out there are beginning to mostly polarise into around four factions.
- Designers who became web developers who stick to their preferred technology (e.g. PHP/ASP) no matter where it takes them
These individuals are usually those who are self employed or employed by smaller firms. Most of the larger corporations are beginning to ignore this group as many see PHP and ASP as inadequate.
- Designers who became web developers going back to near pure design.
- Developers who became web developers who stick to their preferred technology no matter where it takes them
- Web developers or developers who became web developers going to near pure software development OR moving into SaaS, SOA and related technologies.
In basic conclusion to the question
“…Is there a difference between a Web Developer
and a Software Developer?...”
In essence no, a software developer is a software developer, web or otherwise. However, if you consider ‘Web Development’ to be different from ‘Non-Web Development’ then historically yes, there is a difference, one that is beginning to blur.
A few years ago, Web Developers generally required less technical knowledge. Although the larger the system being developed, the more technical knowledge required, and coincidently this seemed to tie hand in hand with a scale that went like this:
The smaller a system, the more PHP, ASP and their ilk was used.
The larger a system, the less PHP, ASP and their ilk was used.
As applications got bigger, COM/COM+, Java and more recently .NET got used more, and this requires much more technical knowledge than that required to create a site using PHP, ASP and their ilk.
These days as ASP.NET and equivalents are taking their share of the web, higher skill levels are required if you want to go beyond the productivity basics supplied by their respective vendors.
As always there is the question of scale, with scale come’s complexity and that’s the basic truth of it.
Much of my work more recently has been to do with repair. It is an unfortunate trend that businesses and technical teams underestimate the cost and requirements of using the newer technologies and they can easily become out of their depth.
Teams who have happily worked for a decade with the script based technologies with a smattering of back-end components have been rudely shocked by the differences when attempting upgrades. Unfortunately there is also a growing number of developers who are amazing with the older web technologies that are beginning to flounder, and it’s a sorry thing to see – especially in the UK where training is a rare commodity.
As a personal view therefore I must say that yes, there is a difference and it costs business a lot money. Hopefully time will remove those differences.