There are a lot of thoughts this post creates in me. I'm going to try and encapsulate all of the important ones here .. and hopefully won't bore everyone to tears in the process.Does anyone think the Lindens will listen?
First off is the ongoing issue of enhancements that cannot be edited or terminated. Obviously the developers have added a "semaphore" .. a digital device that can be used to prevent two things happening at one time. Typically the semaphore is "set" when an update or modification is begun then "cleared" when it completes. That way any external processes (like manual edits from a web page) can be made to hold off a bit until the semaphore-protected process completes. The ONLY time to use a semaphore like this is when the protected process is quick, automated and guaranteed to succeed. Apparently the clearing of the semaphore has failed, repeatedly, and thus a growing number of enhancements are "stuck" with their semaphore set and no way to edit them.
How do you fix this? First off you make sure there are no automated processes running that might need to be protected. (In the case of enhancements, that's the "charging" process as indicated by the warning message "Charging, cannot edit".) Then you run a quick database update to manually clear all the stuck semaphores. Time to completion? About 5 minutes. Problem resolved.
Secondly is the issue of Enhancements being billed with no "cookie crumbs" to follow to assign the charge to the enhancement. Every enhancement must have a unique ID number. That number MUST appear on all transaction records that involve that enhancement. Why is this not done? Not a clue, but it's a basic of financial programming .. and one the Commerce Dev Team seems incapable of following. Take a look at your own Credit Card statements Dev Team. Do you see how every charge has a number and detail that let you understand where the charge originated and who you need to contact with questions? Good .. now DO THAT!
Third .. the issue of charges/refunds/charges with Listing Enhancements. I've used this old saw here many times, but apparently you didn't pay attention. It goes as follows:
"How come there's never enough time to do it right, but always enough time to do it over?"
When your staff went through and refunded everyone, you should have AT THAT TIME tested to be sure your code modifications would not immediately undo everything just done. But did you? Nope. As a result it went through and lickety-split re-billed everyone .. not only for what they'd just been refunded but additional charges too. Pardon me but .. WTH?!? By dint of your lack of attention you have just completely undone everything your staff did .. by hand .. at great expense to your employer. You have WASTED a very large amount of money. Wasted because you could not or did not want to bother testing your changes. I'd not be surprised to see your boss wandering into your offices soon and explaining why your paychecks will be short this time around. Be grateful if he doesn't also schedule exit appointments with HR.
Communication from your team to us is a major issue. I've no doubt why this is the case. Most people have a very difficult time going to others with the need to say "We're sorry, we screwed up." With the number of times you must begin a blog post in that manner, it's no wonder you don't post very much at all. So here's an idea ... stop being lazy, stop short-cutting things and rushing changes into production, stop screwing up .. and STOP having to begin every post with an apology.
Pity, because there's some damned good advice here.