Sunsetting Python 2
Python 2 to 3 (at least by 3.3 or so) was one of the <i>easiest</i> transitions I've ever done.  There's a library ("six") to help, and in almost all cases you can write 2-and-3 compatible code, which means you can go piece-by-piece.  (Unless your manager makes drive-by commits of py2-only code, months after you all agreed that all new code should be py3-compatible, and then leaves town for a multi-week vacation...)<p>Dependencies?  I helped upgrade a couple third-party modules, too.  That's part of the job.  If you choose to use a dependency, you're vouching for it.  That means if the current version of the language no longer supports your favorite library, you need to fix the library, or find a new one.  If we switched from phillips to torx, and your favorite tool brand didn't make torx drivers yet, you've got to either convince them to start, or switch brands.  Professionals don't get to use this as an excuse to badmouth torx, and stick with phillips.<p>If people spent half as much energy upgrading as complaining, this would have gotten done 5 years ago.<p>Apple took only 3 years to go from first announcing a new CPU architecture to releasing an x86-only OS.  2 years later, Rosetta stopped working, so there was no way to run old apps on current hardware at all.  That's got to be one of the advantages of proprietary systems.  It's amazing what you can accomplish when you have no choice.  People complained a little but they got it done.