You're right. There are always some people who latch onto any new software development approach with the reaction, "Great! This means now I don't have to do <blank> anymore," where "<blank>" represents whatever they don't like to do on a software project, including requirements. Of course, that's not what any of these new approaches mean; see my article "License to Hack" at http://www.stickyminds.com. Agile development methods do definitely address requirements.
The traditional role of the business analyst has been to facilitate communication between customers who have needs and developers who create solutions. The analyst performs multiple services: bridging, translating, interpreting, documenting, modeling, prototyping and even inventing requirements. Think of the analyst function as being a project role, not necessarily a job title. This role can be performed by various people on the project who have the skills, knowledge and temperament for it. A suggested job description for a requirements analyst is available here.
Agile development emphasizes a close collaborative partnership between customer (or, more broadly, stakeholder) representatives and the developers. This is a powerful success enabler for any project. The question, then, is who should perform the central roles in this partnership. For more than 20 years I have advocated a model in which one or more analysts work with one or more key user representatives called "product champions." The product champion concept relates to the "on-site customer" concept in agile development.
One problem with this approach is that it introduces additional communication layers between the voice of the customer and the ear of the developer. You can eliminate some of those layers if the developer has the skills and knowledge to perform the analyst functions, instead of having a separate individual serve as the business analyst. However, that means developers will need training, resources and experience to do a good job when they wear their analyst hat. Not every developer will be comfortable or effective performing that role. So be sure to adequately prepare your developers to grow into the analyst function instead of expecting them to do a great job in this difficult role automatically with no training or guidance.
For more thoughts on this topic, see Scott Ambler's article "Rethinking the Role of Business Analysts."
Dig Deeper on Topics Archive
Related Q&A from Karl E. Wiegers
Requirements development process models and methodologies can be helpful when applied correctly. Expert Karl E. Wiegers explains which models are ... Continue Reading
Effective requirements documentation is essential for any good software project. Expert Karl E. Wiegers explains how to structure your software ... Continue Reading
Agile development methods may have a different approach toward requirements documentation, but following agile doesn't preclude the need for good ... Continue Reading