According to the International Institute for Business Analysis (IIBA);
“Business analysis is the discipline of identifying business needs and determining solutions to business problems. Solutions often include a systems development component, but may also consist of process improvement, organizational change or strategic planning and policy development. The person who carries out this task is called a Business Analyst or BA.”
OK, now that we’ve got that taken care of, let’s talk about what it really is and why it’s needed.
Software has a dismal track record. Most software projects finish well over budget and very late. A company that budgets $200,000 for a software project may end up spending a million to actually get it. Are you into the third year of your one year project?
We need to do better.
Prior to the 1990s programmers designed and wrote software pretty much by themselves. Desktop computers were relatively new, very expensive and there was still much resistance from business. Users didn’t understand the capabilities of computers. Most software projects were initiated by IT. Techies who understood computers had the vision and acted upon it. But like an artist, they had no idea, nor did they care, about how much or how long it took to realize that vision. Some really great, beautiful, elegant software was created, but it was art, and very expensive art at that.
Companies started to realize that the situation was not supportable. You have to treat software development as a construction project. There’s only so much that you can build for so much money in so much time. We’ve been doing this with other things for centuries. Buildings, bridges, roads, railways...
An examination of software projects that were well over budget or behind schedule showed that the number one reason for that was scrap and rework, meaning the programmer built something, showed it to the client, was told it was wrong and had to go and do it again. The fastest and cheapest way to build anything is to build it once. The only way that can happen is if the person building the product knows what the client wants in sufficient detail to build it. That is the goal of a Business Analyst.
Every software product is based on someone’s vision. When the client looks at a piece of software and says, “That’s not what I want.”, ”That’s not what I need.”, “That’s not what I asked for.”, it’s because it does not meet their expectations, in other words, it does not match their vision. That’s because there were two different visions, the one the client had and the one the programmers had. The programmers obviously built to their own vision.
The goal of Business Analysis is to make sure the product created meets the client expectations. In order to do this the Business Analyst must capture the client vision, articulate it, document, validate it and communicate it to the development team. In other words, to make sure that the product developed is according to the client vision. There should only be one vision and it should come from the client.
Capturing that vision, articulating it, documenting it, validating it, communicating it and validating the product created, requires skills, tools and techniques that I will expand upon in subsequent entries.