Things that you are skipping in your modes: 1. Comprehending the business value and purpose of the project. 2. Interacting with end users 3. Testing ( unit testing, testing for feature completion, exploratory testing ) 4. Time management ( scrum meetings or various alteratives ) 5. Mentoring others 6. UI design and refinement 7. Bug tracking and resolution 8. Future planning/system maintenance 9. Disaster scenarios 10. System backups 11. System optimizations 12. Data structure/design
All of the things I have listed here should be understood by good engineers. They don't have to do them all, but they should dabble in all of them over time in order to be more effective.
There is no single setting that works best for all of these behaviors. It takes multiple areas and modes of interaction to accomplish everything that is needed for proper application development.