Things that I think are important:
* Give some small but significant (~week-level) milestones, ideally with tangible results. Then discuss these.
* Check up with the worker. Not by asking vague questions about how things are going, but specific questions about stuff that interests you in their work. I once worked on three projects at once for a place. Two of them were going very well, but one of them was going very slowly because I was kind of stuck. Getting input from the boss on that one really helped -- but I'd never have asked him about it, because I reasoned he'd hired me so he didn't have to worry about it.
* Help with any other stuff on their plate. Family issues, money issues, personal issues, etc. Obviously, you can't solve most stuff like this, but you can usually help. I once delivered a contract very late due to getting a wrist injury, and being unable to promptly see a doctor.
* Try to keep a dialogue going about work. Whether you're happy with their performance, whether they're happy with your pay/conditions, etc. Crucially, if any of the above ideas seem like overkill, you'll find out about this, and dial them down accordingly.
One idea that I use is - set your own hours. But then please adhere to your own schedule. If you want to start at noon, that's totally cool. But, actually start working reasonably close to noon. If your schedule changes, that's cool too. But let me know what that is and, again, adhere to your own schedule.
Getting uptight over being 5 minutes late is not really necessary in my opinion unless it's for an important client meeting or something.
There's two levels here: at the first level, you don't want to sweat anyone (capable or otherwise) about coming to work late because it indicates fundamentally messed up priorities: you aren't paying them to keep a seat warm. If you set them free to come in whenever they want, they will. If it gives you indigestion because you have no idea where your employees are, you need to figure out why that is and solve the real problem (and if the real problem is "my boss thinks I'm not doing my job if I'm not sweating my employees about seat-warming", my condolences, because you are totally fucked).
Don't confuse this with people who advocate self-management, where you just trust your people to do the right thing and set them loose without any structure at all. That's a much more subtle skill that requires the right relationships and the right situation and frankly is a gigantic hassle. If you've got a group of unmanageable geniuses who seem to be productive despite the chaos feel free to try but most teams who get things done do not operate this way and don't let the woo-woo peddlers tell you otherwise.
You're doing pretty well if the people who work for you feel like you have real, specific expectations of them but also have 'wiggle room' to do anything they want (just not everything they want).
Without being oriented, they won't know what questions to ask and then after a week of slowly plodding through the code trying to piece things together, will be too embarrassed to ask.
My team just took tons of heat because there was a complex performance issue that needed our full attention. We clearly communicated that we would need a large chunk of time to solve it, and while we tried to stay responsive, a lot of stuff had to just get ignored for a while to be able to make any progress on it.
We're finished now, and what we did will eventually save the client literally months of time over the long run, but because we weren't constantly placating the people who wanted to see the job "getting done," we put ourselves at risk of losing the contract.
All's well that ends well, I guess. We finished the task, and now we're back to churning through the high visibility low-effort issues and everyone's happy again, but all of those small issues combined don't have as much impact as the big task we just finished.
Then the first time you decide to do so all every one ever sees is "Oh this guy is really harsh, what a jerk".
Such is life. I'd LOVE for pointers on this.
I'm fully aware there are people who are "smart" but don't "get things done". However (though I am lacking any rigorous data to back this up) my suspicion is that people in this category who are prone towards taking advantage of employers are going to do so no matter what and being lax about strict attendance rules won't have a substantial impact on it.
IOW, just because they are (forced to be) present from 9am-5pm or whatever the defined working hours are doesn't mean they won't spend most of that time fucking off on reddit on their personal cellphone or whatever and they would have been problem employees whether or not the rules were loose -- if anything I suspect having loose rules makes it easier to identify when someone is not pulling their weight because there's a lot of ways to appear really busy to others while doing nothing when you're actually physically present.
But there are very few scenarios where "you're five minutes late" is a sane thing for a manager to complain about. If you have someone with a consistent pattern of slacking off, that's one thing; if you have someone who is showing up five minutes late, but is otherwise a good employee, then just back off.
Or, at the very least approach them from a perspective of "is anything going on that I could help with?". As in, is there a way work could be more flexible to make things easier for them?
Unless you are heading to a meeting instantly or opening the store or whatever, why does 5 minutes matter? Why does 10 minutes matter? Even 10 minutes every single working day shaved off would be <= 2% time lost. It really is negligible.
You're not going to suddenly turn around your productivity by adding a few minutes to your work day. Most of us spend more than that making coffee.
It is kind of sad how many boss/manager types still fail miserably on this point, and then complain about not being able to hire "good people".