I had a discussion with a co-worker earlier today about a design pet peeve of mine, and after some searching regarding UI design principles I can't really find anything regarding this particular scenario.
In many applications (mostly web, but windows as well) I see a form that allows the user to add/edit/delete rows of data. This form has "Save" and "Cancel" buttons that only affect the editable fields - record addition/deletion occurs the instant a user clicks "Add" or "Delete".
Example:
In this case, what should the "Save" and "Cancel" buttons do?
My position is that the "Save" and "Cancel" buttons should affect everything (every editable field and every add/edit/delete action) on the form since contextually there is nothing to indicate that they only affect a particular set of actions and/or fields.
My co-worker's position is that it's completely understandable that the "Save" and "Cancel" buttons only affect the fields, and that users won't really notice that additions/deletions are persisted without clicking "Save".
I realize some of this may be "what do the users want/need", but I'm curious what other developers think.