While I fully agree with the overall Agile strategy of aiming for a return on investment as early in the project as possible, and iterating and adapting to add features as the external environment and the internal understanding of the problem domain evolve, I do have a number of issues with Scrum as it is commonly implemented. Chiefly that it is dangerous both to careers of individuals and to the viability of software development as a profession if the only touchpoint between technical people and “the business” is the Product Owner. Programmers are as intimately involved with the business as say, accountants†, whether they (programmers) are aware of that or not, yet outside of technology companies how much influence do the programmers have? Over even their own working conditions, let alone the direction of the company? What’s the ratio of ex-CFOs to ex-CTOs in the CEO’s chair‡?
As an individual, you must understand that a typical Scrum team is to the rest of the organization as your computer is to you; a black box, presumably replaceable by any other black box. Stories go in, features come out, the bit in the middle could be anyone, anywhere, so long as they’re cheap… By programming the box, you are creating value and deserve credit for that but the box itself is just a tool; well that is how the Product Owner (or their boss) sees it too!
I urge every member of a Scrum team to regularly talk to the same people the Product Owner talks to. Let them know what you do, how you are creating real business value, even if not directly making money for the organization, and what you can do for them, if they can get it onto the backlog. Don’t hide in the comfort zone of only ever speaking to other programmers, about programming, isolated from the bigger picture. Be an asset, not a “resource”.
† Even in companies whose main product is not software
‡ At my previous employer, the CEO came from the legal department and his deputy from HR!