Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Programmers work in multiple modes, for me they are:

  Mode 1: Preparing to program
  Mode 2: Programming
  Mode 3: Reviewing my code
The mix varies among projects and even days, but I usually spend more than half of my time in Mode 2: Programming.

With a few exceptions, I can do Modes 1 and 3 almost anywhere, and sometimes they need to be done with others, so an open office/meeting room can be great for these.

But for Programming with any quality, I must have silence and no interruptions. I have never found this in an open office or cubicle. I can only do Mode 2 in a private office or at home.

Programmers want offices because they could need a safe haven for Mode 2 at almost any time.

If you're in an office, you can always find another place to be with others, but if you're not in an office, you constantly struggle to find a place to get into Mode 2.



While I agree that this outlook applies to "programmers" I do not agree that this is a good plan for skilled engineers. Proper software development is not just about code.

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.


I am willing to bet that Ed handles all of those activities as needed in modes 1 and 3. Breaking down "prep" and "review" into detailed bits doesn't really challenge his assertion that the core activity of actual programming regularly requires autonomous isolation.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: