Planning to fail is quite a bit more work than failing to plan.
The singleton pattern combines all the perf benefits of a global variable with all of the code maintenance benefits of a global variable.
In all seriousness, duplicating code isn’t bad. What is bad is duplicating intent.
A wise man once said “I could talk about pointers all day and still be confused.” Then he pointed to me and said, “I mean you will still be confused.”
The waterfall model mitigates failure by providing a document trail about whose fault it is.
Scrum tries to mitigate failure by making it smaller, but happen more often.
All software development project management methodologies start from the assumption that your project is going to fail.
You know what drives me nuts? When you close a window and it doesn’t close… it just sits there mocking you with it’s continued existence. It’s probably saving something to disk or sending statistics to its mothership or maybe calculating the next chunk of bitcoin hashes. Who fucking knows, it just doesn’t close. You’re clicking furiously on that red X in the corner but it’s still there, laughing at the futility of your desires.
How long does it take to kill a process exactly? Clicking that window close button should not be giving control over to the window you’re trying to kill, it should immediately close the window against its will and give the app about 3 seconds to finish something up before the OS completely kills the process and reclaims it’s memory without mercy.
It’s to the point where I find myself doing a task manager kill more often than just closing a window normally. If you allow an app to misbehave it will misbehave. This is one of the reasons why I’m looking forward to Windows 8. Win8 apps adopt the model closer to phones and ios, where apps are sandboxed and at the mercy of the OS rather than the other way around. Apps get frozen and killed at the users whim and nearly instantly. It’s these types of issues that render the old desktop obsolete in my mind (along with modal dialogs).
Inspired by this rant on splash screens and apps misbehaving while opening: http://asserttrue.blogspot.com/2012/02/splash-screens-sloth.html