To be concrete, let’s consider a publicly traded company whose ultimate goal is to make money for its shareholders. Anything that helps the organization makes more money helps the organization meet its goal. Now, back to Agile development and organizational goals: given that our organization’s ultimate goal is to make money – does Agile development help make more money? My observation has been varied – sometimes it does, and sometimes it doesn’t.
Goldratt, the originator of Theory of Constraints, tells us if we are not working on the bottleneck then we are wasting our time – the bottleneck limits the throughput of the entire organization. In fact, if we work on something that is not the bottleneck and is upstream of the bottleneck, then we are probably making things worse by increasing inventory which, in turn, increases operating expense and lead-time.
Is software development our organization’s bottleneck? Is improving software development actually translating into more money or are we simply building inventory that increases the operating expenses and lead-time? Unfortunately, most of us don’t know. If we are part of the software development group, then we naturally think it is our job to always produce more or be able to respond more quickly – to be agile. The painful truth is that if we are at an organization where software is not the bottleneck, we may be wasting our efforts by adopting Agile practices to make things better.
Many of us will shrug and say "that's not my problem, I'm a developer (or tester, or project manager, or ...)". Is it really only the concern of executives? Or should we all know about our context to be able to more effectively do our jobs? Don’t we owe it to ourselves and our organizations to know what the bottleneck is? If software development doesn’t happen to be our bottleneck, then why are we spending time and effort trying to make it better – it will not help the organization’s goals. Please share your individual experiences here, do you know your organization’s bottleneck? If so, how did you find it? Is it software development? What is your role in your organization and do you think it should be your business to know the goal and bottleneck?