One commonly held belief in the field of software engineering is that solving problems throughout the value stream or delivery pipeline can lead to overall performance improvement. However, this belief is flawed and can lead to a huge amount of wasted resources and failed efforts.
As Eric taught Bill Palmer in the book: The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win by Gene Kim, Kevin Behr et al.
"Any improvement not made at the bottleneck is an illusion."
The problem with ignoring the bottleneck is that it is the limiting factor in any software system. Failing to address the bottleneck first will lead to the ineffective use of resources and an inability to make significant progress toward performance improvement. This belief has resulted in countless failed attempts to improve software engineering teams performance by fixing individual parts of the system not near the true constraint.
Examples of this flawed belief include:
An engineering team may attempt to improve performance by investing in better development tools, only to find that their deployment process remains a bottleneck, and their code remains stuck in the code review step due to missing software developers to review the code.
A company may attempt to improve performance by hiring more engineers without addressing the real bottleneck. This can result in an overwhelmed and inefficient team, where engineers are wasting time on tasks that do not contribute to overall performance improvement.
The reason this belief is flawed is that it ignores the fundamental principle of the bottleneck.
By addressing the bottleneck, engineering teams can focus their resources and efforts where they are needed most, resulting in significant performance improvements.
To shift your mindset from the old belief to the new, the first step is to identify the bottleneck in your processes or value stream.
Once you have identified the bottleneck, focus your resources and efforts on addressing it directly. By doing so, you can improve overall performance and achieve better results way faster.
Shifting your mindset to focus on bottleneck problems will result in faster delivery times, improved code quality, and better customer satisfaction. You can expect to see a significant improvement in the performance of your engineering team and the overall success of your software products.
The "old" way of thinking is on its way out because it is inefficient, demotivating and too expensive.
Focusing on bottleneck problems is the future of software engineering performance improvement, and it is the key to achieving success in today's fast-paced business environment.
By adopting this perspective, you can ensure that your engineering team remains competitive and effective in the years to come making them way more valuable.