In the software industry, most companies have flexible hours. This does not mean that laziness is allowed; what it means is that as long as projects are done on schedule, no one cares too much about exact working hours, lunch breaks etc.
As long as projects are done on schedule. That is, if the project that was supposed to be done in 6 months is indeed done in 6 months, and if every developer in the team has done his part on time (or if there are valid, objective reasons why it wasn't possible).
This is commonly accepted practice, and if you try to enforce strict hours, you're being the exception.
Do you really need that? Most companies just need the projects to be on schedule, and exact times are rarely needed except for meetings with customers.
At this point, if you insist on running the team as if it were some profession where strict 9-5 job with 30 min lunch break is the norm, yes, they will leave. I would, in their place.
The next question is if your employees, in your city and country, can find an equivalent software development job, with same (or better) salary and benefits. If they can, why would they be afraid of leaving?
If you want to keep them, you need two things:
1) If you have a real need for them to follow a strict daily schedule, then explain the reasons to them, so they can see it's a real need and not your micromanagement.
2) Offer sufficient salary and benefits that they cannot easily find another such job. That is, find what the top salaries are in your area and then give them 10-20% more.
Then you can ask them to follow a strict schedule.