Why Agile Development Teams Need Business Analysts


presumably more expendable) customer representative on the team. [iv]

The BA can help in two ways: by reducing the workload on the expert customer and by acting as a mentor for junior customers. The knowledge and skill set of the BA includes techniques for eliciting requirements. This can ultimately reduce time constraints by efficiently eliciting requirements and guiding the expert customer. For example, the BA can use storyboards for visually-oriented customers, interviews when requirements are complex, and either focus groups or requirements workshops when several customers are involved.

A typical BA is skilled at a variety of elicitation techniques. The BA can help train the junior customer to specify good requirements, aiding him to understand the context of the requirements and the ramifications of the requirements. Ultimately, the BA can act as a liaison between the junior on-site customer and the experienced subject matter expert, helping the junior customer to learn more about the product and be effective in specifying requirements.

Getting the Requirements Right and Getting the Right Requirements
BAs specialize in requirements and have the skills to ensure quality; namely that the requirements are complete, correct, feasible, necessary, and unambiguous. BAs are also trained in evaluating the impact of requirements changes. Both of these skills are increasingly important in agile development where face-to-face conversation is the preferred means of communication and requirements are expected to change.

Requirements serve as an understanding of what should be created not only from the perspective of the requirements consumer (the developer) but also from the perspective of the provider (the on-site customer). A close relationship between the on-site customer and development makes formal, written documentation unnecessary in agile development, especially since requirements are expected to change. The customer is assumed to be available to ensure the correct interpretation of the requirements, so detailed documentation doesn't add enough value to the bottom line product to be worthwhile.

Face-to-face communication may be the fastest mechanism, but verbal communication is notoriously imprecise and prone to both interpretation and change. Often, customers specify requirements and do not appreciate the impact of what they've said will have on the ultimate solution. It is not uncommon for customers to miss the interplay between requirements and specify new requirements that conflict with other aspects of the system.

Certain requirements are critical in that they have a significant impact to the operation of the entire system - any changes to these types of requirements would ripple through the system. These requirements must be documented so as to reduce any misunderstanding or assumption. BAs have the technical writing skills to document requirements, using both text and diagrams. More importantly, they are experienced in identifying and tracking the relationships of requirements to business objectives.

Aside from helping customers appreciate the impact of their requirements, BAs typically have the skills to develop visual models. Several methodologies, including the IBM Rational Unified Process (RUP), suggest maximizing visual models of requirements since visual models are easily changed, are absorbed faster than text, can be more precise than text, and are quicker to develop. When it comes to documenting requirements, both textually and visually, BAs can greatly help the effort by aiding the customer with correct quality specification or requirements.

As an example, a given customer may be very well versed in the current system, so well versed in fact that he has difficulty explaining the operation and requirements of the system in terms that a non-expert can understand. The BA can help in such a situation by collecting a glossary, developing good definitions, and graphically depicting the operation of the system. The BA can act

About the author

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.