Skip to main content

Functional Analysis

Some people exchange the term functional with business in functional analysis activities. There is a difference between business and functional analysis. In my opinion, business analysis is the process of analyzing the business process(es) and producing a model of the business for the purpose of improving it or optimizing it. This is because it's much easier to work with models. On the other hand, functional analysis, in an application context, is the process of analysing the sum of functionalities that produce the logic of how things function and work gets done.

Before analyzing a business context, let's say that Information Technology as a tool to support human activities might not "support" all processes. This is becasue some processes cannot be digitalized and, hence, need to be carried out by people. For example, when ordering a product from internet, the process of bringing the product to your home is done by people. Maybe this will change in the future, like in the Star Trek series, allowing an object to be transported to its destination in a beam and then the object is rematerialized. But, until then, there's a need to properly analyze all processes that make up a business scenario and determined which ones can be digitalized, and which ones cannot, and design the whole process scheme with methods that facilitate technology implementation.

Hence, we need to start somewhere. Knowing nothing about the business context, the best way to start is to organize a series of interviews with the people that run the business and have knowledge of all activities and processes. This investigation can be conducted in different ways, for example:

(i) individual interviews, 
(ii) workshop involving more people.

Any of these two case will do, just be aware on how much time is given to capture this information and on the availability of the person being interviewed. The time required for this type of analysis is proportional to the level of complexity of the process to be analyzed. What is important here is to use a serious and structured approach in order to have the opportunity to capture all steps involved in each process of the business. Each process has to have a purpose, entry criteria that triggers it, input(s), tasks (a list of actions bringing the results), output(s), work aids (there might be functionalities to support the process), and a criteria for exiting the process. This can be structured in the form of a template to facilitate the analyst.

An applications may consists of one or more fucntionalities. There's also a need to identify other important aspects of an application, that is, those characteristics that enables a user to have a set of capabilities. Let's call these characteristics features. For example, on a a cell phone, text messaging is possible thanks to the gsm technology. So, if the cell phone is represented by the application and text messaging is one of its functionalities, then gsm is a feature of this applicaction (because a user is capable of sending a text message). Hence, as part of the analysis, a list of features can be captured and described.

The next step is to analyze the way a user interacts with the application. Again, this shall be done by organizing a series of interviews and/or workshops with users/subject matter experts that are already interacting with computers and have knowledge of all functionalites from user's perspecitve and, perhaps, desire to have a new application.

The analysis work is accomplished by describing the way users interact with the application to get the job done (this includes all steps and the logic of business rules). Activity diagrams, which are similar to flow charts, can further support the application by describing the the flow and logic of the activities (use cases, business rules,...). 

After having analyzed the process and captured a few use cases and other elements such as the number of reports, the number of screens (user interfaces), algorithms and data needed for a specific application (or at least have a good feeling of most elements), it's possible to make an estimation on its size and determine how much effort is needed to build the application.

Popular posts from this blog

The differences between Project, Operation and Program

We said that a project is defined as a temporary endeavor that consumes resources, incurs cost and produce deliverables over a finite period of time to achieve a specific goal. They come in all shapes and sizes and can vary in length or complexity.

Operation type activities are similar to project activities in that they too produce deliverables, consume resources and incur cost. However they are on-going or repetitive in nature, hence they are not project activities or tasks. Some examples of operation activities are weekly maintenance of databases, paying invoices or help desk operations activities.

Programs are much larger than projects. They are made up of many projects and on going activities such as operation type activities and are similar to projects as they consume resources, incur cost and produce deliverables. However programs are more complex and include repetitive operation type activities such as maintenance work, facility administration etc, and are funded typically on a…

Forecasting Project Costs using Variance Analysis

One way to report on cost control and forecasting during project execution is to use the Variance Analysis method, that is, explaining the difference (or variance) between actual costs and the budgeted costs with numbers and make new estimates for completing the work. Please consult this link Earned Value Management for related literature and references.
For the purpose of making these calculations, I will use an hypothetical project example (but it could also be a task or phase). "A company has contracted a service provider to deliver a project in 10 working days (80 hours) for the estimated cost of $10,000 and a work effort of 200 hours. The contract is Time and Material, this means that the company pays the provider for the number of hours actually required to perform the service. So, the provider has no incentive to minimize the number of hours expended on the service. The less efficient the provider is, the more money it makes!"
Summary of Time and Material Contract (re…

Using PERT for estimating tasks

A simple way for estimating tasks is to use the PERT (Program Evaluation review technique) weighted average method. This method uses a weighted average duration estimate to calculate task duration, it gives the opportunity to take into account information based on different types of estimates values (such as poorly defined areas, probabilistics, and ranges for the schedule). This method is based on the Beta distribution model because it can model events which are constrained to take place within an interval defined by a minimum and maximum value. (For this reason, the Beta distribution is used extensively in PERT, CPM and other project planning/control systems to describe the time to completion of a task).

The term weighted average means that the equation uses weighted factors to calculate the expected task duration.
The equation and process modelling a task for PERT is the following:  E=(O+4M+P)/6 (equation)  E= Expected Value  O= Optimistic Value (this is equivalent to a minimum val…