Good Technology
Good work culture
Good Top management
Some Managers/Teams are just outstanding
Cons
Some bad managers, some untimely/wrong decisions spoil the game, with personal agendas, spoiling the quality of product.
Some managers have very very very bad attitude