In most cases you'll want to build an extension that does something when you click a button, when you type something, ... and this is also the default behavior of your package. The method Initialize() will only be invoked when your action triggers it. So don't worry if Initialize() doesn't get called when Visual Studio starts because this is default behavior.
But what if you want Initialize() to be called when Visual Studio starts? In previous versions of Visual Studio you had the RegisterAutoLoadAttribute which has now been made obsolete.