That seems completely backwards. You are being paid salary but treated as if you were hourly. If your managers think it's important for you to be in the office 9-5 every day, why don't they just set up an hourly rate and make you punch a timecard? To me, the reason to have salary is that you are paying a worker to do a job. Highly paying jobs usually require highly skilled workers, and those workers should be judged on their results. Completion of the job and all of its duties is worth $XXX,000 per year, and it is up to the employee to determine how best to allocate their time and resources. The fundamental mistake of the approach you describe is that software development is not a profession in which merely showing up and putting in labor is of great value. I can pay Jim the Janitor $10/hour to show up and sit in front of a computer. He is never going to write me a distributed map-reduce powered vectorized graph search in Erlang (or whatever).
Let's say my boss tells me to write a TPS report collector. So I come in for 10 hours every day for a month and slave away on a bunch of crufty repetitive boilerplate code which is low on creativity and high on required hours. I eventually manage to hack together a custom report finder and parser, and generate the necessary solution as described by his email. What if my coworker wakes up after a good night's sleep, comes into the office and talks to everyone involved about the project, then realizes that what the VP of MarketResources really wants is some nice graphs of the TPS trends? He finds an open source TPS report analysis framework, spends a couple days integrating it into the workflow, learns a great solution for dynamically generating graphs while out for drinks after a local dev meetup, submits it all to the boss after two weeks and then takes a vacation. Who has really provided more value to the company here? My point isn't about frameworks vs custom software, it's about good solutions to hard problems. Salary employees, especially software developers, should be evaluated on their ability to come up with great solutions to hard problems and provide value to the team and company. Not whether they showed up at 7am or 10am.
Programming is not like digging a ditch, where 17 man hours are required to dig a ditch of length 14 and width 5. It is quite possible and even common to spend a lot of time working on widgets, features, and implementations which are completely unnecessary, non-optimal, or completely wrong. It is well understood that one great programmer can be worth many, many novice programmers because even 20 novice programmers given twice the time will not come up with the brilliantly simple and elegant solution of the veteran expert. So the more you can do to make the programmers you do have happy and as effective as possible, the better.
Have you ever seen cost plus government dev projects? They make more money the more pointlessly complex and slow to develop your solution it. If only the world was a sensible meritocracy.
Let's say my boss tells me to write a TPS report collector. So I come in for 10 hours every day for a month and slave away on a bunch of crufty repetitive boilerplate code which is low on creativity and high on required hours. I eventually manage to hack together a custom report finder and parser, and generate the necessary solution as described by his email. What if my coworker wakes up after a good night's sleep, comes into the office and talks to everyone involved about the project, then realizes that what the VP of MarketResources really wants is some nice graphs of the TPS trends? He finds an open source TPS report analysis framework, spends a couple days integrating it into the workflow, learns a great solution for dynamically generating graphs while out for drinks after a local dev meetup, submits it all to the boss after two weeks and then takes a vacation. Who has really provided more value to the company here? My point isn't about frameworks vs custom software, it's about good solutions to hard problems. Salary employees, especially software developers, should be evaluated on their ability to come up with great solutions to hard problems and provide value to the team and company. Not whether they showed up at 7am or 10am.
Programming is not like digging a ditch, where 17 man hours are required to dig a ditch of length 14 and width 5. It is quite possible and even common to spend a lot of time working on widgets, features, and implementations which are completely unnecessary, non-optimal, or completely wrong. It is well understood that one great programmer can be worth many, many novice programmers because even 20 novice programmers given twice the time will not come up with the brilliantly simple and elegant solution of the veteran expert. So the more you can do to make the programmers you do have happy and as effective as possible, the better.