Applications may be used to perform a wide variety of tasks in computing and networking systems. In some examples, applications may be designed for mobile computing devices, whereas in other examples, applications may be designed for desktop, laptop, server, or other suitable configurations. Often, an application development project may be technically and geographically distributed and of considerable size, complexity, and scope. In some examples, effective management of or contribution to such a project involves knowledge of the owners or stakeholders of any given feature, entity, or area of the project.
The following detailed description references the drawings, wherein:
Applications may provide a variety of different functionalities to allow performance of a wide variety of tasks. During application development, these functionalities may be categorized as application features, application entities, or application areas. Each of feature, entity, or area of an application may have different stakeholders that manage or contribute to the feature, entity, or area. As used herein, a stakeholder may refer to an individual that is actively involved with a feature, entity, or area of an application and can influence the feature, entity, or area of the application. Some stakeholders may have a greater or lesser degree of involvement and influence than others.
Over time, the stakeholders of a particular, feature, entity, or area of the application may evolve and shift as individuals move on, move up, or change roles. In some examples, each feature, entity, or area of the application may have multiple stakeholders in various roles. For instance, in one example, a stakeholder of a particular feature may be a quality assurance technician tasked with testing the feature. In another example, a stakeholder of an entity may be a functional architect tasked with defining the entity. In yet another example, a stakeholder may be a senior manager tasked with managing a particular application area such as a security mechanism or ticket management.
In some examples, stakeholders are identified via manually updated lists of stakeholders. For instance, a manager of a feature or an entity may identify stakeholders at the feature's or the entity's inception. Alternatively, as others work on the feature or entity, they may self-identify themselves as stakeholders. In other examples, a stakeholder list may be determined by gathering names from an organizational chart (“org chart”) that identifies individuals within the organization and their roles and relationships. In yet other examples, a stakeholder list may be determined by gathering names from an email or chat list associated with the application feature or entity. Some examples involve a hybrid approach in which stakeholders are identified via a combination of manually updated lists, org charts, and email/chat lists.
The accuracy of these approaches may depend on how up-to-date the manually updated lists, org charts, and email/chat lists are kept by administrators, managers, programmers, and the stakeholders themselves. Given the size and scope of many application development projects and individual's ever-changing roles within such projects, identifying stakeholders via manually updated lists, org charts, and/or email and chat lists may incorrectly identify individuals who are not stakeholders of the given application feature or area or may identify outdated stakeholders who are no longer current stakeholders. In addition, these approaches may fail to identify the most relevant or current stakeholders.
Examples described herein may improve the identification of a stakeholder list for a segment of an application by scanning an audit trail associated with the segment of the application and identifying the stakeholder list based on the audit trail. In some examples described herein, metadata associated with the segment of the application may also be scanned and the stakeholder list may be identified based on the audit trail and the metadata. In some examples, scanning the audit trail may involve identifying a set of user actions and a time for each user action associated with the segment of the application. Scanning the metadata may involve identifying a set of views and a time associated with each view associated with the segment of the application. In such examples, the stakeholder list may be a function of the set of user actions and the set of views.
In some examples described herein, a processing resource of a device may execute instructions on a machine-readable storage medium to identify a stakeholder list associated with a segment of an application. The machine-readable storage medium may be encoded with instructions to receive a request to identify the stakeholder list associated with the segment of the application. The machine-readable storage medium may further comprise instructions to scan an audit trail associated with the segment of the application and based on the audit trail, the stakeholder list may be identified via a machine-learning technique.
In some examples described herein, a device comprising a processing resource and a machine-readable storage medium may identify a stakeholder list associated with a segment of an application. The machine-readable storage medium may be encoded with instructions to receive a request to identify the stakeholder list associated with the segment of the application. The machine-readable storage medium may further comprise instructions to scan an audit trail associated with the segment of the application and scan metadata associated with the segment of the application. In addition, the machine-readable storage medium may include instructions to identify the stakeholder list via a machine-learning technique based on the audit trail and the metadata.
In some such examples described herein, the instructions to scan the audit trail may further comprise instructions to identify a set of user actions associated with the segment of the application, identify a type of user action for each user action of the set of user actions, identify a time associated with each user action of the set of user actions, and index the audit trail based on the set of user actions, the type of user action, or the time. In some such examples described herein, the instructions to scan the metadata may further comprise instructions to identify a set of views associated with the segment of the application, identify a time associated with each view of the set of views, and index the metadata based on the set of views or the time. In some such examples, the instructions to identify the stakeholder list may further comprise instructions to assign a weight to each user action of the set of user actions based on the time and the type of user action, assign a weight to each view of the set of views based on the time, and determine an order of each stakeholder in the stakeholder list as a function of the assigned weight of each user action and the assigned weight of each view. In other such examples, the instructions to identify the stakeholder list may further comprise instructions to identify a role of each stakeholder in the stakeholder list based on the set of user actions and the set of views.
In some examples described herein, a method of identifying a stakeholder list associated with a segment of an application may comprise receiving a request to identify the stakeholder list associated with a segment of the application where the segment is a feature, an entity, or an area of the application. The method may also include scanning, by a processing resource, an audit trail associated with the segment of the application and scanning, by the processing resource, metadata associated with the segment of the application. Based on the audit trail and the metadata, the stakeholder list is identified by the processing resource and via a machine-learning technique. In examples described herein, a determination, action, etc., that is said to be “based on” a given condition may be based on that condition alone or based on that condition and other condition(s).
The examples described herein may utilize machine-learning techniques to improve the accuracy of stakeholder identification such that relevant stakeholders are identified with greater accuracy and regularity. The examples described herein may also utilize machine-learning techniques to more accurately identify a role of each stakeholder. By analyzing an audit trail associated with a segment of an application and metadata associated with a segment of an application, the examples described herein may provide substantial efficiencies, mitigate defects, and provide real world improvements to application development and management.
Referring now to the drawings,
As used herein, a device may be a desktop computer, laptop (or notebook) computer, workstation, tablet computer, mobile phone, smart device, switch, router, server, blade enclosure, or any other processing device or equipment including a processor or processing resource.
In examples described herein, a processing resource may include, for example, one processor or multiple processors included in a single computing device or distributed across multiple devices. As used herein, a processor may be at least one of a central processing unit (CPU), a semiconductor-based microprocessor, a graphics processing unit (GPU), a field-programmable gate array (FPGA) to retrieve and execute instructions, other electronic circuitry suitable for the retrieval and execution instructions stored on a machine-readable storage medium, or a combination thereof.
Processing resource 110 may fetch, decode, and execute instructions stored on storage medium 120 to perform the functionalities described below in relation to instructions 130, 140, and 160. In other examples, the functionalities of any of the instructions of storage medium 120 may be implemented in the form of electronic circuitry, in the form of executable instructions encoded on a machine-readable storage medium, or a combination thereof. The storage medium may be located either in the device executing the machine-readable instructions, as shown in
As used herein, a machine-readable storage medium may be any electronic, magnetic, optical, or other physical storage apparatus to contain or store information such as executable instructions, data, and the like. For example, any machine-readable storage medium described herein may be any of Random Access Memory (RAM), volatile memory, non-volatile memory, flash memory, a storage drive (e.g., a hard drive), a solid state drive, any type of storage disc (e.g., a compact disc, a DVD, etc.), and the like, or a combination thereof. Further, any machine-readable storage medium described herein may be non-transitory. In examples described herein, a machine-readable storage medium or media may be part of an article (or article of manufacture). An article or article of manufacture may refer to any manufactured single component or multiple components.
In the example of
As used herein, a stakeholder may refer to an individual that is actively involved with a feature, entity, or area of an application and can influence the feature, entity, or area of the application. Some stakeholders may have a greater or lesser degree of involvement and influence than others. A stakeholder list refers to a list or a set of stakeholders.
In some examples, instructions 130 may receive the request to identify a stakeholder list from a user such as a functional architect, tester, developer, or other individual tasked with developing the segment of the application. For instance, a quality assurance technician tasked with testing a particular feature of an application may request a stakeholder list for the feature to discuss the feature with those individuals who may be most familiar with the feature. In other examples, instructions 130 may receive the request to identify a stakeholder list from another application.
Instructions 140 scan an audit trail associated with the segment of the application. An audit trail, as used herein, may refer to a record of actions related to a segment of the application. For instance, an audit trail may be generated at application feature's inception and may contain a record of each addition or change made to the feature. In some examples the audit trail may be stored in an audit database. The audit database may be located in central server or servers associated with the application. If the request to identify a stakeholder list 102 is associated with a particular feature of the application, instructions 140 may analyze the audit trail associated with that feature. If, however, the request to identify a stakeholder list is associated with an area of the application such the upgrade mechanism, instructions 140 may analyze each audit trail associated with features or entities related to the upgrade mechanism.
In the example of
In some examples, a training set may be used to develop a set of rules for use by the machine learning technique. In other examples, upon identifying a stakeholder or a stakeholder list, confirmation may be requested via an application programming interface (API) call. Based (at least in part) on the answer, the machine-learning technique may adjust its set of rules to improve accuracy.
Instructions 130, 140, and 160 may be part of an installation package that, when installed, may be executed by processing resource 110 to implement the functionalities described above. In such examples, storage medium 120 may be a portable medium, such as a CD, DVD, or flash drive, or a memory maintained by a server from which the installation package can be downloaded and installed. In other examples, instructions 130, 140, and 160 may be part of an application, applications, or component(s) already installed on device 100 including processing resource 110. In such examples, the storage medium 120 may include memory such as a hard drive, solid state drive, or the like. In some examples, functionalities described herein in relation to
Further examples are described with reference to
Instructions 230 receive a request to identify a stakeholder list 202 associated with a segment of the application, as described above in relation to instructions 130 and request 102 of
Metadata associated with the segment of the application may include information relevant to the application segment that is not included in the audit trail. While an audit trail may record and log any changes made to the application segment, metadata may further capture any views, without changes, of the application segment by individuals. In some instances, the metadata may further capture a time associated with the view, including the length of the view. As depicted in
Instructions 252 identify a time associated with each view of the identified set of views associated with the segment of the application. Identifying a time may involve determining a date and time that the view occurred along with a length of time of the view. Instructions 253 index the metadata based (at least in part) on the identified set of views. Indexing, as used herein, refers to a systematic sorting to improve searching. Instructions 253 sort the metadata based (at least in part) on the set of views so that a stakeholder may be more easily identified from the information. Sorting the metadata based (at least in part) on the set of views may also involve sorting the metadata by a time of each view. In some examples, instructions 253 may store the index in an index table, an index database, or other index data structure.
Analyzing metadata to capture a set of views may be useful in determining a stakeholder because many users, for instance entity or project managers, may view various features or entities without making any associated changes. These views may be significant in identifying higher level stakeholders, though they may not be captured in an audit log.
Instructions 260 identify, via a machine-learning technique, a stakeholder list based (at least in part) on an audit trail, as discussed above in relation to instructions 160 of
Instructions 230, 240, 250, 251, 252, 253, 260, and 261 may be part of an installation package that, when installed, may be executed by processing resource 210 to implement the functionalities described above. In such examples, storage medium 220 may be a portable medium, such as a CD, DVD, or flash drive, or a memory maintained by a server from which the installation package can be downloaded and installed. In other examples, instructions 230, 240, 250, 251, 252, 253, 260, and 261 may be part of an application, applications, or component(s) already installed on device 200 including processing resource 210. In such examples, the storage medium 220 may include memory such as a hard drive, solid state drive, or the like. In some examples, functionalities described herein in relation to
Additional examples are described in relation to
Instructions 330 receive a request to identify a stakeholder list 302 associated with a segment of the application, as described above in relation to instructions 130 and request 102 of
The audit trail may include a record or log of actions taken by individuals to change an application feature or entity. Instructions 341 identify a set of user actions associated with the segment of the application. In that regard, instructions 341 may analyze the audit trail associated with the requested segment to determine all recorded user actions associated with the segment of the application, or a particular set of recorded user actions associated with the segment of the application. The particular set of user actions that the audit trail is analyzed for may depend on request 302.
Instructions 342 identify a time associated with each user action of the identified set of user actions associated with the segment of the application. Identifying a time may involve determining a date and time that the user action occurred. In some examples, it may also involve determining the length of time of the user action. Instructions 343 index the audit trail based (at least in part) on the identified set of user actions or the time. For instance, instructions 343 sort the metadata based (at least in part) on the set of user actions or based (at least in part) on the time associated with each user action of the set of user actions so that a stakeholder may be more easily identified from the information. In some examples, instructions 343 may store the index in an index table, an index database, or other index data structure.
Instructions 360 identify, via a machine-learning technique, a stakeholder list based (at least in part) on an audit trail, as discussed above in relation to instructions 160 of
In the example of
Instructions 330, 340, 341, 342, 343, 360, and 362 may be part of an installation package that, when installed, may be executed by processing resource 310 to implement the functionalities described above. In such examples, storage medium 320 may be a portable medium, such as a CD, DVD, or flash drive, or a memory maintained by a server from which the installation package can be downloaded and installed. In other examples, instructions 330, 340, 341, 342, 343, 360, and 362 may be part of an application, applications, or component(s) already installed on device 300 including processing resource 310. In such examples, the storage medium 320 may include memory such as a hard drive, solid state drive, or the like. In some examples, functionalities described herein in relation to
Further examples are described herein in regards to
Instructions 430 receive a request to identify a stakeholder list 402 associated with a segment of the application, as described above in relation to instructions 130 and request 102 of
Instructions 430, 440, 450, and 460 may be part of an installation package that, when installed, may be executed by processing resource 410 to implement the functionalities described above. In such examples, storage medium 420 may be a portable medium, such as a CD, DVD, or flash drive, or a memory maintained by a server from which the installation package can be downloaded and installed. In other examples, instructions 430, 440, 450, and 460 may be part of an application, applications, or component(s) already installed on device 400 including processing resource 410. In such examples, the storage medium 420 may include memory such as a hard drive, solid state drive, or the like. In some examples, functionalities described herein in relation to
Instructions 530 receive a request to identify a stakeholder list 402 associated with a segment of the application, as described above in relation to instructions 130 and request 102 of
Instructions 541 identify a set of user actions associated with the segment of the application, as described above in relation to instructions 341 of
Instructions 550 scan metadata associated with the segment of the application, as described above in relation to instructions 250 of
Instructions 560 identify, via a machine-learning technique, the stakeholder list based (at least in part) on the audit trail and metadata, as described above in relation to instructions 160 of
In some examples, the machine-learning technique may use a weighting mechanism to determine which users may be stakeholders and which stakeholders may have a greater stake in or influence on the application feature, area, or segment. In that regard, instructions 561 assign a weight to each user action based (at least in part) on the time of the user action. For instance, the machine-learning technique may assign a greater weight to actions more recent in time and a lesser weight to actions less recent in time. The machine-learning technique may also assign a greater weight to certain types of actions or for actions lasting different lengths of time. As an example, 10 minutes spent reading a user story of an application feature may be weighted more heavily than 2 minutes spent reading the user story of the application feature.
Likewise, instructions 562 assign a weight to each view of the set of views based (at least in part) on the time of the view. In some examples, the machine-learning technique may assign a greater weight to a view that is more recent in time and a lesser weight to a view that is less recent in time. In other examples, the machine-learning technique may assign greater weights for longer views and lesser weights for shorter views.
In some examples, the stakeholders within a stakeholder list may be identified as a function of the assigned weights. As an example, each individual's user actions with respect to a requested segment of an application may be weighted based (at least in part) on the action, the time, and/or the length of time of the action. Similarly, each individual's views with respect to the requested segment of the application may be weighted based (at least in part) on the time and/or the length of the view. These may then be summed to determine the likelihood that the individual is a stakeholder.
Instructions 563 may additionally determine an order of each stakeholder in the stakeholder list as a function of the assigned weight of each user action and the assigned weight of each view. The order of the stakeholders may identify those stakeholders having a greater stake in, greater influence on, or greater knowledge about the requested segment of the application. In some examples, each individual's user actions and views associated with the requested segment of the application may be weighted and summed. The individual with the largest sum would be the stakeholder with the greatest likelihood of having the greatest stake in, the greatest influence on, or the most knowledge about the requested segment of the application. The individual having the second largest sum would be the stakeholder with the greatest likelihood of having the second greatest stake in, the second greatest influence on, or the second most knowledge about the requested segment of the application, and so on.
Instructions 564 identify a role of each stakeholder based (at least in part) on the set of user actions and the set of views, as described above in relation to instructions 362 of
In some examples, the audit trail and/or the metadata may be scanned and indexed prior to receiving a request to identify a list of stakeholders associated with a segment of an application. In such examples, the audit trail and metadata may be scanned and indexed at start-up or login. In other such examples, the audit trail and metadata may be periodically scanned and indexed. The stakeholder list may be identified via a machine-learning technique by accessing an index of the audit trail and an index of the metadata.
Instructions 530, 540, 541, 542, 543, 544, 550, 551, 552, 553, 560, 561, 562, 563, and 564 may be part of an installation package that, when installed, may be executed by processing resource 510 to implement the functionalities described above. In such examples, storage medium 520 may be a portable medium, such as a CD, DVD, or flash drive, or a memory maintained by a server from which the installation package can be downloaded and installed. In other examples, instructions 530, 540, 541, 542, 543, 544, 550, 551, 552, 553, 560, 561, 562, 563, and 564 may be part of an application, applications, or component(s) already installed on device 500 including processing resource 510. In such examples, the storage medium 520 may include memory such as a hard drive, solid state drive, or the like. In some examples, functionalities described herein in relation to
In the example of
At 610, a processing resource may scan an audit trail associated with the segment of the application, as described above in relation to instructions 140 of
At 615, a processing resource may scan metadata associated with the segment of the application, as described above in relation to instructions 250 of
At 620, a stakeholder list may be identified via a machine-learning technique based (at least in part) on the audit trail and the metadata, as described above in relation to instructions 560 of
In some examples, the machine-learning technique may determine a likelihood that a stakeholder has a particular role based (at least in part) on a set of dynamic rules that categorize certain actions or views as descriptive of a certain role. Based (at least in part) on a determination that a stakeholder has a maximal likelihood of having a particular role, that role is identified as the role of the stakeholder. In some examples, the stakeholder may be requested to confirm or deny the role in relation to the segment of the application. Based (at least in part) on feedback as to the correctness of the identified role, the machine-learning technique may adjust its set of rules associated with the role to improve accuracy.
Although the flowchart of