Analytical Minimum
Being such a complex activity, analysis as a discipline requires its performers to possess a broad range of knowledge and skills and also the ability to use many different techniques and tools. The following picture shows the common activities that analysts perform and the techniques they frequently use:
Although some analysts are "more business-oriented" and others are "more system-oriented", both of them possess a very similar range of knowledge and skills. In the best case, analysts should be able to sit on both chairs which makes even heavier demands on their knowledge base and skillset. On the one hand, a good analyst should be able to understand and model business problems using domain and process modeling, but should also have the skills to describe impacts on systems such as data changes or integrations. The type of work remains basically the same for both types of analysis; what is different, though, is the context of work. For example, both business and systems analysts need to master meeting facilitation, yet the participants and topics will be slightly different for each role. The same applies to requirements modeling and process modeling, for instance, which is not a solely business analysis activity either. Besides business processes, there are also internal systems processes and workflows, which are described using the same techniques as the business ones. As a result, even though the practices and techniques described above are divided into two groups, a good analyst must be partly skilled in all of them.
Existing Resources
Effective Analysis does not introduce brand-new concepts or ideas, its biggest value comes with how it combines the already existing and proven principles and techniques to provide analysts with a comprehensive toolkit for their work. This chapter names the most important books, methodologies, or websites that every good analyst should be familiar with, which partly formed Effective Analysis and which we consider must-haves for all analysts who take their career seriously.
A Guide to the Business Analysis Body of Knowledge® (BABOK® Guide)
Author: International Institute of Business Analysis
BABOK is the globally recognized standard for the practice of business analysis. BABOK Guide reflects the collective knowledge of the business analysis community and presents the most widely accepted business analysis practices.
- It defines the skills and knowledge that people who work with and employ business analysts should expect a skilled practitioner to demonstrate
- It describes the business analysis tasks that must be performed to deliver a solution that will provide value to the sponsoring organization
- It describes the skills, knowledge, and competencies required to perform business analysis effectively. It does not describe the processes that people will follow to do business analysis
source: Wikipedia
BABOK is a comprehensive resource covering all aspects of the business analysis profession. Analysts can learn everything from what is the business analysis, what are the main activities and tasks performed by business analysts, what skills they need to have, and what techniques and tools they use.
However, BABOK is not easy to digest for all readers, especially for junior analysts, as it is rather theoretical and tedious with minimum examples. Also, it is focused solely on business analysis, so it lacks detailed information regarding systems analysis. It does not say how to describe software in such detail, which is required by the development team.
Software Requirements (3rd Edition)
Author: Karl Wiegers, Joy Beatty
Software Requirements is rightfully considered a Bible of requirements engineering. It is essential reading for everybody who is serious about analyzing software. Many of the approaches presented in Effective Analysis stem from the ideas presented in this book. But as BABOK is oriented solely on business analysis, this book focuses mostly on software requirements, so it assumes that the solution that should meet the business need is always a system. It is even evident from the name of the book that implies it is about analyzing software, not the business.
Agile Modeling
Author: Scott Ambler
Another great resource that, to a certain extent, inspired Effective Analysis, is Agile Modeling. We have already talked about agile, and what this book represents, is the application of the software development agile practices to analysis and modeling. It shows how to do analysis in a more lightweight way, avoiding formal specifications and models which are hard to read and replacing them with agile approach and techniques. The main ideas and principles could also be found at agilemodeling.com, which is sufficient to understand how analysis could be done in a more lightweight and efficient way.
Writing Effective Use Cases
Author: Alistair Cockburn
Use cases represent one of the most popular ways of gathering user requirements, yet very few analysts know how to use them properly. What seems like a trivial technique presents a never-ending source of misunderstandings and antipatterns during the project. Effective Use Cases goes beyond the basics that might be found in tutorials on the internet, presents what use cases are, when and how they should be used, and also provides excellent tips for writing them.
UML, BPMN, ERD etc.
The above acronyms stand for the standard modeling languages, which aim to unify the way the information is communicated using diagrams. Even though they were primarily intended to be used within development teams, we are often surprised how quickly business people can learn to read these models. This makes the diagrams even more powerful. The advantage of using the formal notations is that it enables anybody who understands the notation to understand your diagrams as well. It is like speaking the same language with the whole software development world, so they are considered an essential component of each analyst's toolbox.
What Is Missing
Analysts who are willing to improve their skills could draw on a tremendous amount of sources from which they could learn everything they need for the profession. However, most information is often too abstract to enable direct use in everyday work. As a result, especially beginners could be frustrated when they realize that what they learned is just a theoretical foundation of what is really needed in the everyday job and they must continuously learn how to integrate the individual pieces of knowledge. Whatsmore, the intention of most resources is to be valid for all possible cases, so they use to present just the general principles leaving the concrete implementation to readers. They do not go into much detail and lack hands-on demonstrations. Usually, the typical advice is: The specific usage depends on many factors, such as the organization environment, project type, etc.. This leaves a great space for creativity, so teams reinvent new analysis approaches over and over again. As a result, there is no single unified approach that would set basic rules, which limits collaboration and knowledge sharing. It is a valid argument that different projects have different needs; still, we believe that basic project-independent principles could be created to standardize the most common analysis activities and outputs.
The mentioned issue is closely related to another problem, which is the relative isolation of the information. Knowledge of writing use cases, requirements management, or UML modeling is essential, yet they are rarely used independently on real projects. The analyst must be able to combine them together and interconnect their outputs to see the whole picture.
Effective Analysis aims to tackle these issues by providing a comprehensive source of all necessary knowledge, principles, and techniques, complemented with practical examples of how to combine all the pieces together to increase the efficiency of the analysis activities.
Example: Plane Tickets Aggregator
The following example illustrates the extent of the analysis discipline by demonstrating the top-down analysis of the problem, from describing the high-level process to the specification of the solution.
John works as an analyst for the company called Cheapest Flights, which offers an internet service that compares flight prices and finds the best value airline tickets. A few months ago, the company successfully added tickets from American Airlines to its portfolio, and the next step is to start selling United Airlines tickets too. John was approached by a manager introducing to him the following business goal: "There is an opportunity to start selling plane tickets from United Airlines, and we would like to begin with it sometime in 2020."
Step 1: Business Goals and Objectives
After being presented with the business opportunity, John scheduled a meeting with the manager to find out more details. The meeting resulted in concrete business objectives, that are Specific, Measurable, Achievable, Relevant, and Time-bounded:
- Selling United Airlines plane tickets shall start on 20/1/2020 which is the 5th anniversary of the Cheapest Flights
- Tickets from United Airlines should make 30% of all sold plane tickets by the end of 2020
The sponsor also mentioned that the plan is to roll out the change for all digital channels at once - both website and mobile application.
Step 2: Current State
John has been working at Cheap Flights just for a couple of months and still learns the domain, processes, and systems. To understand what he is actually expected to change, John mapped out the current ordering process and depicted it using a process diagram:
During an analysis of the current state, John was approached by the manager again, telling him about a requirement specific to United Airlines. Unlike all other airlines, which use only e-tickets, United Airlines still offers the possibility to send the tickets to the customer via post. This means customers must have an option to select this type of delivery during the ordering process.
Step 3: Solution Description
Once John understood the goals the company wants to achieve and learned the current process, it is time to identify what the company needs to change and how. First, he redesigned the process diagram and highlighted the changes with the green color:
Such an overview is a great tool to visually summarize the required changes:
- Search Plane Tickets
- It must be possible to select United Airlines tickets to be included in the tickets search results
- Deliver Via Post
- User shall be able to select how the plane tickets will be delivered, via email, or via post if the airlines support it
- System shall not send plane tickets via email if the postal form is selected
Step 4: Systems Specifications
During the exploration of the current processes, John discovered existing use case specifications of the Cheapest Flight's Mobile and Web Applications. After assuring the documentation is up to date, he could reuse them and just highlight the changes to the use cases which saved him time:
Unfortunately, he was not as successful with the backend systems. Since there is no documentation of the internal working of the backend services whatsoever, John had to describe the changes himself. For this purpose, he created a sequence diagram showing how the search service pings both airlines to get the tickets. He also attached the diagram to use case through the Search Plane Tickets activity to show that the service is realization of the Order Plane Tickets use case:
Adding United to the list of supported airlines must also be reflected in the systems databases. John discovered that there is an attribute assigned to each plane ticket sold that indicates which company it was purchased from. This attribute must also be changed to reflect the possibility of buying tickets from United Airlines. Since John does not yet understand database schemas of the impacted systems, instead of describing changes to actual databases, the change is captured in the analytical class model.
Even though the example is quite simplified, it still clearly illustrates how broad the analysis discipline is. It also shows how important it is to structure information properly and what amount of knowledge and skills analysts have to have. It shows the way from identifying the high-level need to the working solution. This includes describing the business goals and objectives, breaking them down to find the best solution, and designing a solution that consists of the new capabilities along with the impacts on existing organizational components.