Back in the 80’s when video games were still new, games were often developed by a single person. Fast forward to the 90’s and we start getting small teams of game developers with the introduction of 3d graphics and complicated physics engines. A few short years after that, we have hundreds of people and multi-million dollars spent on each game title over a period of 3–5 years per game.
When mobile phones started becoming popular in the mid-90s we saw the re-emergence of indie game developers. Again they were simple enough to build and the phone capabilities of the day only allowed a very basic game to be played. The problem however, was the distribution model of phone games and the fact that no one was willing to pay for them yet.
In 2008, a year after the iPhone was introduced Apple introduced us to the App Store. Suddenly, game developers could easily publish their simple titles and get paid handsomely. It didn’t take long before the competition grew more fierce and mobile games started getting the same capabilities and complexities as desktop and console games. The indie developer was again replaced by a small team and soon hundreds of individuals working on each title.
What does this have to do with web? Well, the web has a very similar story. Lets take a look.
In 1990 the World Wide Web was invented. In 1994 it became popular and constituted no more than a few simple paged linked together with hyperlinks. In those early days the internet was mostly about static information. Dynamic content started become popular in 1995 with advances in technology and demand for content that updates more frequently.
Amazon launched in 1995 and started selling books online. It paved the way for online purchasing and met with many complicated new challenges like cyber security, placing and tracking online orders and inventory and keeping content constantly up to date.
Most tasks were still manageable by one programmer. It is only when a company experienced sufficient success that it would need to hire more programmers to handle difficult engineering tasks like making sure the site always stays up, runs quickly for millions of visitors day and night and is easy to use across all users and cultures.
In 2005, AJAX allowed web application to update only a small part of the page instead of reloading it entirely after a server update.
When HTML5 came along in 2008, web applications were able to do almost anything a desktop application could. We moved from building simple web page in the form of glorified documents, to creating complex systems to help us in our day to day lives. With the invention of responsive and adaptive design we were able to run those web applications on any device, mobile, desktop or tablet.
Our users started becoming more demanding, after using applications like Facebook, Instagram, Twitter, Snapchat & Slack every single day, they expect the same level of quality in every app now. These companies invest billions of dollars into their products with tens of thousands of engineers.
Luckily, our tools also got updated in recent years to help manage the complexity and bring structure and order into the ever more challenging expectation we are expected to meet. Facebook created React JS to help us build fast complex applications by borrowing ideas used in video game development.
In order to match the quality and meet user expectations it is no longer enough to find that Unicorn developer who can do it all. The complexity is beyond the capability of any one person and requires a team. It is time for us to stop seeking that perfect Full-Stack developer and start thinking of how to build the best team to deliver on our products.
It is this very realization that made me start Nano 3 Labs instead of continuing on the path of a Freelance Developer. Just like being able to develop a snake game might have been enough in 1994, but it is time to up our game in the web sphere as well.