In my earlier post I included management in my sights, don't worry. But unless the keyboards are snatched from under the programmers fingers, there is no excuse for launching non functional links or stuff that fundamentally doesn't work.
The keyboards don't need to be snatched out from under programmers fingers for bad software to be released. It's entirely possible that code is checked in to the code repository ready for release and the bug is then found in later testing. Assuming they are doing proper task management a bug will be raised in their bug tracker, however that still relies on the bug to be assigned to a programmer to look at. Depending on the severity of the bug it's entirely possible that no developer looks at the bug in the bug tracker before the release manager releases the code in the code repository out to production.
You also need to remember that a large complex system it's entirely possible for a change in one area to unexpectedly affect a completely different area. Take the 404 for example, it's possible that a change to the filename will cause a 404 error. Whilst modern day tools have what is called refactor where both a thing, and everything looking towards it is appropriately renamed, it's not perfect.
There is a condition which is nicknamed "Fear of release". Basically if you wait until software is perfect before release you will literially end up with nothing. I've seen it time and time again with software developers so worried about potential bugs in their code, that they produce exactly zero code.
To give you a bit of an idea of bug severity and why software might be released with known bugs at work we work with the following levels, and I suspect QF would have a similar system in place.
- Show-Stopper - These must get fixed immediately and a patch released as soon as possible. These sorts of bugs will cut weekends short and result in very late nights. Typically these sorts of bugs are things which stop the system from operating or present a massive security risk. To put this into a QF context, I would consider a bug which allowed access to a FF profile without password, the booking system stating a booking has been made without actually recording the booking, or offering SYD-LAX F class for $10 as show-stoppers
- Critical - These are bugs which must be fixed in the next release (when ever that is). These bugs are fixed during normal business hours, an example might be an intermittent problem which prevents seat selection, but an error message appears if the seat selection was unsuccessful.
- High Priority - These are bugs which need to be fixed, but it may take several releases to do it (to allow time to fix Criticals or Show-Stoppers). An example might be a 404 error if certain links are clicked on where those links are unlikely to be clicked often. Yes it looks messy if you happen to click on one of those links, but it's not going to stop you from using the system.
We also have normal and low priorities, however for bugs they would rarely be used and almost certainly never for bugs which can be seen by the end users.
Bugs fit in the priority list along side features and other tasks (thus the reason we could issue a bug at a normal or low priority). Bug's don't automatically get preference over features and tasks, it depends on the importance of the feature vs the severity of the bug.
If you have more questions about my chosen profession please feel free to ask them, more than happy to answer. (BTW, being serious, not sarcastic)