Teams

Engineering

Systems and Teams: Performance Analysis

For an engineer, analyzing and improving performance of software systems are fairly common tasks. System performance is a well-researched area. We have a number of established performance analysis methods as well as a rich toolbox of techniques to use and trade-offs we can make when designing software systems. There have been numerous times when I've had to improve the response time of an API by optimizing an algorithm, introducing caching, tuning garbage collection, reducing queuing, or trading throughput for latency. Once I started thinking more about team and organizational performance, it became clear that there are many parallels between software systems and teams and that both can benefit from some of the same techniques. In this article, I'd like to look at a few of these similarities and explore how we can improve the performance of our teams and the software that they build.

Read