Why Agile Development Teams Need Business Analysts


as a sort of translator, putting the requirements in terms that the agile team can better understand.

Multiple Customers
Frequently, the stakeholders and on-site customers are different people. It is impractical to have all stakeholders on-site as part of the development effort. The BA can act as a coordinator, working with the stakeholders to understand their vision and assisting the on-site customers during requirements specification to ensure that the requirements do not conflict with the stakeholders' vision. The BA can also act as a coordinator when more than one customer is involved in the project. Projects can fail if the on-site customer who is specifying the requirements doesn't have a good understanding of the ultimate project vision.

The original extreme programming project (C3) went over budget and was cancelled precisely because the requirements specified by the on-site customer prevented the team from moving toward the stakeholders' "big picture." [v] In such cases, it is the BA's responsibility to keep the project aligned with the overall vision by coordinating both aspects of the development effort though meetings and documentation, making sure that the requirements are on target with the vision.

Aside from on-site customers being aligned with the overall vision, there are a number of situations where multiple customers must be engaged in an agile project, complicating the project even further. Agile development teams should be small, around ten people. Larger projects often require multiple teams of agile developers working on the same product for multiple iterations and each team would necessarily have a different on-site customer. A complex product may also require multiple specialist customers. In either case, multiple customers must all share the same common vision and goals. Coordination will ensure that each is providing specifications that are synchronized. Engaging BAs as business savvy coordinators makes sense in such a situation and is aligned with the skill set of BAs.

Teams that are practicing agile development would do well to engage business analysts. Due to the collaborative nature of agile development, the BA's skill in seeing both the business and system perspectives of the product can be vital to the success of an agile development effort. Including a BA who can act as a liaison, facilitator, and documentation specialist on an agile team will complement the developers and help reduce the risks found on teams with homogenous skills.

As a liaison between the on-site customer and the development staff, the BA can speak the language of both the business and the system and can aid in gauging the technical feasibility of the business needs, ensuring that the development team sees the larger business context. A business analyst can help both parties see incompatibilities of a requirement from the technical or business perspective and take advantage of reengineering the business processes to make the software more efficient.

As a facilitator, the BA can coordinate multiple customers. The business analyst can serve as the point of expertise for multiple projects, attending requirements specification and product demonstration sessions for each of the customers.

As a documentation specialist, the BA can ensure that the impact of a requirements change is understood. The BA can also use visual modeling to help specify the system with greater accuracy than either textual or oral documentation.

The responsibilities of the BA do not change dramatically with agile development, only the formality of the BA's work. The BA can still be responsible for functional and non-functional requirements, clearly communicating and managing requirements. The BA can still be active in identifying and managing stakeholders, managing scope of requirements, and ensuring that the product matches the requirements and achieves

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.