An apparatus for operating component based software capable of handling tasks, said apparatus including a computer and comprising: a data component (908, 1500) for storing, retrieving and manipulating data utilizing a plurality of functions, wherein the data component maintains task generation rules and templates that contain fields and values with which tasks are established; one or more adapter components causing the computer to marshal data received from the data component (908, 1500) into business objects; a business object causing the computer to provide cached data and including logic for causing the computer to manipulate the data, wherein data stored in the business object can be shared across a plurality of user interface controllers; a user interface form receive data entered by a user and to forward events generated by the user to a user interface controller, wherein the user interface form has a mode indicating the reason the user interface form was invoked, wherein the user interface form has a plurality of possible states for the mode, wherein a current state is a unique combination of enabled, disabled, visible and invisible controls, and wherein the current state is evaluated in response to a user action; the user interface controller causing the computer to: - handle the events generated by the user, - track whether data on the user interface form has changed, - mark the user interface form as dirty when the user updates form text or adds an item to a list box, - when the value of a control on the user interface form changes, reevaluate the current state of controls on the form, - interpret data entered into the user interface form, and - place a subset of the entered data into the business object; and the adapter component to ultimately persist data to a data repository of the data component (908, 1500), wherein the apparatus is adapted for allowing a user to define tasks to be performed by an employee that achieve a goal upon completion, to allow the user to input into a database of the data component (908, 1500) rules which dictate which of the tasks should be selected based on predetermined events, to receive at least one event, to retrieve from the database a user-defined rule matching characteristics associated with the received event, and to output and display the task which is selected based on the received event in accordance with the retrieved user-defined rules. a data component (908, 1500) for storing, retrieving and manipulating data utilizing a plurality of functions, wherein the data component maintains task generation rules and templates that contain fields and values with which tasks are established; one or more adapter components causing the computer to marshal data received from the data component (908, 1500) into business objects; a business object causing the computer to provide cached data and including logic for causing the computer to manipulate the data, wherein data stored in the business object can be shared across a plurality of user interface controllers; a user interface form receive data entered by a user and to forward events generated by the user to a user interface controller, wherein the user interface form has a mode indicating the reason the user interface form was invoked, wherein the user interface form has a plurality of possible states for the mode, wherein a current state is a unique combination of enabled, disabled, visible and invisible controls, and wherein the current state is evaluated in response to a user action; the user interface controller causing the computer to: - handle the events generated by the user, - track whether data on the user interface form has changed, - mark the user interface form as dirty when the user updates form text or adds an item to a list box, - when the value of a control on the user interface form changes, reevaluate the current state of controls on the form, - interpret data entered into the user interface form, and - place a subset of the entered data into the business object; and the adapter component to ultimately persist data to a data repository of the data component (908, 1500), - handle the events generated by the user, - track whether data on the user interface form has changed, - mark the user interface form as dirty when the user updates form text or adds an item to a list box, - when the value of a control on the user interface form changes, reevaluate the current state of controls on the form, - interpret data entered into the user interface form, and - place a subset of the entered data into the business object; and wherein the apparatus is adapted for allowing a user to define tasks to be performed by an employee that achieve a goal upon completion, to allow the user to input into a database of the data component (908, 1500) rules which dictate which of the tasks should be selected based on predetermined events, to receive at least one event, to retrieve from the database a user-defined rule matching characteristics associated with the received event, and to output and display the task which is selected based on the received event in accordance with the retrieved user-defined rules.