Tuesday, February 16, 2016

Ten Reasons To Decompose An Activity Or Function

Operational Activities and System Functions (and the activity models, process models, function models, functional or process flows, sequence diagrams, or activity/function “threads” of which they are a part) are essential components of any Enterprise Architecture. They effectively identify what the enterprise is all about—what the enterprise does; who or what does it; how it is done; with what it is done; and for or to whom or what it is done. One of the key skills associated with modeling activities (and functions), is called “activity decomposition”, which is the process of breaking down large or complex activities or functions into small, more discrete parts. The following ten rules for naming operational activities and system functions are presented for consideration and use by modelers and architects.

1. The Activity Includes Three Or More Steps. Activities or functions that are performed in three or more well-defined steps may be decomposed such that each step is a separate sub-activity or sub-function.  Sub-activities/functions that are derived from steps that must be performed in a specific order may be sequenced accordingly within the activity or function model.  (NOTE: Those activities or functions with only two steps need not be decomposed.)

2. The Activity Generates Multiple Partial Outputs That Are Combined to Create the Final Output. For these types of activities or functions, you can create separate subordinate activities or functions to generate each of the partial outputs, and another to combine them into the ultimate output. An example of this is the activity of building a car.  Interim partial inputs created prior to the final construction of the car would include the engine, the transmission, the fuel system, the chassis, and others.  So the “Build A Car” activity could be decomposed into “Build Car Engine”, “Build Automatic Transmission”, “Construct Car Fuel System”, “Construct Vehicle Chassis”, etc.

3. The Activity Produces Multiple, Distinct Outputs.  A separate sub-activity or sub-function may be created for each of the distinct outputs.  This should only be done, however, if there are at least three unique outputs.  An example of this is the activity “Make Desserts”.  Decomposed sub-activities might include “Bake A Cake”, “Bake A Pie”, “Make Pudding”, and “Make Frozen Dessert”.

4. The Same Input(s) Used to Produce Three or More Outputs.  This is a special case of #3, above. The primary distinction is that, in this case, the different outputs are generated from the same set of inputs.  For example, the parent activity might be “Bake Pastries”, and the inputs to this activity would be flour, sugar, butter, and eggs.  Distinct outputs of this parent activity that might be created using these same inputs include cakes, cookies, cupcakes, donuts, and muffins.  Subordinate activities, therefore, might be “Bake A Cake”, “Bake Cookies”, “Bake Cupcakes”, “Bake Muffins”, and “Make Donuts”.

5. The Activity Is Performed By Different Entities.  When multiple entities (e.g., organizations) perform the same activity or function, there may be a need or desire to describe the activities/functions from an organizational perspective.  To do so, create a version of the activity or function for each of the entities or organizations that perform it.  Be sure to include the name or designation of the entity or organization in the name of the activity or function.  An example is the activity “Manage Budget” if performed by governmental agencies at the municipal (i.e., city), state, or national levels.  So decomposed subordinate activities might be “Manage El Paso City Budget”, “Manage Texas State Budget” and “Manage US National Budget”.

6. The Activity Is Performed to Varying Levels of Detail.  Sometimes, the same activity or function may be performed to different levels of detail based on varying requirements, different event triggers, the available inputs or resources, the experience of the performer(s) or the prevailing conditions. An example of this involving different requirements and event triggers is the activity “Perform Item Inventory”.  Subordinate activities might include “Perform Daily Inventory”, “Perform Weekly Inventory”, “Perform Monthly Inventory”, “Perform Quarterly Inventory”, “Perform Annual Inventory”, and “Perform On-Demand Inventory”.

7. The Activity Is Performed Using Different Inputs.  There are situations in which essentially the same output is generated using different sets of inputs.  This is the opposite of the situation described in #4, above. This situation can be illustrated by the activity “Create A Sculpture”, as a sculptor can use many different media to create a finished product.  Appropriate subordinate activities of “Create A Sculpture” might, therefore, include “Sculpt In Bronze”, “Sculpt In Stone”, “Sculpt In Clay”, “Sculpt In Ice”, “Sculpt In Glass”, “Sculpt In Wood”, and “Sculpt In Mixed Media”.

8.  The Activity Is Performed Differently Under Different Conditions. In this situation, the output(s) of an activity are the same, but the process used to generate the output(s), and possibly the inputs used in the process, differ based on some definable factor.  The value of this definable factor determines which of the subordinate activities is to be executed.  An example of this is the activity “Deliver Merchandise to Purchaser”.  Subordinate activities would include “Provide Standard Delivery”, “Provide Expedited Delivery”, and Provide Emergency Delivery”.  The factor determining exactly how the activity is performed would be purchaser’s preference.

9.   Alternate Methods Are Available to Generate the Same Output. This is very similar to the situation described in #8, above, with one major difference.  There is no specific factor to define which of the subordinate activities has to be executed: all subordinate activities are equally valid under all conditions.  The activity “Advertise Goods and Services” is a great example of this situation – there are a number of advertising methods available and with minor exceptions, each of them is equally valid and equally effective.  Subordinate activities include “Advertise Via Newspaper”, “Advertise Via Radio”, “Advertise Via Magazine”, “Advertise Via Internet”, “Advertise Via Direct Mail”, “Advertise Via Billboard”, and “Advertise Via Broadcast Television.  In this particular instance, an individual or organization wishing to advertise might not just choose to implement one method, but might even multiple methods (and their associated subordinate activities) simultaneously.

10.  Activity Outputs Are Tailored for Different Consumers. This one addresses the situation wherein there are multiple consumers of the outputs of an activity, each with unique requirements.  The subordinate activities would exist to modify the output as appropriate to meet the needs of each consumer.  For example, the activity “Publish Books” might be decomposed to create different versions of a book to cater to different audiences: “Publish English Books”, “Publish Spanish Books”, “Publish French Books”, “Publish German Books”, “Publish Children’s Books”, “Publish Adolescent Books”, etc.