While collaborative engineering in outsourcing projects presents potential benefits to the partners, collaborative engineering involves some risks and reasonable concerns. For example, a poor mechanism of data exchange and data communication can lead to loss of effectiveness and efficiency of the project. As another example, collaborative engineering requires partners to adapt a common business process, which often means moving away from a familiar way of working.
Implementations of the present disclosure include computer-implemented methods for supporting collaborative engineering projects including a plurality of partners that collaborate based on a plurality of artifacts, the artifacts being usable to provide constricted process visibility and constricted data sharing as between partners of the plurality of partners.
In some implementations, actions include receiving first user input from a first partner, the first user input defining a project structure of a collaborative engineering project, the project structure including project elements, each project element having an embedded process therein that supports data sharing and process-based collaboration between partners, and receiving second user input from the first partner, the second user input indicating delegation of a project element to a second partner, the project element having associated data, wherein: during performance of the project element by the second partner, one or more versions of the associated data are automatically created based on a respective embedded process, the one or more versions of the associated data being controlled by the second partner, and, upon completion of the project element, a version of the associated data is merged with a parent version of the associated data, the parent version of the associated data being controlled by the first partner.
In some implementations, in response to receiving the second user input indicating delegation of the project element, automatically copying the parent version of the associated data to provide an initial version of the associated data based on the respective embedded process, the parent version of the associated data being controlled by the first partner, and the initial version of the associated data being controlled by the second partner.
In some implementations, in response to completion of the project element, the second partner publishes the version of the associated data.
In some implementations, during performance of the project element, the version of the associated data is automatically created based on the respective embedded process and replaces a previous version of the associated data.
In some implementations, actions further include receiving third input, the third input being provided by the second partner, and providing, in response to the third input, a project, the one or more versions of the associated data being associated with the project, and the project being owned by the second partner, such that the second partner controls access to the one or more versions of the associated data.
In some implementations, the one or more versions of the associated data are stored in a data repository associated with the second partner.
In some implementations, upon completion of the project, the version of the associated data is deleted from a data repository associated with the second partner.
In some implementations, the project elements include a project, one or more sub-projects, and one or more tasks.
In some implementations, the associated data includes one or more artifacts that can be modified by the second partner.
In some implementations, the associated data includes one or more discrete data values determined by the second partner.
In some implementations, the parent version of the associated data is stored in a data repository of the first partner.
In some implementations, the project element includes a plurality of sub-elements having a hierarchical structure, wherein version data associated with a child sub-element is merged with version data associated with a parent sub-element upon completion of the child sub-element.
In some implementations, the plurality of sub-elements includes a plurality of sub-element groups, each sub-element group corresponding to a concept.
In some implementations, the plurality of sub-elements includes one or more sub-projects and one or more tasks.
The present disclosure also provides a computer-readable storage medium coupled to one or more processors and having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations in accordance with implementations of the methods provided herein.
The present disclosure further provides a system for implementing the methods provided herein. The system includes one or more processors, and a computer-readable storage medium coupled to the one or more processors having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations in accordance with implementations of the methods provided herein.
It is appreciated that methods in accordance with the present disclosure can include any combination of the aspects and features described herein. That is, methods in accordance with the present disclosure are not limited to the combinations of aspects and features specifically described herein, but also include any combination of the aspects and features provided.
The details of one or more implementations of the present disclosure are set forth in the accompanying drawings and the description below. Other features and advantages of the present disclosure will be apparent from the description and drawings, and from the claims.
Like reference symbols in the various drawings indicate like elements.
Implementations of the present disclosure extend implementations disclosed in U.S. application Ser. No. 13/235,627, filed on Sep. 19, 2011 (SAP Ref. No. 2011P00206US), the disclosure of which is expressly incorporated herein by reference in the entirety for all purposes. In general, implementations of the present disclosure build on support for collaborative projects with long-term processes (e.g., logistics). In some examples, such collaborative projects can include a flexible process that can be changed in an ad-hoc manner, partners that can be ad-hoc invited and bound to certain roles in the collaborative project, and partners can have share relevant data of the collaborative project (i.e., shared data).
Implementations of the present disclosure are generally directed to engineering collaborations, in which partners collaborate to provide at least one engineering artifact. In some examples, the at least one engineering artifact can include a data set. In some examples, engineering artifacts are provided through the creation of designs and the corresponding implementations. Consequently, deliverables of the collaborative work can be provided in the form of large engineering data sets. Implementations of the present disclosure address how and in which manner to provide a middle ground between complete process visibility and process invisibility between partners. This is referred to as constricted process visibility within the present disclosure. Implementations of the present disclosure also address how and in which manner to provide a middle ground between complete data sharing and no sharing data sharing at all. This is referred to as constricted data sharing within the present disclosure. Implementations of the present disclosure further address how and in which manner, to support controlled iterations, such that changes are only carried through when accepted by all partners, and to support a form of data versioning that is fundamentally linked with such iterations.
Implementations of the present disclosure will be described in further detail herein within an example context of example forms of engineering collaborations. More specifically, and with reference to
Communication based collaboration as represented in
The example of
The example form 130 of
In view of the issues associated with the example forms of
With regard to constricted process visibility (R1), and in accordance with implementations of the present disclosure, the customer can (ad-hoc) define and see the status of the processes of its collaboration with its suppliers, and suppliers are synchronized according to the processes. Further, suppliers can also see, in as far the customer wants this, the status of the process. However, a customer does not need to see how the supplier works together with its suppliers and how it does its internal processes. With regard to constricted data visibility and sharing for delegation (R2), and in accordance with implementations of the present disclosure, a “delegator” can assign a task to a “delegatee” (e.g., another person or team). In some examples, the delegatee can be provided access to the corresponding relevant data. However, the delegatee must be able to work on its own version of the data, so that experimentation is possible, and results are only visible to the delegator when the results are considered mature. For example, the delegate can make the results available to the delegator. With regard to constricted data visibility and sharing between partners (R3), and in accordance with implementations of the present disclosure, a customer, for example, can assign a task to another partner (e.g., a supplier). In some examples, the customer can share corresponding data with the supplier (e.g., based on access rights assigned by the customer). In some examples, suppliers are able to work locally to create results, create their own intermediate data (which the suppliers can share at will), and explicitly transfer the results back to the requesting partner. With regard to iteration-based versioning (R4), and in accordance with implementations of the present disclosure, iterations, as they result in changes, can be explicitly linked to corresponding versions, such that results from iterations can be compared with each other, or the process can reuse, when needed, status information from a previous iteration.
The collaboration requirements (R1)-(R4), discussed above, are based on the provision of process-controlled versioning and copying (R5). With respect to process-controlled versioning and copying (R5), and in accordance with implementations of the present disclosure, processes can require copies and versions of data (e.g., copies are created for delegation between partners, versions are created for internal delegation and also when iterations take place). In some examples, the end-user need not know how and when such copies and versions are created, and the mechanism can be automatic. Accordingly, implementations of the present disclosure provide process-controlled, thus automatic, creation of versions and copies. In some examples, the term automatic indicates lack of user-input and/or intervention being required. In some examples, the term automatic indicates performance without user-input and/or intervention.
As discussed in further detail herein, implementations of the present disclosure provide project structures with embedded workflows, simple delegation, decoupling of project ownership and project sharing, project-to-partner delegation, constricted data visibility for project delegation (both simple delegation and project-to-partner delegation), iteration-based versioning, and process-controlled versioning. In some examples, the project structures provide the basis for both data sharing and process-based collaboration. In some examples, simple delegation enables a resource (e.g., team, person, partner organization) to take over the responsibility for executing a project, a sub-project and/or a task. The decoupling between project ownership and project sharing enables organizations to own projects, but still enable other partners to do work on the projects. In some examples, project-to-partner delegation enables partners (e.g., external partners) to create their own projects in order to handle their responsibility for a specific task owned by a delegating partner. In some examples, process-controlled versioning supports integration between project delegation or project iteration and the corresponding data handling.
With particular reference to
In view of
In accordance with implementations of the present disclosure, collaboration objects include an embedded process (e.g., workflow). In some examples, an embedded process includes a sequence of action items. In some examples, partners (e.g., engineers) are required to take an action based on a respective role that they play in the collaboration object. In some examples, a partner is notified of the action item to be performed, and provides a response when the action item is completed. Example action items for a project element can include: plan project (e.g., in terms of sub-projects and tasks), select resources, execute sub-project, execute task, validate sub-project results, and validate task results. As indicated by the above-provided example action items, action items need not be specific for the purpose of the work at hand, because the purpose of the work at hand is typically expressed in terms of the projects and tasks (e.g., design a mold for a plastic injection molding process), while the action item, and therefore the corresponding embedded workflow process describes the (generic) lifecycle of such a task or sub-project.
In some implementations, synchronization points are provided. In some examples, a synchronization point indicates a point where the embedded workflow of one collaboration object waits for a status change in another collaboration object. In some examples, synchronization points enable project structures to be ad-hoc planned and changed during execution of processes. In some implementations, internal data structures are provided. In some examples, internal data structures enable collaboration objects to refer to the relevant data at hand. For example, and with reference to the example of
In some implementations, simple delegation can be provided through the selection of resources. In some examples, simple delegation enables a project element to be delegated to a specific resource, the resource taking over the responsibility for execution of that project element.
As noted above, implementations of the present disclosure provide decoupling of project ownership from project sharing. In some implementations, a collaboration object (e.g., project-element, role-fulfillment) has a clear owner. For example, a role in a set of defined roles corresponds to the ownership of the project. In
As discussed in further detail herein, constricted process visibility (R1) can be fulfilled through delegation. In some examples, the customer delegates a task to a supplier. Upon acceptance of the task, the supplier has access to the initial instructions and receives access to the relevant data. The supplier can create a project based on the task and structure it accordingly. The details of the project work are invisible to the customer, in as far as the customer has limited (or no) read access to the project structure of the supplier. In some examples, constricted data sharing can be provided in a scenario where the supplier accepts a task assigned by the customer, and receives access to references to initial data. In some examples, a placeholder for the output results is made available to the supplier. The supplier uses input data for executing the task and copies the results into the output placeholder once the task is finished. Intermediate data of the supplier is invisible to the customer unless the supplier explicitly gives corresponding access rights to the customer (e.g., in order to request an approval of or feedback on the intermediate results).
As discussed above, each project element has an associated lifecycle. Through this lifecycle, controlled iterations can be realized. In some implementations, two main cases can be provided. In a first case, the results (outputs) of a project element (task, sub-project, project) can be determined to be insufficient (e.g., unsatisfactory, incomplete), resulting in an iteration. In this case, the lifecycle of the project element contains a separate result approval transition, where an action item is sent to a partner (this can be a project manager, or also the client), to approve the result. If the result is not approved, the lifecycle continues in iteration. In a second case, inputs to the project element are to be changed. Consequently, an iteration is performed. For this case, the lifecycle of the project element contains separate possible transitions, where the customer of the project element can propose an input data change, and in a subsequent transition, the supplier (providing the results of the project element) can approve. Only after approval is provided is the change executed, and the lifecycle continues in iteration. In case a task has an associated project, an agreed upon change on the owning task results in a message to the associated project, which then also continues in iteration. With regard to iteration-based versioning, and as discussed above, any iteration can be performed on the basis of disapproval/change action items. In case an extra iteration is needed for a project element, a new “essential” version can be created. This is handled by the corresponding lifecycle transition of the project element.
Implementations of the present disclosure are discussed in further detail below. Further detail of implementations of the present disclosure are provided in “Integrated Versioning and Collaboration Process Management of Automotive Production Lines based on an Artifact-Centric Collaboration Environment,” by Olena Kutsenko, submitted as a Masters Thesis to Universidad Politecnica de Madrid, Madrid, Spain (the “Masters Thesis”). The Masters Thesis is annexed hereto and is expressly incorporated herein by reference in the entirety for all purposes.
Referring now to
The motivating example discussed herein includes processes used in production development of automotive industry when several partners collaborate in order to achieve a common aim. The scenario of the motivating example focuses on several general steps used by companies in manufacturing design and development. The main actors and their roles in these processes are discussed in further detail below. The source of information is a company, which tries to improve the efficiency of their work by improving the collaborative approach they use with partner organizations.
In the motivating example, two main actors are provided as large corporations, and two groups of small actors with limited tasks and responsibilities are provided. In the motivating example, an original equipment manufacturer (OEM) is provided and includes an organization whose goal is to design and manufacture a vehicle. The OEM is responsible for formulating main requirements, purchasing, planning, and producing the final results. However, due to the complexity and the size of the work, part of the work performed by the OEM is often delegated to one or more other companies. In this case, the OEM defines tasks and sets deadlines. For purposes of illustration, discussed below, an Organization A is an OEM.
A system integrator (Integrator) can be provided and can include a company that takes responsibility for performing work delegated by the OEM. In some examples, the Integrator provides knowledge and experience in implementing complex automation solutions. The Integrator follows the OEM requirements and helps achieve the OEM's goals. For purposes of illustration, discussed below, an Organization B is an Integrator. A supplier is responsible for delivering equipment and other goods, either from the OEM-side or from the Integrator-side. Engineers perform tasks in order to make a deliverable ready, either from the OEM side or from the integrator side.
The motivating example includes an example sequence of design activities in manufacturing. In some examples, activities can include one or more activities that are usually performed in a collaborative project between the OEM and the Integrator. These activities can describe the start of the project and the initial steps leading to the design of an assembly line, for example. This information provides an overview on the processes used by the OEM and the Integrator.
As introduced above, implementations of the present disclose provide project-to-partner delegation. In some examples, project-to-partner delegation enables a delegatee (e.g., partner) to create their own “delegated” project for handling an assignment from a delegator (e.g., partner). In this manner, the delegate can have full control on the visibility of the delegated project.
Continuing with the motivating example, the OEM wants to build a new or adapted product line. For this, the OEM can define a task (e.g., “Task Design Eq.”) to design, develop and install new equipment in the new or adapted production line. The task can be defined, because this work is not done within the OEM in this example. An Integrator (e.g., partner) is requested to design the equipment for the OEM, and receives an action item to execute the corresponding task. The Integrator creates a new project (e.g., “Project Design Eq. XY”) and links the project to the action item. The new project “Project Design Eq. XY” will be owned by the Integrator.
In accordance with implementations of the present disclosure, and through project-to-partner delegation, the delegatee (e.g., integrator) will have full control over how the results are developed, can create its own sub-projects, can invite suppliers (e.g., additional partners, and so on. Consequently, the delegatee has full control over who can be invited to do certain tasks, and with whom data can be shared. This also means that, apart from the possibility to transferring results to a customer (e.g., the OEM in the motivating example above), the delegatee can also share results of the project with the customer in a controlled manner. For example, and in the context of the motivating example provided above, the delegatee can give the OEM a role in the project “Project Design Eq. XY,” and can, for example, ask the OEM to review current results.
In general, simple delegation can be described as a delegator delegating a task to a delegatee (e.g., a resource that is internal or external to the delegator), where the delegatee is provided read-write access to a separate version of data (e.g., artifacts, data values). In general, project-to-partner delegation includes the above-described aspects of simple delegation, but the delegatee can copy the relevant data (e.g., artifacts, data values) and can create its own project, sub-projects and/or tasks. In this manner, the delegatee controls full access to the copied data, including modifications thereto. In both simple and project-to-partner delegation, once the task is completed, the separate version of the data is merged with the version of the data associated with the delegator.
In some examples, inputs and outputs of the action item can be transferred to and from the project. For example, and in the context of the example provided above, a “Spec” input of the task “Task Design Eq.” will also become input for the project “Project Design Eq. XY,” and an output “Design,” (the result of the project) can be transferred (e.g., through copying) to the OEM's task.
In some examples, and in the context of the motivating example provided above, the OEM could structure a “Production Line” design activity into several sub-projects, with each sub-project having its own tasks. The OEM can requests the Integrator to handle each of the sub-projects. In this manner, the OEM keeps stricter control on the overall project structure.
With particular reference to
Once the OEM PM selects the Integrator(s), the project moves to a concept engineering phase. In some examples, concept engineering can include multiple phases: “Planning processes and layout” and “Planning tools and equipment.” The manufacturing processes are generally complex. In order to simplify the illustration, particular engineering tasks can be focused on. Example engineering tasks can include: input data, calculation of cycle time, calculation of production time, calculation of number of stations, and equipment design. The tasks and their order are depicted in
With reference to
In some examples, and based on previous experience, the Integrator and the OEM can already have pre-defined tools that can be used for performing the tasks. In some examples, tools vary from project to project and each tool can have more than one version. Consequently, an engineer can use one of available tools for executing the task. However, it is important to know which tool is the most appropriate for the current situation. Further, unless an engineer already has some experience in the work related to the task, the engineer can experience difficulties in finding a suitable solution. This can occur, for example, because the scope of engineer's work is normally very broad. Consequently, the engineer can be assigned unfamiliar tasks and may require assistance regarding how these tasks are best executed and what tools are preferable in a current context.
With particular reference to
In some implementations, and referring again to constricted data visibility and sharing for delegation (R2), when delegating a task to a resource (e.g., some person or team, a supplier, an integrator, the resource is provided with a respective version or copy of the relevant data. In this manner, the resource is able to experiment with the data to produce results that may be tentative, and are therefore not visible to other resources (e.g., working on other tasks). In some cases, the resource involved is external to the organization that delegated the task. Consequently, and in some examples, a “sand-box” can be provided, such that the external organization cannot access the original data. In case the original data is on the delegator's internal system, and the sand-box can be provided in a de-militarized zone (DMZ).
In some examples, this principle is recursive for the project structure. For example, a project P1 can include a sub-projects SP1 and SP2. The sub-project SP1 can include tasks T11 and T12, and the sub-project SP2 can include task T21. In accordance with implementations of the present disclosure, if there are several tasks (e.g., T11 and T12) under one sub-project (e.g., SP1), the results of a task (e.g., T11) should only become visible to another task within the same project (e.g., T12), if the task (e.g., T11) “publishes” the results. Further, and in accordance with implementations of the present disclosure, the results of a sub-project (e.g., SP1) should only become visible to other sub-projects of the same project (e.g., P1) after the sub-project (e.g., SP1) publishes its results.
In some implementations, constricted data sharing for delegation (R2) is realized by means of version creation and merging. To illustrate this, a project (e.g., P) can include a sub-project (e.g., SP), which includes a plurality of tasks (e.g., T1, T2, T3). In some examples, the tasks can be provided in a sequence (e.g., T1 is performed first, and T2 and T3 can be performed in parallel). For example, and with reference to
In accordance with implementations of the present disclosure, each task can write respective results in specific versions that can subsequently be merged. In some examples, tasks write results into a data structure that include objects provided as instances of a data model. For a data model can include a concept “Manufacturing System,” which is at least partially defined based on task outputs (e.g., production time, cycle time). Each lower level in the project hierarchy, in this example “Calculation of number of stations” and below that “Calculation of cycle time” and “Calculation of production time,” can be provided in respective sand-boxes for accessing and adapting its own set of data. In some examples, the sand-boxes are subsequently merged when a task or project publishes its result. For example, merging is performed when a version tree is created that mirrors the project structure. In some examples, each project element has, for each relevant element in the data structure (in this case this is only the instance of the concept “Manufacturing System”), a corresponding version. When a project element, such as the task “Calculation of cycle time” is a child of another project element, such as the sub-project “Calculation of the number of stations” a corresponding sub-version is created of the relevant data element in this case. Thus, when each of the (potentially) concurrent tasks (e.g., “Calculation of cycle time” and “Calculation of production time”) are active, a version tree is created for the instance of “Manufacturing System.” Further, when tasks write their results in these versions, the changes that they do are also recorded in the version. For example, “Calculation of cycle time” writes the new value for “cycle time,” and thus the delta is recorded on the version through the extra change element “Acycle time.” Similarly “Calculation of production time” writes a new value for “process time” as recorded through the change element “Aprocess time.” In some examples, it can be assumed that two different tasks that can run concurrently always have different goals, and the change elements will always be distinct.
In some implementations, when a project element publishes its results, the changes it has done are merged in the version corresponding to the parent project element. When the project element is finished, its corresponding sub-version can be removed. For example, when the tasks “Calculation of cycle time” and “Calculation of production time” publish their results, the changes are updated in the parent version. Principally this corresponds to a merge. Because the change elements “Acycle time” and “Aprocess time” are distinct, this merge is unproblematic. The change elements are recorded at the sub-project level. When the tasks “Calculation of cycle time” and “Calculation of production time” finish, the corresponding sub-versions can be removed. When the project element “Calculation of number of stations” publishes its results, the results are merged into the version corresponding to the “Equipment design” project.
Versioning is provided for more complex data models than that discussed above. For example, and based on the example discussed above, a data model can include the concept “Manufacturing System,” the concept “Process,” and the concept “Configuration.” In this data model, “Calculation of production time” not only writes results in the instance of the concept “Manufacturing System,” but also in the instance of the concept “Process,” and in the instance of the concept “Configuration.” In this example, “production time” can be provided as a property of the concept “Configuration” not of “Manufacturing System,” as discussed in the simpler data model provided above. As highlighted in this example of the more complex data model, the mechanism for one instance of one concept is correspondingly applied for all of the concept instances that the task accesses. In this more complex data model, “Calculation of cycle time” does not write results to instances of the concepts “Process” and “Configuration,” and only writes results to the instance of the concept “Manufacturing System.” Consequently, sub-versions for “Process” and “Configuration” do not need to be created for this task.
Referring now to
In phase (0), only the version of the data 808 corresponding to the parent exists. After selection of a resource (e.g., supplier), the resource responsible for performing the task is provided with a respective version 810. For this, the action item “Create sub-version” indeed creates a sub-version. Consequently, the phases move to phase (1) where a specific version exists for the task 802. Subsequent action items correspond to the execution of the task, and when finished, the validation is done. When the validation succeeds (e.g., the results are accepted), the changes will be published into the parent version and the child version will be removed. This is phase (2). Accordingly, the data provided in the version 810 is merged with the data provided in the version 808, and the version 810 is deleted (e.g., from a data repository associated with the resource that performed the task 802).
Referring again to constricted data visibility and sharing between partners (R3), partner-to-project delegation will be discussed in further detail. In some examples, in project-to-partner delegation, data is explicitly transferred from the project owned by the delegator to the project owned by the delegatee. In this manner, the delegatee gets full ownership of and access to the data, and thus full control over which other partner should see what, and when results are to be transferred back to the delegator. Example concepts that support this mechanism include constricted data visibility and sharing for (simple) delegation (discussed in detail above), project-on-delegation, structural tasks and overall data model, input/output relationships, and embedded workflow.
Referring now to
In some implementations, the ProjectOnDelegation is the class of a project created by the delegatee in order to handle an action item of the delegator. In some examples, a delegated project has a relationship “Realizes” with the action item 304, for which it is performed. The action item includes a reference to the project element for which it is valid. Thus, for example, the Project “Design Eq. XY,” can be provided as an instance of “ProjectOnDelegation” and it has a “Realizes” relationship with an action item for the Task “Design Eq” of the OEM.
With continued reference to
In the example of
Relating “Spec” of the project “Design Eq. XY” with the task “Design Eq.”
Relating “Design” of the project “Design Eq. XY” with the task “Design Eq.”
As similarly discussed above with respect to
Referring now to
With reference to
As in many collaborative projects, issues and bottlenecks can be hindrances. In some examples, the first difficulty for this kind of project is the number of involved departments and employees, who have interconnected tasks and may be split into different branches and with different levels of expertise. Moreover, people involved in the project are employed by different companies and, to make the partnership even more complex, both the Integrator and the OEM can invite suppliers or other participants (contractors) to delegate work. In some cases, the contractors belong to various branches having their own procedures, project management systems, communication channels as well as using different organizational methodologies. In some examples, tendering is the main tool in selecting a participant. Thus, a particular contractor is might be unknown until the project is already in progress. Additionally, the number of contractors can also be unknown in advance.
Another issue can include communication channels between partners. Each partner may have a well-developed internal communication mechanism. However, when it comes to exchanging data between partners, a universal tool might not be used by the various partners. In some examples, principle mean of communication can include e-mail, fax and telephone. Such tools, however, are not suitable for tracking, storing and reusing data later. Further, using e-mail or fax to exchange documents, for example, often leads to discrepancy between data versions owned by partners, because a document can be modified by different actors and stored in different formats. Consequently, a work overhead is provided to keep the partners updated with the last version of documents.
Another obstacle that slows down project planning and execution can include keeping project managers of the Integrator and the OEM up-to-date about the state of tasks and next actions. This can be attributed to physical remoteness of involved collaborators. Planning activities of the project between partners may also be complicated, because of different processes each partner adapts. In some examples, finding a common unified approach takes time and does not always go smoothly.
In view of the foregoing, the following issues can remain as bottlenecks to the motivating example: lack of versioning of documents; lack of common collaboration processes and tools between partners; lack of procedures for ad hoc partner invitation and data sharing; difficulties in tracking and planning. These bottlenecks result in problems in the coordination of tasks, sharing and securing of information, and managing the state of work.
Referring now to
In view of at least the motivating example discussed above, implementations of the present disclosure provide a tool that can resolve bottlenecks and other issues in collaborative projects. In some examples, implementations of the tool can be provided as one or more computer-executable programs that can be executed using one or more computing devices. Implementations of the tool of the present disclosure provide an artifact-centric approach, which helps to combine project management and its execution. In general, the artifact-centric approach is suitable to support project structures in distributed environments, supports multiple inheritance and dependencies, contains a solution for defining roles and actors, and provides for easy communication between different stakeholders.
In some examples, the artifact-centric approach presents an artifact as a process, which can be defined by a lifecycle using a flow paradigm. Such process artifacts can be grouped and linked at a macro-level as a part of a multi-level parent-child hierarchy, where lifecycles of the process artifacts can be interconnected. In some examples, apart from having several process artifacts at one level, each individual process can contain a number of child processes. A child process plays an important role in the lifecycle of the parent, as it can also cause its lifecycle events. The communication between different process artifacts can be accomplished through synchronization points and internal message action items. This method allows the support of different types of structures, in particular project structures.
In some examples, each process artifact is characterized by accompanied data. However, the data can be presented by references instead values. This provides flexibility when designing distributed systems. In some examples, a process artifact lifecycle can be controlled and manipulated either by other process artifacts and/or by an actor from outside of the system. Such an actor can include, for example, an agent system or an external user (e.g., a partner participating in a collaboration). In some examples, a message can be sent to the actor and an answer is expected of the actor in order to continue the progress of the workflow. This mechanism enables the “outside world” to be informed about steps to be performed to continue moving towards the goal.
In some examples, the involvement of external partners into the lifecycle events of a process artifact can be achieved through an assignment procedure. In some examples, each process artifact can be assigned to partners using a role fulfillment model. Through use of the role fulfillment model binding of actors to roles can be done in run-time (i.e., during the collaboration) in an ad-hoc manner.
Implementations of the present disclosure can include example steps of discovery of business artifacts, design of artifact schemas, and design of an operational model around the business artifacts. In some examples, during the discovery of business artifacts, key business entities and basic relationships between them can be provided. In some examples, a top-down approach is followed and the motivating example, discussed above, can provide a basis for identification of the artifacts. In some examples, during design of artifact schemas, the data attributes important to the identified artifacts can be analyzed. Next, focus can be turned to a logical schema and description of the macro-picture. After the operational model for the business process is ready, the sharing concept is applied.
In some implementations, to define business artifacts, a top-down approach is used to search for the artifacts, the manipulation of which is meaningful for the underlying business processes. Taking into a consideration that the collaboration involves at least two partners (e.g., companies) that affect the overall business processes, an initial artifact can include a company artifact. In the motivating sample discussed above, activities important for the OEM and the Integrator in order to achieve a common goal were addressed. The main operational goal is to successfully complete the project initiated by the OEM. Consequently, it can be provided that the goals of the project are the focus of the business processes. However, the Integrator can also create a project, which is derived from a task delegated by the OEM. The project itself can be presented by a number of attributes, such as time, scope and cost. Accordingly, another artifact is a project artifact.
In view of the motivating example, the project usually involves too many activities to be considered as one package. Consequently, the project can be divided into a number of sequential subprojects, and one or more subproject artifacts can be provided. A subproject is similar to a project in that it has its own scope and time line. However, a subproject is different from a project in the organizational procedures needed to initiate the subproject artifact, as well as corresponding attributes. A project involves the initiation phase, which considers a business environment, a stakeholder analysis, a budget, and the like. A subproject, on the other hand, does not have these characteristics and presents a holder for the set of activities leading to measurable goals contributing into the project success. While subprojects logically divide a project into measurable parts of work, they are still big enough for a straightforward execution.
By making a hierarchical decomposition, or a work break down structure based on deliverables (work packages), a number of tasks that are ready to be assigned and executed can be defined. Consequently, a task artifact is provided. Execution of the project overall and tasks in particular is impossible without human resources assigned to them. Consequently, an actor artifact and a role artifact are provided. An actor artifact represents a human resource, while a role artifact defines the requirements for actors. Success of the project is impossible without a well-defined project charter and a project management plan (PMP), which can be used to set priorities straight and to define the path to achieve the goals.
An example relationship 1100 between the above-discussed artifacts is presented in
Implementations of the present disclosure further provide for the design of artifact schemas. In some examples, key data is outlined and an information model is presented for each artifact.
In some examples, after the project charter is finished and approved by sponsors, a project manager (e.g., an authorized person defined in the project charter) develops a PMP. In some examples, a PMP can be defined as “a formal, approved document used to guide both project execution and project control.” In some examples, the PMP includes a plurality of subsidiary plans. Example subsidiary plans can include: scope, requirements, schedule, cost, quality, human resource, communications, risk and procurement plans. In some examples, the subsidiary plans guide the stakeholders to successfully achieve the goals.
In some examples, a company artifact 1102 affects the nature of the collaborative processes, as it defines geographical dispersion of partners, inner policies and goals as well as expertise owned by the company. An example information model of the company artifact is depicted in
In some examples, a project artifact 1112 is a complex entity, which requires and relies on the existence of other artifacts. For example, the project artifact can rely on a project charter artifact 1108, in which a description, a purpose and other necessary preliminary data is outlined, a PMP artifact 1110, one or more sub-project artifacts 1114, and one or more role artifacts 1106. An example information model of the project artifact is depicted in
In some examples, and similar to the project artifact, a sub-project artifact 1114 is linked to the list of tasks that are to be performed in order to achieve the goals of the sub-project. A sub-project artifact can also reference roles that are needed for its execution. An example information model of the sub-project artifact is depicted in
In some examples, a task is the smallest segment of the work that leads to creation of a deliverable. A task can include an associated a role that is connected to an actor responsible for execution of the task. The work on the task is done according to the PMP. An example information model of the task artifact is depicted in
Referring now to
Referring now to
As depicted in
Further detail and relevant information regarding implementations of the present disclosure are provided in the Masters Thesis, which is expressly incorporated herein by reference in the entirety for all purposes, as noted above.
First user input is received from a first partner (e.g., a customer) (2302). In some examples, the first user input defines a project structure of a collaborative engineering project. In some examples, the project structure includes project elements, each project element having an embedded process therein that supports data sharing and process-based collaboration between partners (e.g., as discussed with reference to, and depicted in
The project element is performed by the second partner (2306). During performance of the project element by the second partner, one or more versions of the associated data are automatically created based on a respective embedded process (2308). In some examples, the one or more versions of the associated data are controlled by the second partner. Upon completion of the project element, a version of the associated data is merged with a parent version of the associated data (2310). In some examples, the parent version of the associated data is controlled by the first partner.
Although not depicted in
Referring now to
The memory 2420 stores information within the system 2400. In one implementation, the memory 2420 is a computer-readable medium. In one implementation, the memory 2420 is a volatile memory unit. In another implementation, the memory 2420 is a non-volatile memory unit. The storage device 2430 is capable of providing mass storage for the system 2400. In one implementation, the storage device 2430 is a computer-readable medium. In various different implementations, the storage device 2430 may be a floppy disk device, a hard disk device, an optical disk device, or a tape device. The input/output device 2440 provides input/output operations for the system 2400. In one implementation, the input/output device 2440 includes a keyboard and/or pointing device. In another implementation, the input/output device 2440 includes a display unit for displaying graphical user interfaces.
The features described can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The apparatus can be implemented in a computer program product tangibly embodied in an information carrier, e.g., in a machine-readable storage device, for execution by a programmable processor; and method steps can be performed by a programmable processor executing a program of instructions to perform functions of the described implementations by operating on input data and generating output. The described features can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. A computer program is a set of instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result. A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
Suitable processors for the execution of a program of instructions include, by way of example, both general and special purpose microprocessors, and the sole processor or one of multiple processors of any kind of computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memories for storing instructions and data. Generally, a computer will also include, or be operatively coupled to communicate with, one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).
To provide for interaction with a user, the features can be implemented on a computer having a display device such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer.
The features can be implemented in a computer system that includes a back-end component, such as a data server, or that includes a middleware component, such as an application server or an Internet server, or that includes a front-end component, such as a client computer having a graphical user interface or an Internet browser, or any combination of them. The components of the system can be connected by any form or medium of digital data communication such as a communication network. Examples of communication networks include, e.g., a LAN, a WAN, and the computers and networks forming the Internet.
The computer system can include clients and servers. A client and server are generally remote from each other and typically interact through a network, such as the described one. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
In addition, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. In addition, other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Accordingly, other implementations are within the scope of the following claims.
A number of implementations of the present disclosure have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the present disclosure. Accordingly, other implementations are within the scope of the following claims.
This application claims priority to U.S. Provisional App. No. 61/714,044 filed on Oct. 15, 2012, the disclosure of which is expressly incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61714044 | Oct 2012 | US |