Wednesday, May 26, 2010

Confirmations And You

I got into an interesting debate with a colleague last year about the use of confirmations in tool writing. He was passionately of the mind that the user should be solely responsible for clicking a button, and if they didn't mean to click it then they should face the consequences. Now, most people will agree that there are few tools in our pipelines that will cause issues if a button is pressed when the user isn't ready, it's usually no big deal. There are some though. One example would be sending a shot to be rendered.

Let's look at an example where the user has a button on a shelf that will send their currently open scene to be rendered, on the farm or elsewhere. As soon as he or she clicks the "Render" button, the shot is saved, archived, render is set up, and it's sent to the farm to be magiked into a video. If the shot is ready to be rendered then this is certainly a great solution. One simple click and they're off to play golf. However, what if it's going on the dark side of an 18 hour shift and the shelf buttons have become blurry enough that the user clicks the button by mistake? Let's look at why this is an annoyance in production.

First off, there is now an asset being created that is of no real use. The user will to spend time alerting the powers that be that they need not use this asset for anything and it should be deleted when it's finished being comped. Next, the powers that be must track down this asset and delete it so it doesn't get confused with a proper deliverable of any sort. On top of all this, the process of rendering and comping this shot will inevitably take up resources that would be better served doing anything but an irrelevant task. In the big picture it's not a huge problem by anyone's standards, but it could have all been avoided by requiring one extra click.

I won't argue that there is a time and place for a confirmation box, but when the potential for screwing up is wasting people's time and resources then I think it's right to use one. A tired animator or rigger can save themselves and others time and money by being given a chance to say "No!".

Today I was coding something and a similar situation occured where I was making a decision to include a confirmation or not. This is how I was reminded of the passionate fellow who argued never to use them. I laughed for a minute, then added my confirm dialog, with gusto.

Thoughts? To confirm, or not to confirm?


  1. I totally agree with you. I hate clicking the wrong button and something shitty starts happenings which takes hours of work-arounds to fix or opening your 'last-saved' scene just to get back to the before state, argg!

    Am I sure?
    - Yes.


Scripting Topics

MEL (41) Maya (39) Scripting (32) Scripts (21) programming (14) Free Mel Scripts (8) MaxScript (7) Coding (6) Rigging (5) tutorial (5) 3ds Max (4) Python (4) Tricks (4) faceware (4) image metrics (4) Learn (3) Namespace (3) Namespacing (3) animation (3) facial (3) webinar (3) Code (2) GDC (2) Game Developers Conference (2) Multiple Namespaces (2) Print Selected Objects (2) Recursive (2) Removing Namespace (2) Return (2) Set Driven Keys (2) TOkenize (2) Tips (2) Toggle Background Color with MEL (2) animation tools (2) animators resource (2) deformers (2) learning (2) maya tools (2) mesh (2) modeling (2) nodes (2) procedure (2) script swell (2) transforms (2) Animschool (1) Attribute (1) Background Color (1) Beer (1) Blur (1) Character Setup (1) Check if an object exists (1) Class (1) Command Line (1) Constraints (1) Create SDK (1) Create a directory with mel (1) Data (1) Export (1) FilterString (1) Fix (1) Floating Slider Time (1) Functions (1) Get Maya Version MEL (1) Get Parent (1) Google (1) Holiday (1) How To Write To A Text File (1) Import (1) Incremental Save (1) Index (1) Joint Chain (1) Make Set Driven Keys (1) Maya Version (1) Modules (1) Objects (1) Orient Constraint (1) PYMEL (1) Parent (1) Parent Constraint (1) Point Constraint (1) Position (1) Print (1) Print Current Selection (1) Print Random Quotes (1) Print Selection (1) Print Vertices (1) Progress Bar (1) Progress Window (1) PyQT (1) Removing Spaces From Names (1) Scene File Name (1) Select Connections (1) Select Outgoing Nodes (1) Split Bones (1) Split Joints (1) St. Patrick's Day (1) String Array (1) System (1) Transfer UVs (1) Viewport (1) White Space (1) Windows Username (1) Zero Out Attributes (1) animButtonState (1) arrays (1) articles (1) auto key (1) better (1) blendshapes (1) break (1) confirm dialog (1) continue (1) convention (1) e3 (1) efficiency (1) error (1) eval (1) executable (1) fclose (1) fopen (1) fprint (1) games (1) improving (1) infinite loop (1) joints (1) listHistory (1) listRelatives (1) logic (1) loops (1) milestone (1) nodeType (1) objExists (1) recursion (1) rotates (1) rotations (1) schools (1) sculpting (1) setAttr (1) shout outs (1) source (1) source a script with a variable (1) speed (1) (1) translates (1) video (1) warning (1) world matrix (1) worldMatrix (1)
Script Swell - Blogged