Interesting product to work on
Technology that they are working
Respect for the work they do
Knowledgeable colleagues where they have something to learn from
A manager who is either technical himself or at least understands technicalities
Lots of freedom to experiment
A manager who understands the complete SDLC and not just his area of specialization
Cons
As dealing with project their are less number of colleagues , so that work pressure is more.