Information processing systems, information processing methods, and programs
The information processing system addresses the challenge of determining story points in agile development by using trained models to assess task difficulty and time, improving task prioritization and resource allocation in software development projects.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- BIZ FREAK INC
- Filing Date
- 2024-12-10
- Publication Date
- 2026-06-22
AI Technical Summary
There is a need to improve the determination of story points for tasks in agile development software, which is crucial for effective project management and resource allocation.
An information processing system that determines story points based on the difficulty and estimated time of tasks using trained models and performance indicators, integrating with agile development methodologies to manage software development projects.
Enables accurate determination of story points, allowing for better task prioritization and resource allocation, enhancing the efficiency and effectiveness of agile development processes.
Smart Images

Figure 2026100990000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to an information processing system, an information processing method, and a program.
Background Art
[0002] Agile development is known as one of the software development methods. In agile development, software is developed and released in a short period, and the functions of the software are improved or added while obtaining feedback.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] There is room for improvement in determining the story points of tasks related to agile development software.
Means for Solving the Problems
[0005] According to one aspect of the present disclosure, an information processing system is provided. The information processing system has at least one or more control units. The control unit determines the story points of a task based on the difficulty of the task related to agile development software and the estimated time for the task.
Brief Description of the Drawings
[0006] [Figure 1] FIG. 1 is a diagram showing an example of the system configuration of an information processing system. [Figure 2] FIG. 2 is a diagram showing an example of the hardware configuration of a server device. [Figure 3]Figure 3 shows an example of the hardware configuration of a client device. [Figure 4] Figure 4 is a flowchart showing an example of information processing related to task generation performed by a server device. [Figure 5] Figure 5 shows an example of a UI displayed in a designated location on the browser, as shown on the output section of the client device. [Figure 6] Figure 6 is a flowchart showing an example of information processing related to task importance setting performed by a server device. [Figure 7] Figure 7 shows an example of a KPI tree screen. [Figure 8] Figure 8 shows an example of a screen for setting KPI target values and actual KPI values. [Figure 9] Figure 9 shows an example of a screen for setting and changing tasks related to KPIs. [Figure 10] Figure 10 shows an example of a summary screen. [Figure 11] Figure 11 is a flowchart showing an example of information processing performed by a server device to determine the story points of a task. [Figure 12] Figure 12 is a flowchart showing an example of the information processing performed by a server device to determine the developer's story points. [Modes for carrying out the invention]
[0007] Embodiments of the present invention will be described below with reference to the drawings. The various features shown in the embodiments below (including modified examples; the same applies hereinafter) can be combined with each other.
[0008] <Embodiment 1> 1. System Configuration Diagram Figure 1 shows an example of the system configuration of the information processing system 1000. As shown in Figure 1, the information processing system 1000 includes a server device 100 and a plurality of client devices (client devices 110, 120, and 130 in the example of Figure 1).
[0009] The server device 100 and the multiple client devices are connected to each other via a network 150. The network 150 includes a WAN (Wide Area Network), a LAN (Local Area Network), and the Internet, or any combination thereof. The network 150 includes wired and wireless networks.
[0010] Information processing system 1000 is a system that provides management functions for software being developed using the agile development methodology. Agile development is a software development methodology that, unlike the traditional waterfall development methodology which involves creating a detailed plan from the beginning, develops functions in short periods (also called sprints), repeats this process, and continues development while obtaining feedback as it progresses. Here, the software is software related to the business. More preferably, the business is a new business. The object being developed using the agile development methodology can also be a program or a system, etc.
[0011] The specification uses software for a marketplace system, a new business, as an example of software for a business being developed using agile development methodologies. However, this does not limit the invention. The software for the business can be anything. For example, it could be software for a subscription service system, software for a sharing economy system, software for an O2O (Online to Offline) service system, software for a service utilizing AI and / or IoT, software for a platform-type service, or software for a blockchain or metaverse system.
[0012] Server device 100 is a device that provides the main functions of the information processing system 1000, such as the function of managing software being developed using agile development methodologies. Server device 100 will be described as a device that provides so-called SaaS (Software as a Service) functionality. Furthermore, server device 100 may also be a device running software for a new marketplace system being developed using agile development methodologies. Note that the device running software for the new marketplace system being developed using agile development methodologies may be another server device that can interact with server device 100; however, for the sake of simplicity, this specification will describe it as server device 100.
[0013] Client device 110 is the device of the vendor's representative who is developing the software. There may be multiple vendor representatives. In other words, the information processing system 1000 may contain multiple client devices 110. However, for simplification, only one client device 110 is shown in Figure 1. The same applies to client devices 120 and 130, which are described below. The client device 120 is a device of the person in charge on the requesting side who has commissioned the software development to the vendor. The client device 130 is a device of the administrator on the requesting side who has commissioned the software development to the vendor. The person in charge on the requesting side and the administrator on the requesting side are examples of the customer as the requester.
[0014] Here, the information processing system described in the claims may be composed of a plurality of devices or may be composed of a single device. When the information processing system described in the claims is composed of a single device, an example of such a device is the server device 100. When the information processing system described in the claims is composed of a plurality of devices, examples of the plurality of devices are the server device 100 and the client device 120 (or the client device 130), or a cloud server etc. composed of a plurality of server devices that provide the functions of the server device 100.
[0015] 2. Hardware Configuration (1) Hardware Configuration of Server Device 100 FIG. 2 is a diagram showing an example of the hardware configuration of the server device 100. As shown in FIG. 2, the server device 100 includes, as its hardware configuration, a control unit 210, a storage unit 220, a communication unit 230, and an internal bus 240. The control unit 210, the storage unit 220, and the communication unit 230 are electrically connected via the internal bus 240.
[0016] [[ID=u22]]The control unit 210 is a CPU (Central Processing Unit) etc. and controls the entire server device 100.
[0017] The storage unit 220 is one of the following: ROM (Read Only Memory), RAM (Random Access Memory), HDD (Hard Disk Drive), SSD (Solid State Drive), or any combination thereof, and stores programs, data used by the control unit 210 when executing processing based on the programs, etc. The storage unit 220 is an example of a storage medium. Examples of data used by the control unit 210 when executing processing based on the programs include target values and actual values of performance evaluation indicators, set tasks, KPIs (Key Performance Indicators), etc. KPIs are also called key performance indicators. In the following description, the server device 100 will be described as having ROM, RAM, HDD, and SSD as its storage units.
[0018] In this specification, the data used by the control unit 210 when executing processing based on the program is described as being stored in the storage unit 220, but it may also be stored in the storage unit of another device that can communicate with the server device 100. The data may be stored in the storage unit of any device as long as the control unit 210 can access or retrieve it.
[0019] If the source code's programming language is compiled, the control unit 210 uses a compiler to convert the source code stored in ROM, HDD, or SSD into object code. The control unit 210 then uses a linker to link the object code and libraries to generate a load module. The control unit 210 then uses a loader to load the load module into memory such as RAM. The control unit 210 executes the load module loaded into memory to realize the processing shown in the flowcharts in Figures 4, 6, 7, 11, and 12, which will be described later. If the source code's programming language is interpreted, the control unit 210 reads the source code stored in ROM, HDD, or SSD into RAM or other memory, and processes the loaded source code line by line during execution, performing lexical and / or syntactic analysis to realize the flowchart processing shown in Figures 4, 6, 7, 11, and 12 described later.
[0020] The communications unit 230 connects the server device 100 to the network 150 and manages communication with other devices.
[0021] Note that the hardware configurations of the control unit 210, storage unit 220, and communication unit 230 are not limited to one. For example, multiple control units may be included in the server device 100. The same applies to the client device shown below.
[0022] (2) Hardware configuration of client device 110 Figure 3 shows an example of the hardware configuration of the client device 110. As shown in Figure 3, the client device 110 includes, as a hardware configuration, a control unit 310, a storage unit 320, an input unit 330, an output unit 340, a communication unit 350, and an internal bus 360. The control unit 310, the storage unit 320, the input unit 330, the output unit 340, and the communication unit 350 are electrically connected via the internal bus 360.
[0023] The control unit 310 is a CPU or the like, and controls the entire client device 110.
[0024] The storage unit 320 is one of the following: HDD, ROM, RAM, SSD, etc., or any combination thereof, and stores programs, data used by the control unit 310 when executing processing based on the programs, etc. The storage unit 320 is an example of a storage medium.
[0025] In this specification, the data used by the control unit 310 when executing processing based on the program is described as being stored in the storage unit 320, but it may also be stored in the storage unit of another device that can communicate with the client device 110. The data may be stored in the storage unit of any device as long as the control unit 310 can access or retrieve it. The functions of the client device 110 are realized when the control unit 310 executes processing based on the program stored in the storage unit 320.
[0026] The input unit 330 is a device that inputs information to the client device 110 in response to the operator's actions. The input unit 330 receives operation inputs made by the user. The user is the person using the client device 110. The operation input is transferred to the control unit 310 as a command signal via the internal bus 360. The control unit 310 can, if necessary, perform predetermined controls and / or calculations based on the transferred command signals. The input unit 330 may be included in the housing of the client device 110 or it may be external. For example, the input unit 330 may be implemented as a touch panel integrated with the output unit 340. When the input unit 330 is implemented as a touch panel, the user can input tap operations, swipe operations, etc. to the input unit 330. Instead of a touch panel, the input unit 330 can be a switch button, mouse, trackpad, keyboard, etc.
[0027] The output unit 340 is, for example, a display unit, which outputs (displays) information as a screen of a graphical user interface (GUI) that can be operated by the user. The output unit 340 may be included in the housing of the client device 110 or it may be externally attached. More specifically, the output unit 340 may be implemented as a display device such as a liquid crystal display, an organic EL (Electron-Luminescence) display, or a plasma display. It is preferable that these display devices be used according to the type of client device 110.
[0028] The communications unit 350 connects the client device 110 to the network 150 and manages communication with other devices.
[0029] The hardware configuration of client device 120 and client device 130 is the same as that of client device 110.
[0030] In this specification, a PC (Personal Computer) is used as an example for client devices 110, 120, and 130. When referring to client devices 110, 120, and 130 collectively, they are simply referred to as "client devices." Client devices may also be smartphones, tablet computers, etc.
[0031] 3. Information Processing The information processing of Embodiment 1 will be described below.
[0032] (1) Overview of the process The control unit 210 determines the story points of a task based on the difficulty level of the task related to agile development software and the estimated time required for the task.
[0033] By performing this process, it is possible to determine the story points for tasks related to software development in agile development.
[0034] (2) Details of the process (2-1) Task generation process Figure 4 is a flowchart showing an example of information processing related to task generation performed by the server device 100. The processes shown below are initiated after the agile development software has been delivered to the client. In step S410, the control unit 210 determines whether there are any requests for modifications or additions to the agile development software. Here, there are two ways for the server device 100 to acquire data regarding requests for software modifications or additions.
[0035] The first method involves the control unit 210 displaying a predetermined screen in response to a request from a client device, and acquiring data from free-form text manually entered from a text input area or the like included in the predetermined screen.
[0036] The second method involves obtaining data from input via a User Interface (UI) installed on the client device and displayed in a designated location in the browser. The data input via the UI includes image files of screens captured via screenshots (hereinafter also referred to as "screenshots"), video recording data, audio recording data, etc. Figure 5 shows an example of a UI (or GUI component) 510 displayed in a designated location in the browser, as shown on the output unit 340 of the client device 110. The UI 510 includes at least an area for posting image files of screens captured via screenshots, an area for starting and ending the acquisition of video recording data and posting the video recording data, and an area for starting and ending the acquisition of audio recording data and posting the audio recording data. The screen to be screenshotted is, for example, an exchange regarding requests for software modifications or additions between the vendor and the client via a communication tool, displayed in a web browser, such as next to the UI 510. The communication tool may be provided by the information processing system 1000 (i.e., the server device 100). Recorded data includes, for example, recorded data from an online meeting system regarding software modification or addition requests between the vendor and the client, or recorded data regarding software modification or addition requests entered by the client via the functions of an online meeting system, etc. Audio data includes, for example, audio data regarding software modification or addition requests entered by the client via a microphone, etc.
[0037] Returning to the explanation of Figure 4. The control unit 210 determines if there is a request for correction or addition, depending on whether the data was acquired by the first method or the second method described above. If the control unit 210 determines that there is a request for correction or addition, it proceeds to step S420; if it determines that there is no request for correction or addition, it repeats the process in step S410.
[0038] In step S420, the control unit 210 determines, based on the data acquisition method, whether or not the request for modification or addition was acquired via the UI 510 displayed at a predetermined location in the browser. If the control unit 210 determines that the request for modification or addition was acquired via the UI 510 displayed at a predetermined location in the browser, the process proceeds to step S440. If the control unit 210 determines that the request for modification or addition was not acquired via the UI 510 displayed at a predetermined location in the browser, that is, that the request for modification or addition was manually entered as free text from a text input area or the like included in a predetermined screen, the process proceeds to step S430.
[0039] In step S430, the control unit 210 acquires input data (character data) of a request for modification or addition that has been manually entered in free text. Character data can also be called a string of characters. The input data in step S430 is an example of information entered via the screen by the client who requested the software development. In step S440, the control unit 210 extracts data relating to requests for modification or addition from the image file, recorded video data, or audio data acquired via the UI 510. The image files, video recordings, or audio data acquired via UI510 are examples of screen capture data, video recordings, or audio data entered by the client who requested the software development, relating to requests for improvements or additions to the software's functionality.
[0040] If the data acquired via UI510 is an image file, the control unit 210 inputs the image file to, for example, a first trained model. The first trained model is a trained model that has been trained using an image file as input data and character data relating to software modification or addition requests contained in the image file as output data. Character data can also be called a string. The same applies below. The control unit 210 acquires the character data relating to software modification or addition requests output from the first trained model.
[0041] If the data acquired via UI510 is recorded data, the control unit 210 inputs the recorded data to, for example, a second trained model. The second trained model is a trained model that has been trained using recorded data as input data and character data relating to software modification or addition requests contained in the recorded data as output data. The control unit 210 acquires the character data relating to software modification or addition requests output from the second trained model.
[0042] If the data acquired via UI510 is audio data, the control unit 210 inputs the audio data to, for example, a third trained model. The third trained model is a trained model that has been trained using audio data as input data, transcribing the audio data into text data containing requests for software modifications or additions as output data. The control unit 210 acquires the text data concerning requests for software modifications or additions output from the third trained model.
[0043] In step S450, the control unit 210 summarizes the character data acquired in step S430 or in step S440. For example, the control unit 210 inputs the character data into a fourth trained model. The fourth trained model is a trained model that has been trained using character data as input data and summary data, which is a summary of the content of the character data, as output data. The control unit 210 acquires the summary data output from the fourth trained model.
[0044] In step S460, the control unit 210 determines whether a task identical to the content of the summary data is already stored in the storage unit 220 or the like. Here, a task refers to work that needs to be done related to modifying or adding to software under agile development. Work that needs to be done can also be described as a small unit of work within a project or job. If the control unit 210 determines that a task identical to the content of the summary data is already stored in the storage unit 220 or the like, it returns to step S410. If the control unit 210 determines that a task identical to the content of the summary data is not already stored in the storage unit 220 or the like, it proceeds to step S470.
[0045] In step S470, the control unit 210 determines, based on the summary data, whether the request is for software modification or for the addition of software functionality. The control unit 210 may determine whether the request is for software modification or for the addition of software functionality based on words, etc., included in the summary data, or it may input the summary data into a fifth trained model and determine whether the request is for software modification or for the addition of software functionality based on the data output from the fifth trained model. The fifth trained model is a trained model that has been trained using the summary data as input data and the identification result of identifying whether the request is for software modification or for the addition of software functionality as output data.
[0046] The control unit 210 generates tasks based on the summary data and the judgment result. If the judgment result is a request for software modification, the control unit 210 generates a task for software modification. A task for software modification is also called a modification task or an improvement task. If the judgment result is an addition of software functionality, the control unit 210 generates a task for adding software functionality. A task for adding software functionality is also called an additional implementation task. The task includes items such as the task name, task description, task assignee, and task deadline (hereinafter also referred to as the task deadline). The control unit 210 may obtain the data to be set for each item from the summary data and set it for each item, or if there is some data that cannot be obtained from the summary data, it may generate the task with the data for the corresponding items left unset.
[0047] The control unit 210 may perform character analysis on the summary data to obtain data corresponding to each item, or it may input the summary data into the sixth trained model and obtain data corresponding to each item from the data output from the sixth trained model. The fifth trained model is a trained model that has been trained using the summary data as input data and the data corresponding to each item as output data. If there is no data for the corresponding item, the fifth trained model outputs the information "No data". The control unit 210 stores the generated task in a predetermined storage area such as the storage unit 220. The process in step S470 is an example of a process that generates a task. The process in step S470 can be seen as an example of a process that generates tasks based on information entered by the customer who requested the software development via a screen. Furthermore, the process in step S470 can be seen as an example of a process that generates tasks based on screen capture data, video recording data, or audio data related to requests for improvements or additions to the software's functionality, which are entered by the customer who requested the software development.
[0048] In step S480, the control unit 210 associates the generated task with the KPI. For example, the control unit 210 associates the task with the KPI based on an association operation via a predetermined screen displayed on the client device. Note that the association between the task and the KPI may be performed each time an association operation is performed via the predetermined screen. As another example, the control unit 210 may automatically associate the task with the KPI based on the content of the task and the content of the KPI. The control unit 210 stores information relating tasks to KPIs in a predetermined storage area such as the storage unit 220.
[0049] (2-2) Task importance setting process Figure 6 is a flowchart showing an example of information processing related to task importance setting performed by the server device 100. In step S610, the control unit 210 creates a KPI tree in response to user operations from a screen related to creating or managing a KPI tree. More specifically, the control unit 210 creates a screen related to creating or managing a KPI tree (hereinafter also referred to as the KPI tree screen) in response to a request, transmits it to the client device, and displays it on the output unit of the client device.
[0050] Figure 7 shows an example of the KPI tree screen 700. The KPI tree screen 700 includes at least area 710 and area 720. Area 710 is the area that displays the navigation menu. A navigation menu is a menu arranged in digital products such as websites and apps to allow users to smoothly move to the desired page or function. In the example in Figure 7, KPI Tree > Create / Manage is selected in area 710. Area 720 is the area that displays the details of the page or function selected in the navigation menu. In the example in Figure 7, the details of the Create or Manage KPI Tree function are displayed in area 720. Users can create a KPI tree, for example, by performing a predetermined operation in area 720. A KPI tree is a visual representation of what KPIs should be set to achieve the ultimate goal (KGI) of an organization or team. In a KPI tree, the structure is like the branches of a tree, with the KGI at the root and various KPIs branching out to achieve it.
[0051] In step S620, the control unit 210 creates a funnel analysis graph based on the KPI tree created in step S610 and the formulas related to funnel analysis stored in a predetermined storage area such as the memory unit 220. The control unit 210 stores the created funnel analysis graph in a predetermined storage area such as the memory unit 220.
[0052] In step S630, the control unit 210 selects the Performance / Target Setting tab 810, retrieves performance data from the configured URL, and links it to the KPI items. Note that the URL is just an example. The control unit 210 may also retrieve performance data via an API (Application Programming Interface) and link it to the KPI items. The process in step S630 is an example of a process that acquires actual data for performance evaluation indicators based on the results of software execution. When one of the KPIs in the KPI tree shown in Figure 7 is selected, the control unit 210 overlays a modal window 800 related to the selected KPI onto the KPI tree screen 700. One of the KPIs that make up the KPI tree is also called a KPI item. The process of outputting a screen like the one shown in Figure 8 is an example of the process of outputting a screen for setting the target value of the KPI. Figure 8 shows an example of a screen for setting KPI target values and actual KPI values. The modal window 800 contains multiple tabs. These tabs include, for example, the Actual / Target Setting tab 810, the Task tab 820, and the Actual Progression tab 830. The Actual / Target Setting tab 810 is a tab for displaying screens for setting KPI target values and actual KPI values in the modal window 800. The Task tab 820 is a tab for displaying screens for setting and changing tasks related to KPIs in the modal window 800. The Actual Progression tab 830 is a tab for displaying graphs, etc., of the changes in the actual KPI values set in the Actual / Target Setting tab 810 over time.
[0053] The modal window 800 in Figure 8 shows an example of the screen when the Performance / Target Setting tab 810 is selected. In the screen in Figure 8, the user can set a URL (Uniform Resource Locator) where performance data is stored to obtain KPI target values and performance data. The control unit 210 can obtain the performance data from the set URL and reflect it as the KPI performance value on a predetermined screen. A predetermined screen is, for example, the screen displayed when the Performance / Target Setting tab 810 is selected, or the screen displayed when the Performance Progress tab 830 is selected. As mentioned above, the control unit 210 may also obtain performance data via an API.
[0054] Examples of performance data include the conversion rate (CV) for products purchased on the marketplace, the conversion rate for services, the number of page views (PVs) for specific pages on the marketplace website, and the number of transitions between forms on the marketplace website. These are just examples of indices. Other examples of indices include UU (unique users), session count, time spent on site, bounce rate, session per page, engagement rate, CTR (click-through rate), cart abandonment rate, and repeat visit rate. UU represents the number of times different users visited the site, excluding duplicates. Session count refers to a single visit. Time spent on site indicates the average time users spent on the website. Bounce rate indicates the percentage of users who left the site after viewing the first page and then other pages. Session per page indicates the number of pages viewed per session. Engagement rate is an indicator of how deeply users engaged with the site, and includes, for example, video viewing time and article scrolling amount. CTR is the ratio of the number of times an ad or similar advertisement is clicked to the number of times it is displayed. Cart abandonment rate is the percentage of users who added items to their cart but did not complete the purchase process. Repeat rate is the percentage of users who visited the site again.
[0055] Figure 9 shows an example of a screen for setting and modifying tasks related to KPIs. When the task tab 820 is selected in the screen shown in Figure 8, the control unit 210 overlays a modal window 900, as shown in Figure 9, on the KPI tree screen 700. In the modal window 900, the user can add one or more tasks or modify tasks as tasks related to the selected KPI. Modifying a task means modifying (or changing) the task's assignee, task name, importance, due date, etc. Information on tasks related to the KPI is obtained from the associated data in step S480. Also, if a new task is added to a KPI in the screen shown in Figure 9, the processing in step S480 is executed independently.
[0056] In step S640, the control unit 210 sets the target value of the KPI item via the modal window 800 shown in Figure 8. The order in which steps S630 and S640 are processed does not matter; either step can be performed first, or they can be performed simultaneously.
[0057] In step S650, the control unit 210 determines the importance of the tasks associated with the KPI items based on a value indicating the discrepancy (deviation from target value) between the actual data of the KPI items acquired through data linkage and the target value, and the importance of the KPI items. For example, the control unit 210 sets the importance of the KPI items based on setting operations via the screen shown in Figure 7 and stores it in a predetermined storage area such as the storage unit 220. The process in step S650 is an example of a process that determines the importance of improving software functionality or adding tasks based on target values and actual data of performance indicators. In the information processing system 1000, agile development is being carried out for the marketplace system, so the control unit 210 can acquire actual data (performance data) from the marketplace system. Examples of performance data include the conversion rate, page views, and form transitions mentioned above. The process in step S650 is an example of a process that determines the importance of software improvements or additional tasks based on the importance of the KPIs, the target values of the KPIs related to the tree structure, and the actual data of the KPIs. Furthermore, the process in step S650 is an example of a process that determines the importance of software improvements or additional tasks based on the importance of the KPIs and the difference between the target values and actual data of the KPIs related to the tree structure.
[0058] In step S660, the control unit 210 outputs information suggesting the importance of the tasks determined in step S650. Suggestion can also be described as proposing or recommending. For example, the control unit 210 suggests the importance of tasks by generating a screen (hereinafter also referred to as the suggestion screen) that includes the importance of each of the multiple tasks in an editable manner and displaying it on the output unit of the client device.
[0059] In step S670, the control unit 210 sets the importance level of the task based on user operation via the suggestion screen. The set task importance information is stored in a predetermined storage area such as the storage unit 220. For example, if the setting button is selected while the suggested task importance remains unchanged, the control unit 210 sets the suggested task importance as the task importance. If the suggested task importance is modified on the suggestion screen and then the setting button is selected, the control unit 210 sets the task importance with the modified content.
[0060] Figure 10 shows an example of a summary screen. After the execution of the flowcharts in Figures 4 and 6 described above, when the control unit 210 receives confirmation that the user has logged into the information processing system 1000 and performed a predetermined operation, it generates a summary screen 1010 and sends it to the client device. The summary screen 1010 includes at least task management 1020, important KPIs 1030, and funnel analysis 1040. The process of sending the summary screen is an example of a process that outputs a screen including the importance level of the determined tasks. The client device on which the summary screen is displayed may be client device 120 and / or client device 130. In other words, the screen including the importance of the task is output to the device of the customer who requested the software development.
[0061] Task Management 1020 displays a list of tasks, including the importance level set in step S670. The task items displayed include the task assignee, task name, importance level, status, relevant KPIs, and due date. The task list in Task Management 1020 can be sorted by importance level, status, due date, etc.
[0062] The Important KPI 1030 displays a set number of KPIs (three KPIs in the example in Figure 10) starting from the KPI with the highest importance, based on the importance of the KPIs set via the screen shown in Figure 7. When the "Check Task" button for each Important KPI included in Important KPI 1030 is selected, the control unit 210 generates a screen containing the tasks associated with that KPI and displays it on the client device.
[0063] Funnel analysis 1040 displays the graph of the funnel analysis created in step S620.
[0064] (2-3) Process to determine the story points of the task Figure 11 is a flowchart showing an example of information processing performed by the server device 100 to determine the story points of a task. In step S1110, the control unit 210 acquires information about the task to be processed. The task to be processed is, for example, a task generated in the task generation process (2-1) described above. When the control unit 210 executes the information processing related to task generation shown in Figure 4, it starts the information processing to determine the story points of the task shown in Figure 11. Here, task information can also be called task items. Task information includes the task name, task description, task assignee, task deadline, etc. The control unit 210 determines the difficulty level of the task based on the task information. For example, the control unit 210 inputs task information into the seventh trained model. The seventh trained model is a trained model that has been trained using task information as input data and task difficulty as output data. The control unit 210 obtains the task difficulty level output from the seventh trained model.
[0065] In step S1120, the control unit 210 determines the time required for the task based on the task information. The time required for the task can also be called the estimated time required for the task. For example, the control unit 210 inputs task information into the eighth trained model. The eighth trained model is a trained model that has been trained using task information as input data and the actual time taken to complete the task as output data. The control unit 210 obtains the estimated time required for the task, which is output from the eighth trained model.
[0066] In step S1130, the control unit 210 calculates the story points of the task based on the difficulty level of the task obtained in step S1110 and the estimated time required for the task obtained in step S1120. For example, the control unit 210 calculates the story points of the task by substituting the difficulty level of the task and the estimated time required for the task into a predetermined formula. The control unit 210 associates the obtained story points with tasks and stores them in a predetermined storage area such as the storage unit 220.
[0067] By performing the process shown in Figure 11, the story points for each task can be determined.
[0068] (2-4) Process to determine the developer's story points Figure 12 is a flowchart showing an example of information processing performed by the server device 100 to determine the developer's story points. In step S1210, the control unit 210 obtains the task completion rate of the tasks assigned to the software developers in agile development. The task completion rate can also be called the task progress rate. The task completion rate is a numerical representation of how much of a task has been completed. For example, the task completion rate is shown as a percentage (%) and is expressed in a range from 0% (not started) to 100% (completed). The task completion rate will be entered periodically by the relevant developer (task assignee) via a designated input interface (for example, at the end of the workday).
[0069] In step S1220, the control unit 210 obtains the story points for the target task from a predetermined storage area such as the storage unit 220.
[0070] In step S1230, the control unit 210 calculates the story points for a developer based on the task completion rate obtained in step S1210 and the story points for the tasks obtained in step S1220. For example, the control unit 210 substitutes the task completion rate and the story points for the tasks into a predetermined formula to calculate the story points for the corresponding developer. The control unit 210 associates the obtained story points with the developers and stores them in a predetermined memory area such as the memory unit 220. The control unit 210 may determine the project contribution of each developer to the software development based on the story points of each developer in agile development. The project contribution can also be considered an evaluation value that indicates the developer's evaluation indicator. The control unit 210 may also determine the developer's promotion and / or salary increase based on the developer's contribution.
[0071] As another example of the processing in step S1230, the control unit 210 may directly determine the project contribution related to software development based on the task completion rate obtained in step S1210 and the story points of the tasks obtained in step S1220. For example, the control unit 210 may substitute the task completion rate and the story points of the tasks into a predetermined formula to determine the contribution of the corresponding developer. This type of processing is an example of a process that calculates an evaluation value indicating a developer's performance indicator based on the task completion rate and the task's story points.
[0072] According to the processing in Embodiment 1, the story points of a task can be determined based on the task difficulty and the estimated time of the task. Furthermore, by adding a new dataset of the combination of task information and the actual time it took to perform the task to a trained model that outputs the estimated time of a task based on task information, it becomes possible to output a more accurate estimated time. Furthermore, a developer's story points can be calculated based on the task completion rate and the story points of the tasks. Additionally, a proper evaluation of the developer can be performed based on their story points.
[0073] Furthermore, it becomes possible to accurately determine whether to prioritize feature improvements or additions in agile development. In addition, since actual data for KPI items related to the KPI tree can be obtained, the importance of tasks related to KPIs can be determined based on values indicating deviations from target values. Because the importance of tasks can be determined, the person in charge at the requesting end of the software development project, as well as their supervisor, can quickly understand which tasks should be prioritized. Moreover, even if the importance of the KPI tree or KPI items changes at predetermined intervals (for example, every week or every month) as the software is improved, the importance of tasks will also change accordingly. In other words, since the importance of tasks changes according to the KPIs and the importance of KPIs that change as the software is developed and improved, the importance of tasks can be quickly and accurately grasped according to the circumstances, and agile development can proceed.
[0074] (Other variations) Some of the processing performed by the server device 100 described above may be performed by one of the client devices. Furthermore, in the embodiment described above, the server device 100 generates the screen and transmits the generated screen to the client device. However, the server device 100 may transmit the data necessary for screen generation to the client device. The client device that receives the data then generates and displays the screen.
[0075] <Note> The product may be provided in any of the following embodiments. (Note 1) An information processing system, Having at least one control unit, The control unit, Based on the difficulty level of the agile software development task and the estimated time required for the task, the story points for the task are determined. Information processing system. (Note 2) The information processing system described in Appendix 1, The control unit, Based on the task information, determine the difficulty level of the task. Information processing system. (Note 3) The information processing system described in Appendix 2, The control unit, The information from the aforementioned task is input into the trained model. The aforementioned trained model is a trained model that has been trained using task information as input data and task difficulty as output data. Obtain the task difficulty level output from the aforementioned trained model. Information processing system. (Note 4) An information processing system described in any one of the appendices 1 to 3, The control unit, Based on the task information, an estimated time for the task is determined. Information processing system. (Note 5) The information processing system described in Appendix 4, The control unit, The information from the aforementioned task is input into the trained model. The aforementioned trained model is a trained model that uses task information as input data and the actual time spent on the task as output data. Obtain the estimated time required for the task, output from the aforementioned trained model. Information processing system. (Note 6) An information processing system described in any one of the appendices 1 to 5, The control unit, The developer of the aforementioned software obtains the completion rate of the tasks he is responsible for, Obtain the story points for the aforementioned task, Based on the completion rate of the aforementioned tasks and the story points of the aforementioned tasks, story points related to the developer are calculated. Information processing system. (Note 7) The information processing system described in Appendix 1, The control unit, The developer of the aforementioned software obtains the completion rate of the tasks he is responsible for, Obtain the story points for the aforementioned task, Based on the completion rate of the task and the story points of the task, an evaluation value indicating the developer's evaluation metric is calculated. Information processing system. (Note 8) An information processing method performed by an information processing system, Based on the difficulty level of the agile software development task and the estimated time required for the task, the story points for the task are determined. Information processing methods. (Note 9) It is a program, Computer A program to function as an information processing system as described in any one of the appendices 1 through 7.
[0076] While various embodiments of the present invention have been described, these are presented as examples only and are not intended to limit the scope of the invention. Novel embodiments can be implemented in a variety of other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. Embodiments and variations thereof are included in the scope and spirit of the invention, as well as in the claims and their equivalents. [Explanation of Symbols]
[0077] 100: Server device 110: Client device 120: Client device 130: Client device 150: Network 210: Control Unit 220: Storage section 230: Communications Department 1000: Information Processing System
Claims
1. An information processing system, Having at least one control unit, The control unit, Based on the difficulty level of the agile software development task and the estimated time required for the task, the story points for the task are determined. Information processing system.
2. The information processing system according to claim 1, The control unit, Based on the task information, determine the difficulty level of the task. Information processing system.
3. The information processing system according to claim 2, The control unit, The information from the aforementioned task is input into the trained model. The aforementioned trained model is a trained model that has been trained using task information as input data and task difficulty as output data. Obtain the task difficulty level output from the aforementioned trained model. Information processing system.
4. The information processing system according to claim 1, The control unit, Based on the task information, an estimated time for the task is determined. Information processing system.
5. The information processing system according to claim 4, The control unit, The information from the aforementioned task is input into the trained model. The aforementioned trained model is a trained model that uses task information as input data and the actual time spent on the task as output data. Obtain the estimated time required for the task, output from the aforementioned trained model. Information processing system.
6. The information processing system according to claim 1, The control unit, The developer of the aforementioned software obtains the completion rate of the tasks he is responsible for, Obtain the story points for the aforementioned task, Based on the completion rate of the aforementioned tasks and the story points of the aforementioned tasks, story points related to the developer are calculated. Information processing system.
7. The information processing system according to claim 1, The control unit, The developer of the aforementioned software obtains the completion rate of the tasks he is responsible for, Obtain the story points for the aforementioned task, Based on the completion rate of the task and the story points of the task, an evaluation value indicating the developer's evaluation metric is calculated. Information processing system.
8. An information processing method performed by an information processing system, Based on the difficulty level of the agile software development task and the estimated time required for the task, the story points for the task are determined. Information processing methods.
9. It is a program, Computer A program for functioning as an information processing system according to any one of claims 1 to 7.