pull down to refresh

Stuff that is implemented twice
I agree, this is annoying most of the time.
But the thing I run into a lot and really can't stand is premature abstraction: "These 2 things look the same. Let's build a package with some base class so that everything is DRY"
Some time later, it turns out that the 2 things aren't remotely the same. Meanwhile, layers upon layers of crap have been built with this package as a dependency and I've got to trawl through it, tease the 2 things apart, refactor anything that uses the package, and/or convince other teams/users that they need to do the same in their code. Not fun