Tuesday, September 21, 2010

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.