When I sat down to write this blog, I only intended for it to be rather short. But then it grew, and grew… and grew. I’ve actually started and stopped writing this blog several times. And as an aside, I took this opportunity to comment on my education at RIT, and how it has prepared me for my current job.
Since I’ve been graduated and at Partners and Napier, I’ve realized several things about the field that I’m in. The most prominent is that a web developer wears many hats: software developer, systems analyst, technology expert, and ensurer of usability, to name a few.
how well did RIT prepare me?
Overall, my Information Technology education at RIT has taught me well in all of these areas. But, I do feel that the “web developer” concentration lacks in a few fundamental ways. The first, is that it is merely a “concentration.” I don’t think that quite does it justice, as concentrations within the IT major only account for 2-3 specific courses. To me, the web development concentration (and most of the others) should be separate lines of education within GCCIS; much how ANSI is. There is just too much extra material to cover in a few courses to become a student specialized in these areas. But, I realize this is much easier said, than done.
My second comment about the web development concentration, is that it does not teach the fundamental code management practices that will be necessary for maintaining large and complex websites. Nor does it place emphasis on what the title of this blog is: the fact that web development is very much akin to software development.
and on with the show
Make no mistake: When you’re talking about web development, you’re talking about software development, and then some. There are several major points I am going to make in this blog:
- We know more than HTML, and HTML is not programming.
- A web developer should be as competent a programmer as a computer science major or software engineer.
- We should have extensive knowledge of web technologies, and the impacts of application development on the web.
- Web developers must be highly versed in systems analysis and design.
Wow. So I just made a crapload of assertions. Let’s look at them each.
1. We write more than HTML
Let’s dispel that notion right now. In fact, a web developer is far more than a kid who can simply write HTML. A web developer, in the proper sense, can oversee the creation of a site from initial art concepts, to technical implementation, to QA testing and client acceptance, to final production launch. We can make GUI decisions, design the database, and architect the code. Knowing the markup language HTML is only a fraction of a web developer’s skills, and most will know more than one programming language.
2. A web developer should be as competent a programmer as a computer science major or software engineer
Why? Since I just dispelled the notion that we’re only capable of HTML, let’s also dispel the notion that a web developer is either a lousy programmer, or simply can’t program at all.
true web developers must be able to program in an object-oriented paradigm
Web applications require just as much thought, planning, and architecture as any other aspect of software development. Because of this, writing quality and robust code is essential. What good is your code if other developers can’t understand it, or extend it? Not only that, but writing applications that interact with a database is a regular process for a web developer. The PHP engine, for example, is extremely robust and very fast at run-time. Yet, this is not an excuse for sloppy or inefficient code.
version control is a must
Web developers must properly use version control, and this is another aspect of software development. Take the following scenario:
You have just launched a site. Let’s call it Sally’s Cookware. You’ve done all your QA and bug testing, the client approved it, and so you launched to the live server. Scheduled in a month, is the launch of a 2nd version of this site, including many more features.
Two weeks later, you’re happily well into development of the 2nd iteration of Sally’s Cookware. Suddenly, your project manager blasts into your office; Sally’s Cookware has a serious bug. There’s an error in the tax calculation under certain circumstances, and thousands of customers are being under-charged on taxes. This needs to be fixed NOW.
But, oh wait, you’re not using version control. In fact, you haven’t got a clue what it means. In this situation, you’re screwed (rather hard). Your current code is two weeks into development; it’s still buggy, untested, and unfinished. How are you supposed to stop what you’re doing, revert to the original code as it was at launch, fix the bug, and then continue development on the 2nd iteration? Well you could, if you had version control.
At RIT, this is something that’s taught in Software Engineering, but not in web development. Why? While you’d think that IT’s Web Site Design and Implementation course would teach these important aspects, it does not. RIT’s Information Technology department, and the web development concentration, lack these vital teachings.
The solution to my above scenario is to use a version control system like Subversion for web development. When using a tool like this, we can save and put aside our current two weeks worth of work, revert to the original launch state, fix the bug, deploy it to the live site, and then continue working on the 2nd installment of the site. Being able to do this, however, requires the same code management practices that software developers learn.
Delving further into the specifics of using version control with web development is beyond the scope I intended for this blog. But here’s an awesome article about it, conveniently titled: Using SVN for Web Development. If you’re still interested, there’s a great book titled Pragmatic Version Control using Subversion. It isn’t a typical dry or boring read (the Pragmatic line of books are good like that), and I actually read through the whole thing in about 4 hours.
3. Extensive knowledge of web technologies, and the impacts of application development on the web
As web developers, we are often uniquely responsible for not only server-side programming, but also for client-side programming. This means ensuring that our interfaces and layouts work for everyone. Regardless of browser, operating system, screen resolution, or the weather outside. We have to test it in many configurations, and ensure that it works just as well for Joan and her Mac as it does for Bob and his PC. This is not unlike the fact that software developers must ensure that their applications run on computers with an infinite number of system and hardware configurations (unless you’re Apple). What happens if the user doesn’t have Flash installed, or JavaScript enabled? Is our application prepared to gracefully handle those situations?
always something new
On top of being aware of all the current caveats of client-side front-end development, there is always something new out there. Some new technological acronym like AJAX or CRACKER-JAX is always on the horizon. And it’s our job to stay abreast of these new fads. Sometimes fads become trends, and trends end up becoming a new de-facto standard. We must decide which to follow, and which to not. Wrong decisions can cost money.
4. Web developers must be highly versed in systems analysis and design
Starting with requirements gathering, to concept, to architecture, to database design, to coding, to usability testing, we need to be capable of it all.
Why can a developer make GUI decisions, and why would we participate in the design process of a website? Because the artists may design something that is too technically difficult to implement in the time or budget allotted. Often by making simple adjustments, time and money can be saved during the programming phase of the site. It’s not my job to drive the creative direction for the site, no more than it is for the artists to program the site. Yet, a developer’s input is critical during the design stages. We must ensure the design is technically feasible, and we do this by working in synergy with the art team.
The notion that a web developer is involved from start to finish helps keep projects on time, and on budget.
in conclusion…
Web development is a unique beast. It requires expertise from a lot of different areas, and it is always changing. It’s for those two reasons that I enjoy it so much.

