So I've been working at this job for a couple of months.  I'm a little frustrated because I do my best work from 2 to 7.  In previous jobs, I've come in at 9:30-10:00 and leave at 7.  Some companies have been okay with this, others have not.

But my current company insists on my being there at 8:30.  Any deviation from this is a big deal.  Is this typical?  I have colleagues who are more 9:30 to 6:30, 10:00-7:00 guys...but maybe that is just startup culture?

I don't see why, given that I don't meet clients, etc. what the advantage to having things be so rigid could be.  I also don't see why if there is 15 to 20 minute variation sometimes in coming in, why people don't just assume that I will adjust when I leave...

Are these unreasonable expectations as a developer or am I missing something?


  But my current company insists on my being there at 8:30. Any deviation from this is a big deal. Is this typical?  


Yes it is typical. And companies like that tend to have very high turnover with developers. I was chatting with one of the project managers I used to work with (he's now a VP with some other company) and he was describing the policy at the company he was working at (at that time, one of the big satellite tv providers): starting time was 0830. The second time you are late (within a certain period), the door doesn't open when you swipe your access card, it instead calls your boss who has to come let you in. The third time (in that certain period), it contacts HR who fires you. He was commenting on the 200% turnover they had, and chuckling at the clueless other managers who created this policy. He also mentioned that he gave out his cellphone number to everyone under him, so that if they were late, he could get around the system to get them to work.  

Some managers are process oriented, and others are results oriented. You will quickly learn how to tell them apart. If you're smart, you'll figure out a way to ask in the interview some questions to determine one from the other without killing your interview. 

In a results-oriented company, what you get done is more important than how you look or what your hours are. These companies/bosses have the least impedance mismatch for developers. In those companies, when someone tries to say "waaah, q303 comes in late", a results-oriented boss will say "q303 gets his products shipped on time and under budget, what have you done lately?" Stars and heroes are very common in results-oriented companies. 

In a process-oriented company, how you get things done is more important. For a process-oriented boss, what time you arrive, what time you leave, and what cover sheet is stapled to your TPS report is extremely important. There is a huge impedance mismatch between the typical developer and this sort of manager. There are no favorites, nor stars, in a process-oriented company, and this is the sort who will deliberately fire anyone found to be indispensable. The perfect example of a process-oriented company is a fast food franchise - the goal is for every burger to be the same at every store in the country. If you make a better burger, you'll lose your franchise with them.

Modern business schools teach managers that they do not need to understand a business (nor what their employees actually do) in order to be a manager. These folks will want you warming that seat at the appropriate time because that is something that they can measure - they don't know what you do, nor do they care to, scientific management says they don't. 

As you gather more experience in the working world, you'll find out that what is important to your boss is what you give them. You could cure cancer, balance the federal budget while juggling running chainsaws, but that doesn't matter because you come in late. They don't see you when you leave at 2am, because they leave "on time" (whatever that means). 
