For example, a user want to save a document/project as a new name. A copy really. So their data is big, I mean big enough to be annoying, so if we do a copy of files it is going to take long enough for the user's eye lids to start to close. But ... we software developers have control over time, we provide feedback that we really, really, are doing good stuff so what would otherwise be an "oh-dear I'm wasting time" to gosh "I've kicked off a really big processes that is doing stuff" so I'm, by inference, doing stuff.
This is real evident in code that needs to copy lots of stuff. Sure, copy it in the simplest way as there really is not much time difference in how we do it .... or is there?
We time lords (software developers) can not only take control of a user's time line but our own. Write lots of lovely progress dialogs or plug into the Windows OS time line. Go outside of the .Net framework's native stuff and enter the Windows Shell C# interop. Checkout C# does shell and
Why? It means you can jump into the future (save time) and use the OS's native UI. Don't write your own "I'm really doing good copying these file" dialog. Check out the dialogs you get in Windows 8 ... this is for free.
Do the crime do the time? Na, do the crime and leave the time to others, I'm going home. C# shell rocks.