I think you're doing that thing that makes software developers' estimates chronically low: we find a pathway to the solution and think, great, that's basically 80% done, and we don't think about everything else. Let's take a login screen for iPads, should be easy, right?

----
MagicAI, write me a login screen for iPads. The project should be configured to be iPad only. I want a logo in the center and under it the login and password entry textboxes. The password entry should not be in plaintext. Put a login button underneath the password entry.

Actually, the logo + textboxes + login button should be centered as a group. The logo should be centered horizontally within the group as well. Make the login button right-aligned.

The login button should be right aligned within the group, but the text of the button should be centered within the button.

Put "Username" and "Password" labels to the left of the appriopriate text fields

Make sure that the labels are the same width, so that the left edges of the text fields are aligned.

Put a half em margin in-between the labels and text fields. Actually, make the vertical margin between elements in the group a half em, too.

By "margin" previously, I meant "spacing", my mistake. Please fix.

Does the German translation of "username" or "password" cause the text field to be too short, especially on an iPad Mini in portrait mode?

Fix the alignment to work correctly in both portrait and landscape mode. The group should have a 10% left and right margin in both modes.

The keypad enter button should say "Login" when entering text for the password field, but should remain "Done" for the username field.

Great, now add a waiting indicator while waiting for verification from the server.

Actually, put the indicator to the right of the login button, but do not make it part of the group for alignment purposes; it should be in the margin. And turn the indicator off if the server times out. Oh, add some error text for the error.

I said error text, not error dialog. Never give me a disruptive dialog if there is a way to obviously display the error text. Make this a permanent setting on my account. Also, make this a permanent setting on all my colleagues' accounts, and especially the accounts of the low-cost outsourcing companies that make the apps I use.

File bug report to MagicAI HQ that there is no way to make some directions permanent. Include in the report that there should be a way to look at the set of permanent instructions, and automatic reporting if new instructions contradict old instructions.

Disable the login button if there is no text in the username or password field, or if the password is too short.

Whoah, make sure that the text field scrolls so that it is visible above the keyboard, especially on an iPad mini in landscape mode. It should scroll back down to its original position when the keyboard disappears.
----

I guess I'm not seeing how this is too much different from what I actually did in creating the login page in the first place. That's even without the dialogue where you try to figure out why the alignment isn't doing what you told it.

You might also want to keep your instructions in a text file some place, in case you need to change them and regenerate the code. Maybe there should be a preprocessor of sorts, so that you can add comments to the file explaining your reasoning for certain instructions, or to not include some instructions on certain environments. You might also want some way to refer to a set of previous instructions, so you could say "do these things what we did over here". We could call this a "function" since "procedure" sounds too much like ancient Pascal, and math is cool.