At its core, the "shipping stuff" loop is pretty simple - <i>understand your users problems and ship a feature they love</i>.<p>You can imagine the fastest implementation of the loop is a single dev who knows their customers inside out and talks to them every day, has a flair for product design and works on a youthful and well architected code-base in a language they know extremely well.<p>In real life speed and quality of the loop are slowed down by:<p>1. The complexity of your organisations. Even in small companies once the engineer is out of earshot of the customer you rely on "Chinese Whispers" in the form of management, sales, product management, UI/UX, design guys etc. Its not due to incompetence, its just a very hard organisational problem whose solution depends on your company & market.<p>2. The existing complexity of your product. Products & underlying systems can be architected badly. This can make even trivial things difficult. It could be because of a lack of design knowledge (symptom: too many unused features), lack of systems knowledge (symptom: changing the colour on a website takes a day) or just a complex domain (eg tax accounting, financial services, crms etc)<p>I think you can trace back most other things (picking the wrong frameworks/languages, badly designed features, poor reliability, time taken with overhead like scrum & needless documentation etc) from the above two.