Why do even legendary developers make little mistakes that break things in huge ways? Y2K, Goto Fail and Heartbleed all were examples of tiny mistakes that in hindsight should have never been made. Why does it happen?
- Developers don’t think their code will last as long as it does.
- Unit testing culture (I like unit tests… but they are an implementation of paving the cow path)
Funny things happen when time passes. Names change. Operating systems change. Programming practices change. Here’s Lotus Notes creator Ray Ozzie admitting one of these mistakes at least 20 years after it was made. This mistake ensures that ancient versions of Notes probably will have issues on Windows 10:
Oh no. I wrote code in Lotus Notes that checked for "Windows 1". http://t.co/L6VNPSIZSD
— Ray Ozzie (@rozzie) October 2, 2014
To be fair to Ozzie, he had no idea that Windows would ever make it to version 10. If you’ve been programming for more than five years, you’ve probably made a similar bug. But in hindsight… agh the joy of coding.