I think in the previous post, I inadvertently found a way to - TopicsExpress



          

I think in the previous post, I inadvertently found a way to describe the difference between architectural and feature work. Also, as a side note, my entire mindset is evolved around developing a long-term, expansive product. It doesnt necessarily apply to the game industry, for example, where UE 4 is actually a new engine over UE 3 in the way that 3DS Max is a new engine over 3D Studio. The AAA game industry is enormous, aggressive, and incredibly competitive, so they both need and can afford that kind of purge every few years where whole new generation engines are built. With 3D software, its quite the opposite. Such a purge may only come once every 10 or 20 years, and when we look at a software like Maya, the engine is the same overall engine it has been using since Maya version 1. Its been tweaked and expanded incessantly, but its like those modders these days who are still working with the Quake 2 engine and have made all kinds of improvements to it. Its still the Quake 2 engine with all the legacy associated. But heres the ultimate difference for the long-term product kind of scenario Im describing: architecture should be about quality, and features can be more about quantity. We need discardable coding techniques to do things in a competitively fast way, but an architecture for a product intended to last 10 years or more cant afford those types of techniques. We cant afford to rapidly build an architecture as fast as we can, ignoring how well it actually works in practice and scrambling to build features to demonstrate as soon as possible. Unless were lucky and just magically make a good architecture this way, well be stuck with something bad. Well have spent a year or more numerous writing features around this architecture, and we cant just change our mind later and say, Oops, some of these central designs really need a replacement. Thinking that way could have you replacing the entire products code, or close. So architecture is the one place where we cant afford to compromise quality below a certain level in a software that aims to be around for a good while without repeatedly spawning whole new engine generations. And that certain level is whatever is needed for you to remain competitive for as long as you want the software to be around. Features can have their quality compromised. They can be mediocre, even worse. Replacing a feature involves no more work than just that, replacing the feature. Replacing an architecture involves replacing every feature using it, so this is why we should never put the quality of an architecture in serious jeopardy. Unfortunately, this does mean that architectures take a very long time to create, and its extremely difficult to estimate how long because the way we should think about it is taking however long it takes to establish that quality level well be satisfied with (maybe not happy, but satisfied) for years to come.
Posted on: Fri, 26 Dec 2014 13:46:53 +0000

Trending Topics



Recently Viewed Topics




© 2015