I've had a hard time migrating applications to new releases of various libraries. Does it have to be that way? Let's have a look what changes generate pain for the users of our libraries and how we could do better if we develop our own libraries that other developers are going to use.