Skip to main content

Why the web evolves so slowly in comparison to other industries

In technology, in one way or another, you will run into specific individuals that just don't care about their jobs. I've had to chance to see them infest my beloved discipline: software development. Time and time again, I see them dodge bullets from upper management by talking their way out of specific things that are too challenging or too lazy to take ownership of.

I work in web development: my role is to to develop cutting edge user interfaces, produce engaging online experiences, build intuitive software, and be a passionate technology leader. I've come to realize now after working in the agency business for so long that there are too many people that just don't care about the software they are actually building for their clients.

I've talked with several other developers from different companies and it appears to be the same. Consequently, I believe that the reason why we're forced to code like a drone is because a majority of other disciplines in the business don't understand what we really do as software developers. Furthermore, I believe that other disciplines actually think we build door knobs (components), that go into doors (applications), and the doors go to a house (technology platform). It's this imagery that completely dispels the drive and passion of building great software. In actuality, it is not that shocking. This happens time and time again, for example, in the gaming industry where it is very competitive--being on an old platform (SNES) could potentially cut off any chances of success for future games.

Back in 1996, Squaresoft ended their long, tumultuous relationship with Nintendo because Nintendo decided to go with cartridges, which didn't have sufficient memory to really give an engaging experience compared to FMVs (full motion videos)--so they ditched Nintendo for Sony PlayStation. Incidentally, this story was about how a game development company made the leap of faith because their old platform and archaic ways didn't provide them the features and advantage over their competitors they needed to deliver a solid product (Final Fantasy VII).

After reading this story--I had an epiphany. In game development, there is always this constant drive to create more engaging experiences. As technology evolves, so must your delivery whether it is a service or a line products. Many front-end developers tend to blame designers for being too heroic when time comes to deliver a working web application but I'm starting to see a different perspective. I don't necessarily think it is the designer's fault when they're told to design something cutting edge. They are just doing their job, and so are the developers. So, who do we blame for the lack of evolution on the web? Who do we blame when our competitors create better experiences at a lower cost and a faster delivery time? Who do we blame when the expectations of what you were building between the client and the delivery team are so divorced?

Why is it that the game development industry has had asynchronous non-blocking I/O 20 years before the web? How is it that games have been real-time for 20 years and just now there's a burst of web applications that are real time using web sockets?

I blame it on all the laziness and tunnel-vision technology leaders of our current day in web development. It's not the client, it is not the designers, it is not the lowly programmers that are anxious to build great things. It's the guys in charge of the technical decisions that are so lazy and closed-minded about learning new technologies that can help alleviate our development pains and speed up our delivery. Instead of adapting to how competitors are creating more engaging online experiences or evolving new techniques on top of more agile technology platforms, we leave it up to the guys in their garages to develop something brilliant and follow in their steps. The worst offender isn't the part where we aren't being a true leader--it is the thought of trying to copy a more technologically advanced competitor but on a slow, painful, and frustrating stack of technologies.

It is clear that everyone wants to evolve and build intuitive, useful web applications but how can you innovate when your technical leaders put a stranglehold on your creativity because of their negativity towards learning something new and building on top of more efficient platforms. Ultimately, web development is so full of arthritis. Douglas Crockford said that. In my opinion, techology should always be evolving to help the business reach its goals--Laziness should never be tolerated. If you want to just sit on your position, why don't you just become a doctor?

Douglas Crockford also said, "that's why software development is so slow, you basically have to wait for a generation to die off before you can get critical mass on the next good idea."

Good luck and have fun,
Jaime Bueza

Jaime Bueza is a software developer in Vancouver, British Columbia, Canada. He has developed web applications for Nintendo, Electronic Arts, Ritchie Brothers, Kiwi Collections, and Cox Communications. When he's not developing useful software that constantly evolves with business requirements, he's creating tutorial videos for aspiring front-end developers.
Post a Comment

Popular posts from this blog

TextMate Tutorial: How to add a Strikethrough keybind to your Markdown bundle

Markdown is awesome for quickly generating Readme's on Github. After looking at other projects using the strike tag, I've decided to create a custom keybind for it in my TextMate Markdown bundle. Here's how:

1) Click the + sign on the bottom left and click New Command.
2) Paste this into the editbox and make sure you name your command "Strikethrough".

For the input field, select WORD in the drop down.
For the output field, select "insert as snippet".
As for the keybind, you can totally map it to whatever you're comfortable with but I chose Command-D as it is the same thing in Microsoft Word.

Cheers,
Jaime

Using Git Hooks: Prepare Commit Message to automatically prepend branch names on commit messages

When you're practicing branch by feature with distributed version control, typically you'll get assigned a ticket or issue and that ends up being your feature branch. Instead of always typing in the branch name in every commit, you can edit your Git hooks (specifically prepare-commit-msg).

Assuming that this is a brand new git repository:

mv .git/hooks/prepare-commit-msg.sample .git/hooks/prepare-commit-msg
vi .git/hooks/prepare-commit-msg

Edit the file by commenting out what was originally in the file and then add this:



Now, whenever you make a commit, it should show up like this in the log:



Since GitHub and Bitbucket both support Emojis inside commit messages, you can do something cute like this



Want more emojis? check out the Emoji Mardown Cheatsheet!

NodeJS Hack Session: MMO Pokemon with NodeJS/WebSockets

The primary focus of this proof of concept is to determine how easy it is to build real-time web applications for all iPad, iPhone, droids, Safari, Chrome users on top of NodeJS (non-blocking event driven server side Javascript platform). The proof of concept was built within 6-8 hours including the following:

Uses Express framework for server side Javascript development (inspired by Rails / Sinatra / Django)Uses EJS for templating language (much like Django templates and symfony) -- allows partials and passing parameters into partials like symfony PHPReal-time chat using WebSocketsArena Queueing System for real-time competitive matchplay using WebSocketsHTML5 AudioCSS3 transitions for all hand cards, tappable cards, transparent panels, rounded corners, drop shadowsFallbacks for Firefox, IEFirefox/IE will fall back to Flash socketIE will fall back to XHR long poll if the user doesn't have Flash installedNoSQL CouchDB for fetching users and soon cards, achievements, friend associat…