I need to get something off my chest. If you are in software, or for that matter engineering of any sort, this is something you need to pay attention to. Maintenance. 1/n
Let's start with a game engine. In days back yonder, everyone wrote one for their game. Advanced companies might even reuse that engine for multiple games in-house. It was not an easy task, but also not terrible. It was engines suited for one (type) of game.
Making an engine that works for multiple game types is getting hard. Many use cases to consider and cram into one engine. Now add multiple platforms. This is hard, even for companies that only use it for a few of their own projects.
Now make the engine work for hundreds of thousands of projects. All with various project deadlines and production cycles, using different versions of the engine and all of them depending on this engine to make a living. This is now a very hard problem to solve.
Now make this engine work with thousands of features and >10.000 additional features produced by a community around the engine, make sure you can build and test this every night and ship multiple patches every week and we're in the land of terrifying.
The first thing I usually ask when presented with a proposal for using a new tool or feature built by a motivated developer (typically young) is "How will you maintain it?". I don't ask that to get an answer, I ask that to start the thought process.
It is almost irrelevant how good this feature is, if the person or team is not able or willing to maintain it for multiple years and support literally millions of people using it. It could be the second coming of gaming, but if it only works in one version, I don't want it.
Sure, "that can be solved later if it is a success", has some merit. But a success is not that a lot of people use it. Success is that a lot of people are HAPPY using it, for a long time, on many projects.
And doing this is hard. It is really, really hard. Very few working at Unity say to me that they have done this before. And those who have said so usually said it before they understood the problem fully.
I don't want to shit on anyone's parade. Inspired innovation has gotten us to where we are today and we will continue to do so. But the MVP, the prototype, the fun part of development is literally the first 10% of the work.
And this goes for everything in our development. Features, tools, infrastructure, release management, QA, docs, support etc etc. But it is also a learning experience you will find nowhere else and you enable millions of people make a living.
If that challenge sounds interesting, you should keep a look out for open positions at Unity. /tweetstorm
You can follow @UnityQAThomas.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: