Skip to content

Managing a Software Company

The following section provides insights from someone with extensive experience in the software industry. Unfortunately, I cannot recall the original author of the section:

I've had a 14 year career in software, I've worked at startups with 9 people, 100 people, and 12,000 people.

No one has really figured out how to organize a software company. I don't have all the answers, but here's some thoughts that might help get us there.

  1. The most valuable commodity to a software company is your coders' uninterrupted coding time.
  2. In most cases, blocks of about 4 hours of deep work tend to be the limit until your brain becomes fried. There is variance to this, but this is the absolute minimum amount of time a coder should have uninterrupted every single day.
  3. Some coders get into a flow state easier in the morning, some in the afternoon, and some in the evening. I think you should find a way to segregate these people by their cohort into functional squads. You can group PMs and EMs into these cohorts as well, because they will have non-meeting work to do during these times, too. IMO creating these cohorts as a coder's "fit" in your company is much more important than knowing a certain language, technology, whatever.
  4. Use time zones to your advantage! A west-coast morning person can be in the east-coast afternoon cohort, its the same thing.
  5. Now that your squads are separated into their respective cohorts, you could schedule meetings in the opposite 4 hour block of time thusly:
  6. morning cohort -> meetings in afternoon
  7. afternoon cohort -> meetings in morning
  8. evening cohort -> meetings in afternoon (evening cohort sleeps in the morning lol)