Building the next top app is often compared to getting a big hit at the box office. Talent often finds itself in a crowded marketplace where you need some luck (including timing!) to go along with said talent.
Building applications and services for people isn’t the same as building movies, but there is a lot that each medium can learn from each other.
I have been thinking about the current disruption of media, and if there is anything that we can learn from it on the software development side.
Who Are The Professionals
There are only 6-700 hollywood movies distributed in a given year. Compare that to the 500+ hours of video uploaded to YouTube alone. The realm of video used to be solely for huge groups with expensive equipment, coming together to create something (hopefully) epic. Now, everyone with a smart phone has a camera in their pocket and they aren’t afraid to use it (and upload the results).
It isn’t only the creation of video content that matters of course, but the consumption side. Gone are the days where these videos were siloed off as family movies and the like. My kids jump on YouTube as their main source of video content, and the quality of some of the content is incredibly high (much of it is…. no so).
When we went mainstream, first the tools allowed you to capture video simply. Then, you could do simple edits and manipulation. Now, you can do a lot of top quality editing on your own device, not needing all of the expensive custom equipment. The high end tools push the barrier on what is possible with movies, and then the consumer grade software slowly follows and sucks up the good ideas and makes amazing things happen with a click or tap of a button. At this point services often go ahead and do all if this work proactively and just tell you “hey, I sticked together your content, and put it together with a great score…. want to check it out?”
I notice that a lot of the content that my kids enjoy is very directly remixed. You can remix content at various levels of abstraction. At a high level you could take the concepts behind Joseph Campbell’s hero’s journey analysis. In fact you may have ended up following the pattern without even knowing it. At a lower level though you can take a product and add your touch. Maybe you didn’t like the ending and create another one? Maybe you have something to add to the “universe” and you put in new adventures? Fan fiction has had a long history in society, and it seems that this is now exploding as the distribution of this content has less friction and fans can easily find it.
There is something great about the constraints of one story, and the craft that the team put into it. I value that. I also value the ability for us to keep iterating and expand on these ideas. I have always dreamt of going to a movie and having a “choose your own adventure” experience where the audience votes. This would enable a special live experience, and chances are you would be willing to come back and give it another shot if the content was great. There is a certain amount of freedom given to the platform (movie distribution, theatre, capabilities, etc) the developer (people making the movie components) and the user (choose your own adventure).
Crafting applications that mimic the large scale movie hits is one thing, but what about also enabling great remixing of these experiences?
The Web has always had a foot in this world. We have mashups and iframes and the like, which have encouraged the joining of different sources beyond a backend API, and all in a fairly simple way. Marry this with responsive design and progressive enhancement and the content can know its constraints and adapt to them.
Could we do more to the web platform to enable even more remixing and merging of experiences? Can we make it very secure? Could we use web components as a way to go beyond iframe?
What if we used the fact that a <semantic-tag> is loosely coupled to its implementation? Developers could offer alternative implementations, and users could even make choices here too. I like it when the ecosystem has nobs for each group. On the other hand, it drives me nuts when I am in “Application A” and want to send a URL to my browser of choice and instead am only given the option to pass it to the “standard” browser. Too many of the integrations do not allow the user as much control as they would sometimes like. Browser extensions have been interesting because power users have mainly been the consumers. With these, and tools like greasemonkey, more was possible. They were often brittle, and they would often cause performance and/or security issues, but they did bring flexibility that didn’t exist for users in other ways.
We have all had instances where we use a product but wish it did something a lil different, or wish there was one minor feature. These features may not make the ROI of the product owner, but to you… they are P1. It would be nice to be able to enable a system where your priorities can be taken care of even if they aren’t the top average priority.
With progressive web apps we are bringing some important native capabilities to the Web, in a way that fits in well. Now that we have more capabilities, what can we do with them, and how can we apply the pieces that we love about the Web into this new Web. I have loved how traditionally easy it was for someone to get up and running with Web content. We had a period of time where we didn’t keep going up the stack, and thus it is easy to bold some content, but it isn’t easy to drop in rich controls.
It is important to go after the movie makers, but I think it is also important to keep pushing to enable everyone else to be able to create compelling content too. At scale, some of it will be some of the most interesting content out there.