One thing Im very guilty of doing is being deeply biased when I - TopicsExpress



          

One thing Im very guilty of doing is being deeply biased when I say that something is practical or something is not. Though its kind of the whole point: if Im the one doing it, the idea of practicality is going to revolve around my personal limitations. I think when weve been doing software for a long time, its no longer about possibility. So many things are theoretically possible, and there is no shortage of developers out there who will say enthusiastically that something is possible, giving off the implication that we can expect it soon. For me its always been about the probability of success. And that probability takes into account so many factors from our personal resources, the team dynamics, the tools, the design standards, the state of the current architecture, the maintainability of what we do even after we do it, and above all else, our personal skillsets -- what we can personally expect to execute well. And thats very important since no matter how good an idea is, if it cant be backed up by an equally good execution, the result cant be good. So Im very guilty of speaking assertively about what is and isnt practical, when a lot of it is really about me and my own weaknesses. I emphasize tough, mutually exclusive choices, emphasizing that we can have this or that but maybe not both. But I try to mitigate some of that bias. My primary way of mitigating some of that bias is observing the trends of other software: their foundational architectural decisions, the size of their team, the years it took to get to where they are now, the number of software generations it took (SI3D->XSI, e.g.), etc. And there are trends that arise when we start to see that there is a very tight connection between those foundational architectural decisions and the workflows that tend to show up years later. One of the tough things is that these new products usually dont give us quite as much advanced knowledge of how to do things as we might expect. The fact that XSI exists does not necessarily mean that a team can make something as good or better than XSI in a year without something starting to resemble that arduous journey all the way from SoftImage 3D up to XSI as we know it today. Its probably going to be a shorter journey now that we got shinier tools and we can learn from some of their mistakes and growing pains, but its going to be a journey. And unless were just duplicating XSI exactly, its going to be a diverging path, since design decisions need to build upon each other, so even the slightest variations in design choices could pave whole new diverging paths in our new software. And design consistency is extremely important to me. We can observe Maya modeling tools from third parties that are jam-packed with operations. Hold shift and LMB to do one thing, MMB to do another, hold ctrl LMB to do this, shift+ctrl RMB and click here to do that. Its like they packed 15 operations into one tool, and if you can build the muscle memory using it, you can do a lot and very quickly. But I look around the rest of Maya and wonder, where is this kind of workflow reflected into the other parts of the software? Because it isnt. And thats a difference between like an internal developer and a third party. These fancy tools are exceptions to the rule, they do not reflect the overall workflow of the software. And thats not what I obsess about, those exceptions to the rule. I obsess about *the rule*. If were building an architecture, we are building the workflow rules that are supposed to echo throughout the software. So I am very biased when I say that this decision will probably lead to that, that this choice will probably exclude some other things we want. But focusing on those negatives is my way of finding things that can actually be executed well. The number of things I can do really well is very narrow in comparison to the number of things to a mediocre level which is still narrower than the things I can do poorly. And I really want to maximize my probability of doing things well. That requires finding the right decisions, and understanding their general costs, their general trends that echo throughout the software for long periods of time, if not indefinitely.
Posted on: Sat, 29 Nov 2014 11:06:31 +0000

Trending Topics



Recently Viewed Topics




© 2015