Day in the life of an engineer
To fully internalize feedback loops, it is useful to imagine the day in the life of an engineer in different cultures. Inefficiencies in feedback loops stack on top of each other and can lead to hours and days where an engineer or team can't make any forward progress on their plan.
Poor effectiveness culture
Imagine a world where a typical day for an engineer looks like this:
- 12am-8am: Paged after hours and lost a few hours of sleep responding to incidents
- 9am: Wake up and go to stand up
- 9:30AM - 12PM: Review new P0/P1 Bugs and realize they were assigned to your team but belong to others
- Skip lunch
- 12PM - 2PM: Two back-to-back 1 hour interviews
- 2PM - 3PM: Frontend council meeting
- 3-4PM: Catch up on slack updates + remind team members about PR code reviews you submitted last week that aren't reviewed
- 4PM: Take a look at the backlog, but too worn out, hungry and tired from the day to start on anything meaningful
High effectiveness culture
Now, imagine a world where the typical day for an engineer looks like this:
- 9AM: Standup
- 9:15AM: Take on a meaty backlog item and spend 3 hour working on it. Submit it for code review
- 12:15PM: Grab lunch
- 1PM: Respond to morning code review requests
- 2PM: Address code review comments, Merge and deploy change
- 3-5PM: Start on design doc for new feature (2 hours)
Engineers in highly effective cultures not only have more time, they are also more motivated and engaged, which leads to building better software.
What's at stake
There are many consequences to a low effectiveness culture where the feedback loops have not been managed.
- Poor developer experience: Morale will suffer as engineers get more and more frustrated with not being able to do their job
- Lower quality code: Engineers will run and write tests less often because they are hard to create or take too long to run
- Slower delivery: The accumulation of delays on the things developers have to do regularly stack up and result in slower progress
- Difficulties hiring top talent: Over time, the top engineers will move on, your engineering brand will suffer, and it will get harder to convince top talent to join as they will anticipate pain points around your culture.
- Attrition: Eventually, engineers will leave the company out of frustration. They wanted to deliver high quality code and have an impact on customers but too many things got in their way.