Tuesday, July 03, 2012

The Tool Productivity Curve

This is the first in a series of discussions about software productivity and usability.  It is a follow up to my previous post called "Why 3D Software Stinks - Part 1"

You have been forewarned.  This could go a tad long.

Many who know me know that I can get really excited and passionate about tools.  I use a plethora of tools every day, and it is a pretty tough job to stay on top of what is out there.  There are so many ways to do my job, but I tend to gravitate to the ones that make my job faster, easier, and get me to my goal quicker.  I've used (not mastered) just about every 3D package I can get my hands on in some way, and usually within 5-10 minutes, I know if I like it or not.  Call me picky, but I'm a UX snob.  In a world of iOS, Android, YouTube, and the like, where user interaction makes very difficult tasks very simple and straight forward, even for those unexperienced users, 3D has fallen dreadfully behind.

I started in 3D in 1999 using Maya 1.0 on an SGI O2 with 512 MB of RAM.  Back then, that machine SMOKED!!)  I learned to love flying chrome logos and raytracing.  But I cane from the art/illustration side.  I loved drawing, and I loved characters.  But this new world (to me) sucked me in with incredible force.  I looked at this software and thought of what I could do...it was endless...until I tried it.  I quickly learned that I could do anything, given that I scoured the documentation for days at a time, stayed up all night for weeks on end, and fumbled my way through it.  Until at last, I was finished.  I did it.  Well, at least what I was willing to take after all of that pain and anguish.  I had achieved my goal, kind of.  I put blood, sweat, and tears into my volcano model with particles spewing from it, only to find that after all of that, it still wasn't what I wanted. But it was good enough.

That was the beginning of my quest.  That quest has yet to be fulfilled.  It has come close, so very close.  But it has never completely been satisfied.

Between my Junior and Senior year at BYU, I got an internship at a small video game studio in SLC called Avalanche Software.  They didn't use the mighty Maya.  They used and obscure piece of software I had never heard of called Animation:Master.  It wasn't Nurbs.  It wasn't polys.  It was spline patches.  My first assignment was to sit down and model a head.  So I did - the way I had done poly models.  Not knowing how splines worked, it turned out horrible.  I couldn't understand why anyone would want to work like that. But I was doing it the Maya way - the only way that I knew how.  Maya made perfect sense to me...that was, until I saw the light.  I then understood why they used it.  I was simple, fast, efficient, and streamlined, even if it was buggy :)  We flew through assets like Maya only dreamed of.

In the ensuing years, I used A:M exclusively and came to understand what "usability" really is.  It is still one of the best examples of a truly non-linear pipeline ever.  Nothing that I have tried has ever come close.

Usability is one of those things that we in the CG industry seem to put aside in favor of eye candy.  We go to SIGGRAPH and GDC and oooh and aaaah at the new tech that we see - the amazing new tools that are out there, and we so badly want to get our grubby little hands on them.  But once we do, the magic seems to die.  Why is that?  Is it because the tool doesn't work as advertised?  Is it because we can't fit it into our pipeline?  Usually not.  It's usually because the complexity is far greater than we have time to learn.  We want something that we can jump into, become productive, and use as an asset in our tool pipe.  We want it to make us faster with as little ramp up time as possible, because in this industry (especially games), time is of the utmost importance.  Time is $$$$.  The faster a tool gets us to our goal, and the better the result, the more important the tool is to us.

This is where the Tool Productivity Curve comes into play.  I cane up with this about a year ago, and I feel that it holds true in almost every situation. There are things that it might not fit, but they are very small and insignificant to the whole.  So here it is:


The graph is pretty self-explanatory.  As the tool complexity (usability and ease of interaction) gets higher, there is a point at which there is an ideal balance between usability and feature set.  This balance produces the highest productivity.  Even though there is a learning curve, it is simple and straight forward.  It is easy to understand and retain.  But as the toolset gets more and more robust and complicated, the productivity tends to drop because it is just too difficult to use, too difficult to remember, and too confusing.  On the left of the graph, the tool is SUPER easy to use, but incredibly deficient in it's capabilities.  On the right, the toolset is so extensive, that it's hard to keep track of how to use it.  There are too many ways to do the same thing, and it is confusing to the user.  Somewhere in the middle, you have the sweet spot.

Here is an example of two extremes, and it is funny how they come from the exact same company - Pixologic.  

ZBrush vs. Sculptris
On one hand, we have Sculptris, an amazing package that lets you get right down to the business of sculpting.  You choose your brush and go for it.  Import an OBJ, and have at it.  Then export that OBJ. That's about it.  Simple, simple, simple.  But I can't retopo.  I can't really bake detailed maps.  I can't articulate my mesh.  The mesh is all tris so it is really messy. So it leaves me hanging.  

On the other hand, we have ZBrush.  Don't get me wrong, I love ZBrush.  I own it for a reason.  It is amazing.  But I will say that it has taken me years to get used to it (not that I am really used to it even still).  I resisted for the longest time using it in my production workflow because it was so hard to integrate.  The whole 2.5D stuff, let alone the fact that your models were called "Tools" and your scene was called a "document" and it wasn't even really a scene.  The learning curve was/is astronomical.  That's why it has taken me so long to adopt it.  When I can jump into Mudbox, which is basically Maya and Photoshop smashed together, do some quick sculpting on my OBJ, select faces or verts, look at my UVs, paint layered maps, etc., why should I go through the agonizing pain of trying to feel comfortable enough in ZBrush to do the same?  It would take weeks to get up to speed, and I can just jump into Mudbox.  And where the heck do I find the "File" menu?  Oh, it's half way across the screen.  Just sayin'. 

Both of these tools are amazing at what they do.  But neither of them truly fit the apex of the production curve.  Maya, Max, Modo, Softimage, Cinema4D, Blender...they are all getting better and better technology.  But from what I have seen, they are all getting further to the right, instead of balancing the tech with the usability.

I've often compared the usability of a tool to a Ferrari vs. a Pinto.  They are both cars,  They both move us from one place to another.  However, the tech in the Ferrari is hugely more advanced.  This allows us to get to where we are going more efficiently and faster than the Pinto.  Is it because they put more controls in the cockpit for the driver to use?  No.  All of the new tech is hidden under the hood and behind the dashboard.  It's still just a steering wheel, clutch, brake pedal, gas pedal, and the stick.  Usability has been optimized for the driver to sit down and know exactly what to do and punch it, even if they were driving a Ford Fiesta before that.  

Somehow we have been trained to think that a better tool has to be more complex.  That is bogus.  Some of the most effective tools that I have used in my job are extremely simple to the user, yet insanely sophisticated under the hood.  Other tools I have used have been "programmer tools for artists" and make no sense at all except for the person who wrote it.  The former is MUCH more productive.  When in a production environment, I don't care how the tool works under the hood, I just want to get into the driver's seat, strap in, and hit the gas.

More to come.



9 comments:

Shane Olson said...

Well said my friend! May I be the first to join your "Better tools for better productivity" army? Don't worry about being long-winded, I read every word.

So remember that one time when I said I wanted to make videos highlighting what I think is the best way to do a certain functions (like UVs, Retopo, ect)? Well I actually made my first video highlighting the best mirroring tool I've seen, which is in Silo of course. Check it out, I'd love to hear your feedback... Video

Cheers,
-ShaneO
P.S. Looking forward to more

zandoria said...

Barry--saw your name in the credits on Brave! Congratulations--it is cool to see fellow Animation:Master users succeed :) I agree with you wholeheartedly about the usability of A:M. I posted a link back to this series, and to your A:M tutorials page
http://wp.me/pjM7W-6p

William Sutton
Zandoria Studios

Barry Zundel said...

Shane - great video. Once again, I watch this and I can't believe that Maya is so far behind in this. The Nex plugin comes close, but that's about it. Too bad Silo is not in development.

William - Thanks! Brave was great to work on, and it was tough to get out the door, but all of the hard work by everyone here really paid off. You can see it in the beauty of the film.

Rodney Baker said...

I'll echo the congrats for Brave. I was slow to see it because I'm in the midst of a move but finally saw it. Breathtakingly beautiful. It even managed to carry me beyond "How did they do that?" which always helps in enjoying a movie.

I really enjoyed this post and think your graph is right on target. I have therefore assimilated into how things work... and should work. ;)

All the best to you in your continued endeavors.

Anonymous said...

Its comparison between: Boeing and an airstat.
Both can get you to the top but the difference in features and what you really can do with it. Sure, not everyone need a Boeing but the ones who do make sure to prepare your head for TONS of information and YEARS of learning curve to become main cap.
On the other hand if your lazy there is always a baloon waiting for you. Small learning curve, you can use it right a way without prior knowledge, super easy!

Fuchur said...

Actually this is a again an underestimation of other tools. A:M has no (or close to no) really essential feature missing compared to most other allround 3d-software. The real reason it is not wide spread is a marketing one. While Alias and Autodesk have invested MUCH money to promote their software (Alias that much that it more or less went bankrupt and Autodesk only because it has a strong background by its CAD software) and like that formed a massive standing. Hash was superiour in these days technical wise but had not the money to buy them a high awareness.

Today, many software companies have gone for good because they could not keep up with the money of Autodesk. They did not have the best software nor the best technology... they just had more money.
Hash is still there but Softimage, Alias, Caligari and many more have vanished because of the monopolistic stand Autodesk has. I am not very happy with that situation but I am happy that there still are companies like Hash, maybe Maxon and a few others which offer an entrypoint

Anonymous said...

I disagree. Animation Master is obscure for the same reason Curvy3D is obscure, MOI is obscure, and Shade3D is obscure. They use modeling styles that are not the norm. Spline Patch modeling, Sketch Modeling, Tablet CAD, and I'm still not even sure what Shade3D uses(putting duplicate lines in a new folder to create walls... well, that's just different.. fun, though).

TheSoftware Society said...

Its Brilliant knowledge For Software & Economics.Software and Productivity is so good.

Fuchur said...

Today you are right... but when there was no real standard tool in the early days / polygones could not do the same as patches could this was different. If they would have spread widely these days, it may as well have become the default method to model something and today polygones would have been considered "old" or even the obscure method...