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.

Program Management

To get a better understanding of program management let’s look at the difference of definition between a program and a project. PMI (Project Management Institute, an established organization for project management practices) gives the following definitions:
-a program is “a group of related projects managed in a coordinated way, usually include an element of ongoing work”, 
-a project is “a temporary endeavour undertaken to create a unique product, service, or result”.

By definition a project has a temporary endeavour; this means that a project has a finite period of time (a start and end date) to carry out what is described in its scope. The scope defines the boundaries of a project (the amount of work to be done). Exceeding the boundaries could mean out of scope. A project, per se, sounds like a static entity, but within a timeframe the situation changes… it's a dynamic environment. This means that a project progresses with time and each single point of time has to be managed in order to identify its status (the situation of a project). Managing a project means applying processes, techniques, and tools, related to a methodology, throughout its life cycle (“from birth to retirement”).

The point is that project management has to do with activities that lie within the project's timeframe and framework of reference. Program management, on the other hand, wants to deal with this from a different perspective. It will look at the project from a different dimension (or external to the framework) to take decisions on the situation of one or more projects,at any particular time. 

This is achieved by setting up an ongoing structured system for monitoring, controlling and reporting activities on designated instances, within the timeframe of a project. 

The system has also to balance the following
(i) optimizing the use of resources, 
(ii) minimizing risks, and 
(iii) maximizing results. 

The parameters to be balanced are such that they will assure stability, if not improvement, on the company’s strategic objectives, through the success of project’s results. Some parameters might include risks identified, scope, resources, budget allocated, time … 

Monitoring is achieved by having a schedule of meetings throughout the year, with the project team of each project. Controlling includes comparing and verifying that parameters are within a certain range of acceptability (metrics are used for measurement’s purposes), with respect to the baseline. Reporting should be done at different level of details: data-graphics for top management, data-graphics and summary for middle management, and more detailed information for lower management.

For project oriented organizations, this is an ongoing activity. Furthermore, when managing multiple projects it is important to add another variable to each project, the priority. This variable needs to be managed, especially, in critical situation, e.g., if a project that is strategic for a company and is in a critical situation, it might be possible to “borrow” resources from a project that has a lower priority.

In conclusion, as a result of this ongoing process, overall project management performance will definitely improve.


One of the ten applications outlined in the Bangemann report (a white paper published after a meeting held in Brussels in June, 1994) is Teleworking. Martin Bangemann was one of the twenty members belonging to the High-Level Group on the Information Society. The aim of this group was to give recommendation to the European Council about Europe and the global information society. After the meeting, a report was requested by the European Council and, on the basis of this report, it would have adopted an operational program defining precise procedures for actions and the necessary means to achieve them. Teleworking is perfect for independent professionals that require a certain degree of freedom in their endeavour. This post-information era is tending, more and more, to an economy system based on individual productivity, where it's possible to measure results in terms of money. But, in a project oriented environment where the work is handled by a team (a group of people usually being in the same physical place), can teleworking be applied?

A complex project usually is broken down using a technique called Work Breakdown Structure (WBS). This technique gives the opportunity to decompose, in a methodical way, the project work into meaningful and logical smaller pieces for the purpose of planning and control. This becomes the data dictionary for communicating on the project; furthermore, it should include all activities associated with the project scope, it should have have a child/parent relationship (which means that you can roll up and summarize any information from the lower levels and upwards -- this is true for activity cost, resource effort and schedule information), and it can also be used to assign responsibility for groups of activities to different functional managers for planning and or accountability purposes. It should also be used as the format for capturing and outlining changes to the project. 

The WBS makes it "easier" to manage (monitor and control) the project work, if the team is all in one place. But, with telework the work place becomes "virtual". This means that team members might be dislocated to different parts of the world, including the people that are accountable for keeping track of the project's progress and status. Assuring that results are maximized, resources optimized and risks minimized can be accomplished through an integrated global PMO evolutionary mechanism ... this will solve the problem of the "distance global manager".