The bad user story about the button is a great example of a bad story. No defence. The crappy repository layer is just the same thing for developers. The most important thing is give and take from both sides in my opinion — POs work in tickets, devs work in code. It’s possible for both to bad despite the best efforts of all parties. The most important thing is to work as a team! A good PO will ensure that the dev team has the relevant business context so they know why decisions are being made. These priorities will change outside of the remit of the PO, based on external factors they can’t control. They will trust their developers to make the best technical decisions every time, and their developers will do this sometimes and sometimes they’ll create tech debt all on their own. But this is OK as long as you work as a team, accept that we’re all in it together, work towards the common goal and try to avoid explicit blame. Blame the game, not the players!