The things I've liked about jobs have been the work (which you really can't control), and the management attitude. Most software engineers like to get stuff done. If management is focused on getting stuff done, and making it easier, I like it a lot better.
Therefore, eliminate as many nonproductive things and irrelevant requirements as you can. If somebody wants to work in shorts and T-shirt, at odd hours and odd places, what should be important is that that person gets stuff done. (Obviously, there's limits to this. Most shops need some equivalent of face time, which suggests core times to be in one particular place.)
Provide good quality furniture and comfortable offices (you typically want the office to be somewhere the employee wants to be, rather than a place to stay away from as much as possible). Be a little lavish in allowing the employees to get what they want. In US markets, giving each employee $1K or so to spend on work-related stuff will pay off much more than the 1% or so it adds to employee costs to the business.
Ask your best people what they like, what they don't like, what they want, what their favorite job was like, and what they'd consider a dream job. Use this for clues.