I work (or so I think or imagine) with Agile principles for some time, but in all honesty not long enough to call myself specialist in that area. I do though have some thoughts I wanted to share with you, especially with regards to requirements and time it takes to deliver product to market.
Namely, I think that it is easier for agile principles in software development to show themselves when requirements are hard in nature, by which I mean if those are closely related to mathematical or other scientific formulas, where there is not much room for human involvement. There is set collection of rules product needs to follow and those are not disputable. Here I think products such systems for stock management, cashiers, nuclear plant security and similar ones are good example. Human wishes in such projects are limited mostly to GUI, sound of an alarm and shape and form of a report, not much else. And that makes things easier.
Things are different when human wishes are major part of the requirements or specifications of the product. Humans react to conditions, are susceptible to moods and are forgetful or simply change their minds often. If you don’t deliver in short enough time to satisfy latest wish list, you run a risk of having to endlessly introduce changes or start all over (third option is that product owner stops this requirement craze and decides himself on Minimum Viable Product – making it his product and most of the others unhappy). Agile is supposed to be good at it, but reality is such that some of those wishes will go unanswered if you want to deliver a product at all. People will be unhappy because of that and this is possibly what gives the method bad reputation.
Last thing is a role of product owner, having all-encompassing responsibility over product, from conception, vision, creation to marketing and sales. This obviously requires others to stand back and cede at least part of their responsibilities to one person who is supposed to know it all. Alone this causes resistance – how can it be that one person knows all of those areas to be able to create a good product? It takes organizational courage and discipline to at least try without micromanagement or meddling. Not mentioning the fact that good product owners are not found easily, again adding to bad reputation.
Agile is though not any different from many other ways of doing things, at least in principle. The fact is that if you do anything halfheartedly, it is bound to fail or bring poor results at best. If you are disciplined and give it all needed support, it will have a chance of success. Especially when you will also accept the fact that a product’s failure on market is not necessarily related to the way such product was brought to life.