I've been working as a software developer for over thirty years, in dozens of jobs. Many of them were contract positions, many were terminated due to layoffs and company failures. One of them I voluntarily left. Some were Agile, highly interactive environments, others required me to work without outside direction or feedback. They ranged from pure design work to pure coding. Each one was different. Every person you work with has their own set of habits, requirements and assumptions. The only rule that I can say I learned absolutely is that there are no absolute rules except those that you set for yourself and carry with you wherever you go.