Software development is an art, so a good developer - or a good artist - need those three things: skills, aptitude, and passion.