Here’s a common scenario. A company’s software development process isn’t working real well. The software is often late, incomplete and buggy. (I’ll bet you’ve heard that story before.)
Anyway, management decides to try a new approach. ‘Agile’ is a hot buzzword so they decide to give agile software development a try. A few development folks are sent to training to become the company’s agile experts. Management can’t wait to see how much better the software team will perform now that they are ‘agile’.
Good intentions are not enough.
They (the software development team) cannot be agile alone. Why is this such a difficult concept to grasp? Agile is not a software development methodology or framework like the Unified Process, Prince2 or Crystal Clear. You can be agile but you can’t implement agile.
Most companies just don’t seem to grasp how important sales, marketing, finance, human resources, and their customers are to the software development process. Software developers cannot develop high-quality software in a vacuum.
Software teams can never be agile on their own.
Multidisciplinary product teams can be agile. Internal application development teams can be agile. Even teams developing infrastructure software like operating systems and servers can be agile. The key element is the active participation of business and/or customer groups.
If your company wants to experiment with short iterations, frequent builds, and integrated quality assurance testing, great! Go for it. There are many ways to improve upon waterfall. Just don’t call it agile.