Friday, September 11, 2015

BA and Agile Practices in CAMS

Agile values, principles, and practices have a role to play in BA work across projects and organizations. CAMS suggests embedding of these Agile practices within the BA activities in an organization. The opportunities for Agile practices by business analysts at various levels within the organization and projects. These are further described here:

- Business needs exploration: This is where business analysts bring in practices of questioning, brainstorming, and risk analysis in conjunction with senior business executives, subject matter experts (SMEs), and users. The business analyst works here, in exploring the "real" needs of the business through facilitation, negotiation, and problem-solving skills. The business analyst needs to understand the trends in the market and the opportunities that are likely to arise. For example, the need to comply in carbon emission trading creates market opportunities as well as the need to change existing offerings (Sherringham and Unhelkar).

- Business architecture: In dealing with business architecture, the analysts bring in their collaborative skills in understanding the myriad dependencies between various areas of a business. The formulation of strategies and policies is influenced by the understanding of the business architecture. The business analyst needs to understand the customers of a business and how the customers' business operates. This analysis includes what the customers need now as well as what their future needs are likely to include.

- Enterprise architecture: This is created and maintained at a more technical level than business architecture. BA deals with the constraints or limitations on the business needs and capabilities from a technical viewpoint, and the expected qualities of the system by the business stakeholders. Enterprise architecture influences the specific system architecture as the constraints and qualities at the organizational level, ascertained through BA, are applied to the system in development.

- Requirements model: This comprises the model of the functional, nonfunctional, interface, and usability requirements of the system. This has been the most popular BA activity and, although very important at a project level, is not the only major activity of a business analyst (as seen from the previously described activities here).

- Implementation: This is where the BA activities are carried out in close cooperation with the development and implementation activities relating to the actual software application, databases, and Web Services. While the business analyst does not directly produce these outputs, he is closely associated with this work by providing relevant inputs, explanations of the models, and pointing out to dependencies between requirements.

- User acceptance: User acceptance involves testing and transitioning the many business processes to the new processes based on the new implementation; these tests are all carried out in close association with business analysts. This is mainly so because the business analysts are responsible for defining the requirements and, so they are also in a position to test (and assist in testing) the newly developed solution.

- Deployment: This is where business analysts are involved in facilitating user training and providing the necessary system support as the solution gets deployed. Business analysts can also play a handy role during the maintenance phase of the system as they enable tracing of requirements and formally changing them.

Business analysis functions at various levels within an organization. At project level, BA competencies help improve quality through enhanced communication, process modeling, and analyzing risks. Figure 7.3 shows the value added by BA work specifically at the project level. This value of BA work in projects is further described next.

- Communication within a project, especially using visual modeling techniques (such as use cases, activity graphs, and business process models). CAMS encourages the use of these modeling techniques as they not only enhance communication by providing the basis for discussion between the users, developers, and the business analysts but these same documented models also provide traceability later, when the system has moved into maintenance.

- Management of the project from a process perspective using the corresponding standards (and process maturities, e.g., Capability Maturity Model Integration [CMMI]). The requirements modeling process map, is a part of the composite approach to formalizing process engineering and requirements management. Process maps for project management, development, architecture, and quality assurance have to all relate with the business evaluation and requirements modeling process map for the effective management of a project.

- Documentation with CASE tools (e.g., Visual Paradigm, Enterprise Architect, Visio, Star Unified Modeling Language [UML]) that facilitate sharing and maintenance of visual models. CAMS encourages the use of tools to enable sharing—especially if project members are dispersed physically—of requirements by business analysts with technical roles (architects and developers) and thereby enhance productivity and quality. Tools in the BA space also enable the important step of traceability of requirements when the system has moved into production.

- Verification and validation on an ongoing basis to handle quality. BA work adds immediate value to the quality of the product within a project because not only are requirements modeled formally but walk-throughs and inspections of the models themselves reduce errors and misunderstandings substantially before the actual coding has begun. The use of a quality standard (e.g., ISO9001) and a testing framework can also go a long way in enabling verification and validation activities of a business analyst as they provide a reference point to build on.

- Contributions made by individual business analysts and their associated up-skilling and training to make them effective at the project level.

- Strategic dissipation of BA skills and knowledge across the organization. Mentoring and coaching across the organization (as is facilitated through a Center of Excellence in CAMS) enhances this BA knowledge management that goes across from one project to another at an organizational level.

A practical view on BA is that it is a cost-saving and quality-enhancing activity when compared with undertaking actual, physical development without it. While making the initial development effort a part of the exploratory work involving prototyping is a good idea, undertaking actual development and using that as a means to capturing further requirements usually turns out to be more expensive. This cost is incurred because users are not always able to anticipate the effect of a functionality on the rest of a system. Composite Agile combines the Agile practices together with BA to realize cost saving.

While the business analysts may still go through the detailed rigor of capturing and modeling requirements, they collaborate with the users to prioritize the requirements as they get modeled and develop the detailed, functional and nonfunctional requirements only for the highest priority requirements. In order to do this successfully, the business analyst has to undertake a broad assessment of the situation (problem), understand where the stakeholders are coming from, and explain to them the analytical and modeling approach being followed. This will enable the stakeholders to express their requirements in a more complete and accurate way. Modeling of such requirements also has a major advantage in managing stakeholder expectations and, later, in undertaking the acceptance of the solution.

Business analysts relate to various other roles in an organization such as business leaders (business space), technical designer/developer (solution space), and enterprise architect and project manager (background space (Unhelkar, 2003). These interactions of business analysts with other roles occur as they undertake in-depth investigations of an organization's internal structure, its processes, its relationships with external parties, and its risks. Business analysts also delve into systems and technologies from an analytical viewpoint that helps the organization understand its current and desired future state. Occasionally, the role of a business analyst itself can take many forms including those as requirements modeler, data analyst, needs analyst, risk manager, and strategist. Figure 7.4 shows the relationship of business analysts to other roles within a project. The following is a description of this relationship of a business analyst with other roles in a CAMS-based project in which Agile values and principles are practiced together with formal roles and activities:

- Business stakeholders undertake high-level identification of business objectives, root-cause analysis, strength–weakness–opportunities–threat (SWOT) analysis, and cost–benefit analysis. They document business risks and achieve consensus among various stakeholders in terms of the objectives of a large initiative (e.g., a business transformation program). Business analysts create a common understanding between the many stakeholders and also the technical and architectural roles. Through translation, clarification, and communication, a solid understanding of what needs to be accomplished is provided to all stakeholders.

- Domain specialists (SMEs) identify key business needs that are specific to the business domain. Business objectives based on investigation and identification of root causes are carried out by domain specialists/SMEs together with business analysts. Their work includes in-depth discussion of the problem in the context of the business domain, exploration of previous solutions to business problems, and identification of patterns in problems, and their solution.

- The usability specialist identifies the usability needs and applies the principles of usability to interface design. This work is carried out by analyzing the business needs in terms of ease of use, security, and scalability needs of the electronic front end (Web portal), categories of users, and risks associated with the use of the system. Specifying the usability needs in the use cases and user stories and, later, after they are developed, ensuring that the usability requirements are met is a key activity of a business analyst together with the usability specialist.

- Business users/product owner are the roles that associate with a business analyst in terms of gathering of requirements, their documentation through detailed use cases, writing of features and requirements in user stories, identifying dependencies among stories, and putting together groups of use cases and stories based on common themes. Users and product owners also work with the business analyst in refining requirements on an ongoing basis and deciding together on their acceptance criteria. The business analyst, however, does not interfere with the business users/product owner's privilege to make decisions in terms of risks and priorities associated with functionalities.

- Project managers are responsible for managing time, budgets, and requirements. Business analysts work closely with project managers in updating the scope and priorities of requirements. Participating in the collaborative approach to managing projects enables the business analyst and the project manager to come up with appropriate schedules for design, development, and testing. Conflicts within projects can also be resolved through facilitation and negotiations on the part of these two important roles—the project manager and the business analyst. Eventually, the business analyst also assists the project team in terms of maintenance of the product by enabling traceability of requirements and undertaking ongoing testing of a product that is deployed.

- The Agile coach relates to the business analyst in undertaking Agile practices such as daily stand-up meetings, updating visible charts, and measuring project velocity. The business analyst supports the coach in undertaking a comparative analysis and identification of dependencies among stories to enable a more productive and focused iteration. CAMS, in particular, requires the business analyst to specify to the Agile coach the extent and format of documentation that would be appropriate for the project.

- Change managers work with the business analysts in anticipating and planning for the change especially to business processes as the organization moves toward Lean-Agile business. Change managers also enable sharing of progress across the organization and, thereby, make it easier for the organization to change. Business analysts are geared to understand the effect of change and are, therefore, keen to associate with the person responsible for managing change.
Solution designers work together with the business analyst and explain to them the impact of design decisions on business processes and vice versa. When it comes to the nonfunctional (operational) requirements of a system, the business analysts need to interact closely with the designers to experiment, prototype, and evaluate the correct level of those requirements. Solution designer's is a more important role in CAMS than in a pure Agile project as it brings formality in technical decision making.

- Developers work very closely with the business analysts in providing additional explanations of the stories, their dependencies, their usability requirements, and the way in which the users will test the stories. Business analysts regularly remind the developers of the hard-to-remember requirements, dependencies, and business rules (that may not all be easily documented on a story card).

- Enterprise architects work toward understanding the constraints on the solution from an organizational viewpoint and the qualities of the system at the project level. Enterprise architects together with the solution designers provide substantial technical input in the background modeling space. The interaction of these two roles with the business analyst is crucial to the success of a CAMS project.

- The training specialist works with the business analyst in putting together training plans for the solution and also working out the various modes of deploying that plan (electronic, paper, company intranet, etc.). During deployment, the business analyst helps in providing a range of examples (simple to complex) that will suit the training for various types of users.

- The quality assurer/tester, together with the business analyst, ensures that the solution meets the requirements. The business analyst can provide input into creating test strategy and test designs. The business analyst also helps in specifying the variety of suitable test data that will satisfy the needs of user acceptance testing.

Taken from : The Art of Agile Practice: A Composite Approach for Projects and Organizations

No comments: