How to improve engineering effectiveness?

It is said “Engineering effectiveness is hard to measure”.

As an industry, we know how to scale up software. We also know how to scale up organizations, to put in management that lets thousands of people work together. But we don’t have a handle on how to scale up that engineering and human intersection.

The software engineering teams can be more effective if they take the right number of people to support effectiveness. For 10 people team, don’t devote anyone to engineering effectiveness. In 100 engineers, devote two people to making tools and other support better, and they’ll be as productive as other engineers. For 1000 engineers, devote at least 20 engineers to engineering effectiveness.

Those engineers can do a host of little things that chip away at productivity problems. Reducing compile time just five minutes a day, for example, gives engineers 1 percent more real working time. Reducing the number of times tools break, even if each incident just causes an interruption of a minute, can bring about huge productivity improvements. Each interruption takes an engineer out of “flow,” and studies show that it typically takes 15 minutes to enter a flow state again.

Good tools are also important because they are simply fun to work with. We should provide good tools for the same reason that we provide good food: they make work more enjoyable. It is not necessary to build those tools in-house each time. The tools can be proprietary, open-source and adopted for teams

Engineering effectiveness teams can also work to reduce Tech Debt, that is, problems that have been dealt with in a less than optimal fashion. Tech debt compounds over time and haunts when product scale.

We are looking for people to join us and help us with huge engineering gains at Chegg.

Check out the openings