Has anyone ever asked your team what development processes they use to get work done? Has anyone on your team ever said "We do Agile". Many people have written on how the Agile (capital A) has actually diluted what was originally intended with the term agile (little a). I won't go into that here, but feel free to read many posts, my favorite is by Dave Thomas (not the Wendy's guy).
Many times in organizations, people actually hide behind the term Agile as an excuse to be undisciplined in their approach to software development.
- "We'll be done when we say we are done"
- "We do what we want, when we want"
- "We don't know what to work on until the next sprint"
- "It's done; BUT I wouldn't release it to production just yet"
all in the name of "because we're Agile".
It pains me to see these kinds of behaviors because anyone trying to transform an organization around the agile (little a) ideals and principles, deals with the various experiences (good or bad). Most of the time, they are bad, and you spend much of your time education those people that agile software development is actually a really disciplined and rigorous approach to development. The next thing you have to educate them on is that Agile is not a process. It's a set of ideals and principles that guide processes. Now, Scrum is a process/framework that we can actually use and follow with various prescriptions but still much left up to the organization to adapt to their culture.
Product Owner's, not knowing what you want to build for your customers isn't an "agile" concept. Don't hide behind the term to distort your undisciplined approach to software envisioning for your market. Conversely, it's ok to have ideas that are born out of collaboration from understanding your customers and market problems and then test those ideas in working software. Too often however, we see backlogs that are riddled with indecisiveness all in the name of "we're agile".
Development Teams, lazy approaches to engineering are not a reason to hide behind the term "we're agile". Strive to ship the software as a package (and not work in silo'd pieces). Code complete doesn't ship software to the customer. Own the entire package and work as a team to get the usable / working software into the hands of the customer and over the finish line.
Any agile process focuses on excellence, which means doing the hard things the right way with the heart of continuous improvement. Remember if you aren't doing your best for the customer, someone else will. They are right on your heels.