WO2022145311A1 - プログラム、情報処理装置および方法 - Google Patents

プログラム、情報処理装置および方法 Download PDF

Info

Publication number
WO2022145311A1
WO2022145311A1 PCT/JP2021/047578 JP2021047578W WO2022145311A1 WO 2022145311 A1 WO2022145311 A1 WO 2022145311A1 JP 2021047578 W JP2021047578 W JP 2021047578W WO 2022145311 A1 WO2022145311 A1 WO 2022145311A1
Authority
WO
WIPO (PCT)
Prior art keywords
team
engineer
review
program
information
Prior art date
Application number
PCT/JP2021/047578
Other languages
English (en)
French (fr)
Inventor
将高 佐藤
裕之 石川
嵩史 宇田川
千隼 戸田
智子 高田
龍 古田
Original Assignee
ファインディ株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ファインディ株式会社 filed Critical ファインディ株式会社
Publication of WO2022145311A1 publication Critical patent/WO2022145311A1/ja
Priority to US18/209,501 priority Critical patent/US20230325180A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0639Performance analysis of employees; Performance analysis of enterprise or organisation operations
    • G06Q10/06398Performance of employee with respect to a job function
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/77Software metrics

Definitions

  • This disclosure relates to programs, information processing devices and methods.
  • Product development in corporate activities is often carried out by a team of multiple engineers. In product development by a team, it is necessary to properly staff the team and properly review the deliverables, and it is necessary to maximize the performance as a team.
  • Patent Document 1 discloses an activity analysis technique for analyzing the organization and independence of activities in corporate activities. This technique is a method to analyze the organization by acquiring the information of the participants who simultaneously intervened in the place where the activity occurs for the activity that can be intervened by multiple people at the same time, such as a meeting, from the position information of the participants. ..
  • a program for causing a computer including a processor and a storage unit to execute is provided.
  • the program is the information uploaded to the processor online by the members of the engineer team to create the deliverable as an engineer, and the review information performed by the members of the engineer team on the uploaded deliverable.
  • the step of specifying the parameter representing the activity status of the engineer team and the step of presenting the parameter to the user are executed.
  • the activities of the engineer team based on the history of the information uploaded to create the deliverable as an engineer and the review information performed by the members of the engineer team on the uploaded deliverable. Identify the parameters that represent the situation. Therefore, it is possible to properly grasp the performance as an engineer team.
  • FIG. 1 It is a figure which shows the whole structure of the team activity evaluation system 1. It is a block diagram which shows the functional configuration of the terminal apparatus 10 which constitutes the team activity evaluation system 1 of Embodiment 1.
  • FIG. It is a figure which shows the functional configuration of the server 20 which constitutes the team activity evaluation system 1 of Embodiment 1.
  • FIG. It is a figure which shows the data structure of the repository database 2021 which a server 20 stores. It is a figure which shows the data structure of the personal performance database 2022 and the team score database 2023 which the server 20 stores.
  • It is a flowchart which shows an example of the flow which performs the scoring process by the team activity evaluation system 1 of Embodiment 1.
  • FIG. It is a flowchart which shows an example of the flow of presenting the team activity situation by the team activity evaluation system 1 of Embodiment 1.
  • FIG. It is a figure which shows the example of the sign-in screen displayed on the terminal apparatus 10. It is a figure which shows the display screen example of the team activity status to display on the terminal apparatus 10. It is a figure which shows the display screen example of the pull request status to be displayed on the terminal apparatus 10. It is a figure which shows the display screen example of another team situation to display on a terminal apparatus 10. It is a figure which shows the display screen example of the read time and pull request status to be displayed on a terminal apparatus 10. It is a figure which shows the display screen example of the pull request type status to be displayed on the terminal apparatus 10.
  • This team activity evaluation system is a system for identifying and evaluating a team score (parameter) indicating the activity status (performance) of an engineer team, which is composed of engineers who develop products and the like.
  • the engineer team is a team composed of a plurality of engineers and for advancing the development of Web services, websites, etc. provided by a specific product, for example, so-called SaaS (Software as a Service).
  • SaaS Software as a Service
  • each engineer divides the roles of each function, output, etc. of the service and proceeds with development.
  • the engineer in the team is not limited to the company employee employed by one specific company, but may be each company employee in a development project in which multiple companies jointly develop, and may be a sole proprietor. So-called freelance engineers may be included.
  • the team activity evaluation system accesses GitHub (registered trademark), which is a software development platform, as an example, and an engineer who is a member of the engineer team. Acquire various parameters that indicate the results of the above.
  • GitHub is a source code hosting service, has a repository (control means) for version control of the source code that is a deliverable, and manages a list of source code at a certain point in time.
  • GitHub is an issue (creation) for managing issues of projects and source code, push to upload source code created or modified in the engineer's local environment (local repository) to the remote environment (remote repository), It has functions such as a pull request that notifies that a push has been made and requests a review, a commit that adopts comments and corrections at the time of review, and a merge that confirms the review result and integrates the history.
  • the source code is a concept including a programming language such as Python and a script language which is a kind of programming language such as Javascript (registered trademark). That is, the team activity evaluation system according to the present disclosure acquires parameters related to the deliverables managed by the external server (cloud server), and does not require monitoring of the usage status of the personal PC, and the activity of the engineer team. It is a system that shows the situation.
  • the programming language is a language used for software development, and specifically, JavaScript, CSS, Javascript (registered trademark), Java (registered trademark), Scala, PHP, Ruby, Python, Go, C #, Node. There are .js and so on.
  • the software framework is a software platform used for software development, specifically, jQuery, React, Vue.js, Angular, Next.js, Next.js, ReactNative, Spring Framework, Play Framework, Lovel. CakePHP, RubionRails, Django, Framework, TensorFlow, gin, Unity, Express and so on.
  • the number of pushes (uploads) to GitHub, the number of source code creation codes, the number of correction codes, the number of pull requests (review requests) managed by GitHub,
  • the deliverables of the engineer team are quantified as information uploaded online and the score is calculated. This makes it possible to estimate the activity status of the engineer team from the quantitative aspect of the deliverable. For example, if the number of code creation code, the number of correction code, and the number of pushes are large, it can be said that the engineer team is creating many deliverables, so the activity status of creating the deliverables of the engineer team is active. Presumed. Therefore, it is considered that the activity status of the engineer team for the deliverable can be estimated from the quantitative aspect of the deliverable by the degree of this score.
  • these values are obtained by acquiring the values such as the number of issues created, the number of reviews, the number of comments, the number of comment responses, and the number of commits for GitHub, which are managed by GitHub. Is included, and the score is calculated by quantifying it as review information performed by the members of the engineer team. This makes it possible to estimate the activity status of the engineer team from the qualitative aspect of the deliverable. For example, if the number of reviews and comments is large, it can be said that the engineer team is checking and discussing the deliverables a lot, so the review of the deliverables of the engineer team is active and the quality of the deliverables is guaranteed. It is estimated that there is a high tendency to be there. Therefore, it is considered that the activity status of the engineer team for the deliverable can be estimated from the qualitative aspect of the deliverable by the degree of this score.
  • the values of various parameters in GitHub are acquired, and the team score indicating the activity status of the engineer team is specified from these values.
  • This team score is presented to the members of the engineer team and the managers (team managers, personnel department personnel, management team, etc.) who manage the engineer team. With such a configuration, it becomes possible to present and understand the activity status of the engineer team more objectively.
  • the deliverable in the engineer team is a concept including setting information on the system, a database, various specifications, etc. in addition to the source code in GitHub, but in this embodiment, the source code in GitHub will be described as an example.
  • the team activity evaluation system 1 will be described.
  • the server 20 responds with information for generating a screen on the terminal device 10.
  • the terminal device 10 generates and displays a screen based on the information received from the server 20.
  • FIG. 1 is a diagram showing the overall configuration of the team activity evaluation system 1.
  • the team activity evaluation system 1 has a plurality of terminal devices (in FIG. 1, the terminal device 10A and the terminal device 10B are shown. Hereinafter, they may be collectively referred to as “terminal device 10”).
  • the server 20 and the repository server 30 are connected to each other so as to be able to communicate with each other via the network 80.
  • the network 80 is composed of a wired or wireless network.
  • the terminal device 10 is a device operated by each user.
  • the user is a person who receives the presentation of the activity status of the engineer team by the team activity evaluation system 1 using the terminal device 10, but is not limited to the members of the engineer team, and the (team) of the company to which the engineer belongs. (Does not belong to) Managers, personnel department personnel, management team, etc.
  • the terminal device 10 is realized by a stationary PC (Personal Computer), a laptop PC, or the like.
  • the terminal device 10 may be, for example, a mobile terminal such as a tablet or a smartphone compatible with a mobile communication system.
  • the terminal device 10 is communicably connected to the server 20 and the repository server 30 via the network 80.
  • the terminal device 10 has a wireless base station 81 compatible with communication standards such as 4G, 5G, and LTE (Long Term Evolution), and a wireless LAN (Local Area Network) standard such as IEEE (Institute of Electrical and Electronics Engineers) 802.11. It is connected to the network 80 by communicating with a communication device such as a corresponding wireless LAN router 82.
  • the terminal device 10B in FIG. 1 the terminal device 10 includes a communication IF (Interface) 12, an input device 13, an output device 14, a memory 15, a storage unit 16, and a processor 19.
  • IF Interface
  • the communication IF 12 is an interface for inputting / outputting signals because the terminal device 10 communicates with an external device.
  • the input device 13 is an input device (for example, a keyboard, a touch panel, a touch pad, a pointing device such as a mouse, etc.) for receiving an input operation from a user.
  • the output device 14 is an output device (display, speaker, etc.) for presenting information to the user.
  • the memory 15 is for temporarily storing a program, data processed by the program, or the like, and is, for example, a volatile memory such as a DRAM (Dynamic Random Access Memory).
  • the storage unit 16 is a storage device for storing data, and is, for example, a flash memory or an HDD (Hard Disc Drive).
  • the processor 19 is hardware for executing an instruction set described in a program, and is composed of an arithmetic unit, registers, peripheral circuits, and the like.
  • the server 20 is a device that manages various parameters in GitHub, the performance of members belonging to the engineer team, and team score information indicating the activity status of the engineer team.
  • the server 20 receives information for identifying the engineer team from the user, identifies a team score indicating the activity status of the target engineer team, and presents it to the user.
  • the server 20 is a computer connected to the network 80.
  • the server 20 includes a communication IF 22, an input / output IF 23, a memory 25, a storage 26, and a processor 29.
  • the communication IF 22 is an interface for inputting / outputting signals because the server 20 communicates with an external device.
  • the input / output IF 23 functions as an interface with an input device for receiving an input operation from the user and an output device for presenting information to the user.
  • the memory 25 is for temporarily storing a program, data processed by the program, or the like, and is, for example, a volatile memory such as a DRAM (Dynamic Random Access Memory).
  • the storage 26 is a storage device for storing data, for example, a flash memory or an HDD (Hard Disc Drive).
  • the processor 29 is hardware for executing an instruction set described in a program, and is composed of an arithmetic unit, registers, peripheral circuits, and the like.
  • the repository server 30 is a device that manages a remote repository (management means) in GitHub.
  • the repository server 30 receives the source code pushed by the user, stores and manages it, and accepts pull requests, comments, commits, merges, and the like.
  • FIG. 2 is a block diagram showing a functional configuration of the terminal device 10 constituting the team activity evaluation system 1 of the first embodiment.
  • the terminal device 10 operates with a plurality of antennas (antenna 111, antenna 112) and a wireless communication unit (first wireless communication unit 121, second wireless communication unit 122) corresponding to each antenna. It includes a reception unit 130 (including a keyboard 131 and a display 132), a voice processing unit 140, a microphone 141, a speaker 142, a camera 150, a storage unit 160, and a control unit 170.
  • the terminal device 10 also has functions and configurations (for example, a battery for holding electric power, a power supply circuit for controlling the supply of electric power from the battery to each circuit, and the like) which are not particularly shown in FIG. As shown in FIG. 2, each block included in the terminal device 10 is electrically connected by a bus or the like.
  • the antenna 111 radiates a signal emitted by the terminal device 10 as a radio wave. Further, the antenna 111 receives radio waves from the space and gives a received signal to the first wireless communication unit 121.
  • the antenna 112 radiates a signal emitted by the terminal device 10 as a radio wave. Further, the antenna 112 receives radio waves from the space and gives a received signal to the second radio communication unit 122.
  • the first wireless communication unit 121 performs modulation / demodulation processing for transmitting / receiving signals via the antenna 111. Since the terminal device 10 communicates with another wireless device, the second wireless communication unit 122 performs modulation / demodulation processing for transmitting / receiving signals via the antenna 112.
  • the first wireless communication unit 121 and the second wireless communication unit 122 are communication modules including a tuner, an RSSI (Received Signal Strength Indicator) calculation circuit, a CRC (Cyclic Redundancy Check) calculation circuit, a high frequency circuit, and the like.
  • the first wireless communication unit 121 and the second wireless communication unit 122 perform modulation / demodulation and frequency conversion of the wireless signal transmitted / received by the terminal device 10 and supply the received signal to the control unit 170.
  • the operation receiving unit 130 has a mechanism for receiving a user's input operation.
  • the operation reception unit 130 includes a keyboard 131 and a display 132.
  • the operation receiving unit 130 may be configured as a touch screen that detects the user's contact position with respect to the touch panel, for example, by using a capacitive touch panel.
  • the keyboard 131 accepts the input operation of the user of the terminal device 10.
  • the keyboard 131 is a device for inputting characters, and outputs the input character information to the control unit 170 as an input signal.
  • the display 132 displays data such as images, moving images, and texts according to the control of the control unit 170.
  • the display 132 is realized by, for example, an LCD (Liquid Crystal Display) or an organic EL (Electro-Luminescence) display.
  • the voice processing unit 140 performs modulation / demodulation of the voice signal.
  • the voice processing unit 140 modulates the signal given from the microphone 141 and gives the modulated signal to the control unit 170. Further, the voice processing unit 140 gives a voice signal to the speaker 142.
  • the voice processing unit 140 is realized by, for example, a processor for voice processing.
  • the microphone 141 receives the voice input and gives the voice signal corresponding to the voice input to the voice processing unit 140.
  • the speaker 142 converts the voice signal given from the voice processing unit 140 into voice and outputs the voice to the outside of the terminal device 10.
  • the camera 150 is a device for receiving light by a light receiving element and outputting it as a captured image.
  • the camera 150 is, for example, a depth camera capable of detecting the distance from the camera 150 to the shooting target.
  • the storage unit 160 is composed of, for example, a flash memory or the like, and stores data and programs used by the terminal device 10. In a certain aspect, the storage unit 160 stores the user information 161 and the local repository 162.
  • the user information 161 is information on a user who receives a team score indicating the activity status of an engineer team, which is a function of the team activity evaluation system 1, using the terminal device 10.
  • the user information includes information for identifying the user (user ID), the name and name of the user, organizational information of the company to which the user belongs, ID information and a password for signing in to GitHub, and the like.
  • the local repository 162 stores information such as source code for users to work in their own local environment when developing software using GitHub.
  • the user stores the source code created in the local repository 162, and modifies the source code stored in the local repository 162. After completing the creation and modification, the user pushes the source code to the repository server 30.
  • the control unit 170 controls the operation of the terminal device 10 by reading the program stored in the storage unit 160 and executing the instructions included in the program.
  • the control unit 170 is, for example, an application installed in the terminal device 10 in advance. By operating according to the program, the control unit 170 exhibits functions as an input operation reception unit 171, a transmission / reception unit 172, a data processing unit 173, and a notification control unit 174.
  • the input operation reception unit 171 performs a process of accepting a user's input operation to an input device such as a keyboard 131.
  • the transmission / reception unit 172 performs processing for the terminal device 10 to transmit / receive data to / from an external device such as a server 20 according to a communication protocol.
  • the data processing unit 173 performs a calculation on the data received by the terminal device 10 according to a program, and outputs the calculation result to a memory or the like.
  • the notification control unit 174 performs a process of presenting information to the user.
  • the notification control unit 174 performs a process of displaying a display image on the display 132, a process of outputting sound to the speaker 142, a process of generating vibration in the camera 150, and the like.
  • FIG. 3 is a diagram showing a functional configuration of the server 20 constituting the team activity evaluation system 1 of the first embodiment.
  • the server 20 functions as a communication unit 201, a storage unit 202, and a control unit 203.
  • the communication unit 201 performs processing for the server 20 to communicate with an external device.
  • the storage unit 202 stores data and programs used by the server 20.
  • the storage unit 202 stores the repository database 2021, the personal performance database 2022, the team score database 2023, and the like.
  • the repository database 2021 is a database for holding various information related to various parameters such as the number of code for creating the source code of the remote repository and the number of pushes acquired from the repository server 30 in the team activity evaluation system 1. Details will be described later.
  • the personal performance database 2022 is a database for holding information indicating the performance of the members of the engineer team in the team activity evaluation system 1. Details will be described later.
  • the team score database 2023 is a database presented in the team activity evaluation system 1 for holding information on the team score indicating the activity status of the engineer team and various parameters on which the team score is based. Details will be described later.
  • the control unit 203 performs processing according to a program by the processor of the server 20, and as various modules, the reception control module 2031, the transmission control module 2032, the repository management module 2033, the performance calculation module 2034, the scoring module 2035, and the alert determination module 2036. , And the functions shown in the presentation module 2037.
  • the reception control module 2031 controls the process in which the server 20 receives a signal from an external device according to a communication protocol.
  • the transmission control module 2032 controls a process in which the server 20 transmits a signal to an external device according to a communication protocol.
  • the repository management module 2033 controls the process of acquiring the information recorded on the network for each user. Since the user of the team activity evaluation system 1 develops the source code by GitHub, the number of source code created in GitHub (source code hosting) and the correction code are used as various parameters indicating the activity status of the engineer team. Various parameters such as the number, the number of source code pushes, and the number of pull requests are recorded in the repository server 30. Further, as various parameters, various parameters such as the number of issues created, the number of reviews, the number of comments, the number of comment responses, and the number of commits are recorded in the repository server 30. Therefore, the repository management module 2033 accesses the repository server 30 and acquires various parameters of the user.
  • the repository server 30 in order to manage the version of the source code, when a user pushes the source code from the local repository, the information of the user and the date and time at that time are recorded as log information.
  • the information of the user and the date and time at that time are recorded as log information.
  • Information of the user who performed the action, and the date and time at that time are recorded as log information. This information is recorded for each engineer team to which each user belongs, for each project, and for each source code file created within that project.
  • the repository management module 2033 acquires these log information from the repository server 30.
  • the performance calculation module 2034 controls the process of calculating a value (individual score) indicating the performance (result) of the members belonging to the engineer team. For example, by counting the number of source code creation code, correction code number, source code push number, and pull request number created in the member's GitHub in a certain period, the user can use the source code as an engineer in a certain period. Since the amount (number of codes, number of codes, etc.) to be created is known, it is possible to estimate the results of the member as an engineer (programmer) for a certain period of time.
  • the performance calculation module 2034 has the number of source code created in GitHub, the number of modified codes, the number of source code pushes, the number of pull requests, the number of issues created, the number of reviews, the number of comments, the number of comment responses, the number of commits, etc. Performs various operations based on the various parameters of.
  • the number of source code creation code, correction code number, source code push number, pull request number, issue creation number, review number, comment number, comment response number, commit number, etc. of each member, etc. Is added for each member belonging to the engineer team.
  • the performance calculation module 2034 may simply stack and add various parameters as a calculation based on various parameters, or perform a weighting operation on each parameter (for example, multiplying each parameter by a predetermined coefficient and adding). You may. Further, each parameter may be weighted based on the difficulty or importance of the deliverable (source code), and the above calculation may be performed.
  • the scoring module 2035 controls the process of specifying the parameter indicating the activity status of the engineer team based on various parameters acquired by the repository management module 2033.
  • the parameter also referred to as a team score
  • the parameter is a value indicating the activity status of the engineer team (for example, the result as the engineer team), and the member of the engineer team creates the deliverable as an engineer. It is a value specified by performing various calculations based on the history of the information uploaded online and the review information performed by the members of the engineer team on the uploaded deliverable.
  • the scoring module 2035 specifies the team score at regular intervals (for example, one week).
  • the number of source code creation code, the number of modification code, the number of source code push, etc. created on GitHub of the entire team Count the number of pull requests for a certain period.
  • the amount of source code created by the engineer team in a certain period (number of codes, number of codes, etc.) can be known. It is possible to estimate from various aspects.
  • the number of issues created, the number of reviews, the number of comments, the number of comment responses, and the number of commits created in GitHub of the entire team are counted as review information performed by the members of the engineer team for the uploaded deliverables for a certain period of time.
  • the activity status of the team is acquired by acquiring and accumulating information on the deliverables of each member.
  • the amount of reviews (number of comments) by the engineer team in a certain period can be known, so it is possible to estimate the review status of the deliverables of the team, that is, the activity status of the engineer team from the qualitative aspect of the deliverables. It is possible.
  • the scoring module 2035 weights the number of source code created in GitHub, the number of modified codes, the number of source code pushes, and the number of pull requests based on the difficulty or importance of the deliverable (source code). And specify the team score.
  • the difficulty and importance of the source code may be calculated from, for example, the amount of modification of the source code, the number of files affected by the modification of the source code, and the issue related to the pull request related to the modification of the source code. It may be inferred from the man-hours set in. In such a case, the greater the amount of modification of the source code, the higher the difficulty and importance of the source code, and the larger the number of files affected by the modification of the source code, the higher the difficulty and importance of the source code.
  • the scoring module 2035 may specify the team score based on the history of the number of remaining codes after a predetermined period has elapsed after the creation. This is because the source code that remains after a certain period of time is considered to be highly useful.
  • the alert determination module 2036 controls the process of determining an alert regarding the activity status of the engineer team, which is notified to the user based on the fluctuation of the team score specified by the scoring module 2035. Alerts to notify users indicate things to be aware of regarding the activity status of the engineer team based on fluctuations in the team score, for example, the team score identified weekly is compared with other weeks. If the outlier is out of a certain range, the alert determination module 2036 determines an alert based on the outlier. As a specific example, the alert determination module 2036 compares with other weeks when the team score of the week is in the range determined to be outliers (for example, 20% or more decrease) compared with other weeks. Since it is estimated that the activity status of the engineer team is stagnant, it is decided to detect that it is an outlier and notify it as an alert based on the detected outlier.
  • the alert determination module 2036 detects fluctuations in various parameters such as values indicating the performance of members belonging to the engineer team, specifically, the number of created codes, the number of modified codes, the number of pushes, and the number of pull requests in GitHub. You may decide to alert the user based on the variability. Fluctuations in the performance of members often affect the activity of the engineering team.
  • the alert determination module 2036 detects fluctuations in the number of reviews, review time, and number of comments between one member belonging to the engineer team and another member in GitHub, and notifies the user of an alert based on the fluctuation. You may decide to do so. This is because the status of reviews between specific members may affect the activity status of the engineer team. Further, the alert determination module 2036 may determine to notify the user of the alert based on the fluctuation of the individual score calculated by the performance calculation module 2034. This is because fluctuations in the overall evaluation based on individual scores may affect the activity status of the engineer team.
  • the presentation module 2037 controls the process of presenting the team score indicating the activity status of the engineer team specified by the scoring module 2035 to the user.
  • the presentation module 2037 for example, transmits as time-series information to the user's terminal device 10 via the communication unit 201 in order to present the fluctuation status of the team score every week to the user.
  • the presentation module 2037 may present the change status of the team score for each breakdown such as the number of created codes of GitHub and the number of pushes.
  • the presentation module 2037 may acquire a lead time indicating the period from the request for review to the closing in the engineer team as the activity status of the engineer team and present it to the user. This is to grasp the time until the subsequent processing (review, etc.) of the deliverable is performed, and the subsequent time.
  • a review request is made for the deliverable
  • a person other than the engineer who created the deliverable reviews the deliverable and describes comments and the like.
  • the deliverable is modified based on the comments (the modification may not be necessary, and in some cases it may not be reviewed), and the decision to reflect the artifact is made. Once done, the merge will take place and the work on the deliverable will be closed.
  • the deliverable is closed without being merged.
  • the decision made for the pull request without distinguishing the presence or absence of the merge is called "closed", but in this specification, the merge is not performed, that is, the pull request is not responded.
  • the decision to end the development work such as correction of the deliverable is called "rejection”.
  • the above lead time is a concept including a period from a review request to a merge and closing, and a period from a review request to rejection without merging and closing. In other words, closing means that some decision-making has been made and development work such as correction to the deliverable has been completed, including merging and rejection.
  • Deliverables that have not been decided as described above will be left unattended, but in this state, the deliverables for which a review request has been requested have not yet been reviewed, or comments have been corrected. If not, the concept includes a state in which the work has been completed but no decision to merge or close has been made, and a state in which a certain period of time has passed in these states.
  • the presentation module 2037 may acquire a breakdown showing the transition of the deliverable for which the review is requested by the engineer team as the activity status of the engineer team and present it to the user.
  • the transition of the deliverable is the transition of the status of the deliverable (each of the above-mentioned states) after such a review request.
  • the breakdown showing the transition of the deliverable is the breakdown of the pull request that has progressed to each status in the entire target pull request. For example, the review is performed out of the total number of 10 pull requests.
  • Deliverables include 7 cases in the state of being in the state, 4 cases in which the response to the review has been made out of the 7 cases, and 2 cases in which the merged state has been made out of the 4 cases. It is the breakdown information showing the transition of. This is to understand whether the subsequent processing (review, etc.) is properly performed on the deliverable. Further, the presentation module 2037 may acquire the relationship between the number of comments on the deliverable for which the review is requested by the engineer team and the time until the deliverable is closed as the activity status of the engineer team, and present it to the user. .. This is to understand how the relationship between the number of comments and the time to close the deliverable is distributed, and which cases are outliers.
  • the presentation module 2037 may acquire the relationship between the reviewee requesting the review in the engineer team and the reviewer who receives the review request as the activity status of the engineer team, and present it to the user. This is to understand the relationship between reviewers and reviewers, and the load status of reviews.
  • the presentation module 2037 controls a process of presenting an alert about the activity status of the engineer team determined by the alert determination module 2036 to the user.
  • the presentation module 2037 transmits an alert based on the fluctuation status of the team score every week to the terminal device 10 of the user via the communication unit 201 together with the fluctuation status of the team score.
  • the presentation module 2037 may present the individual score, which is calculated by the performance calculation module 2034, indicating the performance of the members belonging to the engineer team to the user in association with the time-series information. At this time, it may be presented in association with the team score indicating the activity status of the engineer team. This is to grasp the activity status of the engineer team in association with the performance of the members.
  • the presentation module 2037 associates the team score indicating the activity status of the engineer team with the time-series information, and associates the team score indicating the activity status of another engineer team with the time-series information for comparison (for example). , Displayed in parallel) and presented to the user. This is to grasp the activity status of the engineer team by comparing it with other teams.
  • both time-series information does not necessarily have to be at the same time. This is because the activity periods of the two may differ, and it is easier to understand the situation of the team if the comparison is made over the period from the start time of the project related to the team.
  • the presentation module 2037 indicates the period from the request for review to the merge and closing in the engineer team (here, the period from the request for review to the rejection without the merge and closing). May be presented to the user based on the lead time (excluding) and comparable to the lead time in other engineering teams (eg, displayed in parallel). This is to understand the delivery status of deliverables in the engineer team by comparing it with other teams. At this time, the lead times of the two do not have to be the same timing, and may be compared at different times and periods. This is because the timing and duration of each project is usually different.
  • FIG. 4 is a diagram showing a data structure of the repository database 2021 stored in the server 20.
  • FIG. 5 is a diagram showing the data structures of the personal performance database 2022 stored in the server 20 and the team score database 2023 stored in the server 20.
  • each record of the repository database 2021 includes an item "organization ID”, an item “repository ID”, an item “address”, an item “update history information”, and the like.
  • the item "organization ID” is information that identifies each organization such as a company to which an engineer team such as a development project belongs, which is the target of various parameters acquired from the repository server 30 in the team activity evaluation system 1.
  • the item “repository ID” is information that identifies each repository set for each engineer team such as a development project, which is the target of various parameters acquired from the repository server 30 in the team activity evaluation system 1.
  • the item "address” is information indicating the address (URL) of the repository server 30 that acquires various parameters in the team activity evaluation system 1, and stores the address of the remote repository created for each project. From this address, it is possible to identify a file name (README.txt, etc.) common to each project.
  • the item “update history information” is information about the update history of the source code stored in the repository server 30 that acquires various parameters in the team activity evaluation system 1. Specifically, the item “action” and It includes the item “worker”, the item “title”, the item “source code”, the item “creation date / time information”, the item “update date / time information”, and the like.
  • This item “update history information” is action management information such as version control and comments of source code in GitHub.
  • the item "action” is information on the type of action for the source code stored in the repository server 30.
  • the item "worker” is information that identifies each user who has performed an action on the source code stored in the repository server 30.
  • the item "Title” is information indicating the name of the matter, repair, correction, etc. that is the basis of the action.
  • the item "source code” is information indicating the file name of the source code in which the action was performed.
  • the item "creation date / time information" is information on the date and time when the action was performed on the source code stored in the repository server 30.
  • the item "update date and time information" is information on the date and time when further action was performed on the source code stored in the repository server 30.
  • the repository management module 2033 of the server 20 updates the repository database 2021 as the log information is acquired from the repository server 30.
  • each of the records in the personal performance database 2022 includes the item “member ID”, the item “performance details”, and the like.
  • the item "member ID” is information for identifying each member belonging to the engineer team who receives the presentation of the activity status of the engineer team in the team activity evaluation system 1, and is the item “worker” in the repository database 2021. It corresponds to.
  • performance details is information on the actions acquired from various parameters of the log information in GitHub of the members belonging to the engineer team who receive the presentation of the activity status of the engineer team in the team activity evaluation system 1. Specifically, the item “repository ID”, the item “action”, the item “other member ID”, the item “value”, and the like are included.
  • the item “repository ID” is information for identifying each repository set for each engineer team, and corresponds to the item “repository ID” of the repository database 2021.
  • the item "action” is information on the type of action for the source code stored in the repository server 30 performed by a member belonging to the engineer team, and corresponds to the item "action” in the repository database 2021. ..
  • the item "other party member ID” is the member of the other party when the action on the source code stored in the repository server 30 performed by the member belonging to the engineer team is a review or comment. It is the identification information and corresponds to the item "worker" of the repository database 2021.
  • the item "date information" is information on the date when the action was performed on the source code stored in the repository server 30.
  • the performance calculation module 2034 of the server 20 updates the personal performance database 2022 by calculating the personal score indicating the performance of the members belonging to the engineer team.
  • Each of the records in the team score database 2023 includes the item "organization ID”, the item “repository ID”, the item “team member”, the item “team detailed information”, and the like.
  • the item "organization ID” is information that identifies each organization such as a company to which the engineer team, which is a higher-level item of the engineer team, receives the presentation of the activity status of the engineer team in the team activity evaluation system 1, and is a repository. It corresponds to the item "organization ID" of the database 2021.
  • the item “repository ID” is information that identifies each engineer team such as a development project, which is the target of various parameters acquired from the repository server 30 in the team activity evaluation system 1, and is the item “repository ID” of the repository database 2021. It corresponds to.
  • the item "team member” is information for identifying each member belonging to the engineer team who receives the presentation of the activity status of the engineer team in the team activity evaluation system 1, and is the item “member” of the personal performance database 2022. It corresponds to "ID”.
  • the item “team detailed information” is information about the engineer team that receives the presentation of the activity status of the engineer team in the team activity evaluation system 1, and specifically, the item “date” and the item “number of pull requests”.
  • the item “number of pull requests”, item “number of merges”, item “number of commits”, and item “number of reviews” are examples of various parameters in GitHub, and other parameters may be stored.
  • the item "date” is information indicating the date when the activity status of the engineer team is acquired and aggregated every day.
  • the item "number of pull requests" is information on the number of pull requests in the engineer team acquired from GitHub on the date.
  • the item "number of merges" is information on the number of merges in the engineer team acquired from GitHub on the date.
  • the item "number of commits" is information on the number of commits in the engineer team acquired from GitHub on the date.
  • the item "number of reviews” is information on the number of reviews in the engineer team acquired from GitHub on the date.
  • the value itself acquired from GitHub may be stored in the "number of pull requests", the item “number of merges”, the item “number of commits”, and the item “number of reviews”, and the value with predetermined weighting is stored. May be good.
  • the team score database 2023 may store the alert information determined by the alert determination module 2036.
  • the performance calculation module 2034 and the scoring module 2035 aggregate the activity status of the engineer team acquired from the repository database 2021 and present it as it is in the presentation module 2037, the personal performance database 2022 and the team score database 2023 You don't have to prepare.
  • the personal performance database 2022 and the team score database 2023 store pre-aggregated values so that they can be presented immediately even if the date and period for presenting the activity status of the engineer team are changed, as will be described later.
  • the scoring module 2035 of the server 20 updates the scoring module 2035 as the team score indicating the activity status of the engineer team is specified.
  • FIG. 6 is a flowchart showing an example of a flow of performing scoring processing by the team activity evaluation system 1 of the first embodiment.
  • step S111 the user operates the terminal device 10 to perform an action such as a push or a comment from the local repository of GitHub to the remote repository of the repository server 30, so that the input operation reception unit 171 of the terminal device 10 is concerned. Accept action instructions from the user.
  • the transmission / reception unit 172 transmits the received action information to the server 20.
  • the server 20 receives the action information via the communication unit 201.
  • the repository management module 2033 of the server 20 causes the repository server 30 to acquire various parameters such as the number of source code pushes and the number of pull requests recorded in the repository server 30 for each member of the team. Access and send a request signal.
  • the repository management module 2033 acquires various parameters from the repository server 30 via the communication unit 201.
  • step S113 the performance calculation module 2034 of the server 20 calculates a value (individual score) indicating the performance of the members belonging to the engineer team based on various parameters of GitHub acquired in step S112.
  • step S114 the scoring module 2035 of the server 20 specifies a team score indicating the activity status of the engineer team based on various parameters of GitHub acquired in step S112.
  • step S115 the alert determination module 2036 of the server 20 determines an alert regarding the activity status of the engineer team to be notified to the user based on the fluctuation of the team score specified in step S114.
  • step S116 the repository management module 2033 of the server 20 stores various parameters acquired in step S112 in the repository database 2021.
  • the performance calculation module 2034 stores the personal score calculated in step S113 in the personal performance database 2022.
  • the scoring module 2035 stores the team score specified in step S114 in the team score database 2023.
  • the alert determination module 2036 stores the alert information determined in step S115 in the team score database 2023.
  • the individual score of each member is calculated and the team score is specified based on various parameters which are log information of the deliverables in GitHub. This makes it possible to grasp the activity status of the team.
  • FIG. 7 is a flowchart showing an example of a flow of presenting the team activity status by the team activity evaluation system 1 of the first embodiment.
  • the input operation reception unit 171 of the terminal device 10 accepts information input of an ID (which may be temporary), an e-mail address, and a password for signing in to the team activity evaluation system 1 from the user.
  • the transmission / reception unit 172 transmits the received user ID and password, and information on the engineer team of the user to the server 20.
  • the server 20 accepts the transmitted ID, e-mail address, and password via the communication unit 201 and registers the user information.
  • the input operation reception unit 171 of the terminal device 10 accepts the selection of GitHub or other services as the service to be linked, selects the organization (company, etc.) registered in the service, and the engineer team and members associated with the organization. (Member) accepts the selection of the repository and sends it to the server 20.
  • the server 20 receives various transmitted selection information via the communication unit 201 and registers the selection information.
  • step S211 of the terminal device 10 the input operation reception unit 171 accepts the input of the organization ID, the e-mail address, and the password information for signing in to the team activity evaluation system 1 from the user.
  • the transmission / reception unit 172 transmits the received organization ID, e-mail address, and password information to the server 20.
  • step S221 the server 20 accepts the organization ID, e-mail address, and password via the communication unit 201, performs predetermined authentication, and accepts the sign-in of the user.
  • step S222 the presentation module 2037 of the server 20 reads out the team score specified in step S114 for the engineer team selected by the user from the team score database 2023 and acquires it.
  • the latest team score of the engineer team may be specified and acquired.
  • step S223 the presentation module 2037 of the server 20 reads an alert about the activity status of the engineer team determined in step S115 from the team score database 2023 and acquires it.
  • the alert may be determined from the latest team score of the engineer team and acquired.
  • step S224 the presentation module 2037 of the server 20 transmits the team score specified in step S222 and the alert determined in step S223 to the terminal device 10 via the communication unit 201 in order to present the user.
  • step S214 the transmission / reception unit 172 of the terminal device 10 receives the team score of the engineer team to which the user belongs and the alert transmitted from the server 20.
  • the notification control unit 174 displays the received team score and the alert on the display 132.
  • the team activity evaluation system 1 specifies the time-series team score of the engineer team based on various parameters that are log information of the deliverables in GitHub. This makes it possible to grasp the activity status of the team.
  • FIG. 8 is a diagram showing an example of a sign-in screen displayed on the terminal device 10.
  • the screen example of FIG. 8 shows a screen example when a user who receives the presentation of the activity status of the engineer team signs in to the team activity evaluation system 1. Corresponds to step S211 in FIG.
  • the organization ID input field 1031a of the company to which the engineer team belongs is registered.
  • a user's email address input field 1031b, a user's password input field 1031c, and a login transition button 1031d for logging in are arranged.
  • the user inputs the organization ID, the e-mail address, and the password into the organization ID input field 1031a, the e-mail address input field 1031b, and the user's password input field 1031c, respectively, and presses the screen transition button 1031d to press the server 20.
  • the screen transitions to the screen displaying the activity status of the engineer team.
  • FIG. 9 is a diagram showing an example of a display screen of the team activity status displayed on the terminal device 10.
  • the screen example of FIG. 9 shows a screen example in which the team score for a certain period and the time-series change of the team score are displayed.
  • step S214 of FIG. 9 corresponds to step S214 of FIG.
  • the display 132 of the terminal device 10 has a period display field 1032a for displaying a period in which the activity status of the engineer team is specified in response to an instruction operation for displaying the activity status of the engineer team.
  • a score display column 1032b that displays the breakdown of the team score showing the activity status (performance) of the engineer team, and a time series change display column that shows the total value of the team score that is the activity status of the engineer team and the change in the time series of the breakdown.
  • 1032c and the period change input field 1032d for accepting the change of the period in which the activity status of the engineer team is specified are displayed.
  • the period displayed in the period display column 1032a is a period indicated by the start date and end date of the period in which each score displayed in the score display column 1032b is acquired, and the start date and end date of one week are displayed as an example. Has been done.
  • the score displayed in the score display column 1032b is various parameters acquired from GitHub, and as an example, the number of issues created, the number of pull requests, the number of merges, the number of commits, and the number of reviews in the period displayed in the period display column 1032a. Is displayed. As an example, in FIG. 9, various parameters in the period shown in the period display column 1032a are compared with various parameters in the previous period, and the number of fluctuations thereof is displayed.
  • the time-series change displayed in the time-series change display column 1032c is a stacked bar graph showing the weekly changes of various parameters, and the horizontal axis is the time-series change (for example, one element is one week). (Shown), and the vertical axis shows the score value.
  • the number of issues created 1032c1 the number of pull requests 1032c2, the number of merges 1032c3, the number of commits 1032c4, and the number of reviews 1032c5 are 1 as the same elements as the parameters displayed in the score display column 1032b.
  • Weekly changes are stacked and displayed, and changes in total values are also displayed. In the example of FIG. 9, the change for 6 months is displayed.
  • the period displayed in the period display field 1032a can be changed by inputting the period change input field 1032d.
  • the period change input field 1032d is configured so that pull-down selection can be performed for each predetermined period.
  • the period is displayed in the period display field 1032a, and various parameters of the period are displayed in the score display field 1032b. Is displayed in.
  • the time-series change display field 1032c may display the time-series changes retroactive from the period changed by the input of the period change input field 1032d, and the number of issue creations 1032c1, the number of pull requests 1032c2, the number of merges 1032c3, The values indicated by the number of commits 1032c4 and the number of reviews 1032c5 may be changed and displayed.
  • the period displayed in the period display field 1032a and the period selectable by the period change input field 1032d may be configured to be changeable. In the example of FIG. 9, this period is displayed in units of one week. It may be changed every day, every 10 days, every month, and so on. By displaying the time-series change display column 1032c in this way, the user can grasp the change in the activity status of the engineer team.
  • FIG. 10 is a diagram showing an example of a pull request status display screen displayed on the terminal device 10.
  • the screen example of FIG. 10 shows a screen example in which the status of the source code pull request in the engineer team is displayed, and is displayed by scrolling or separately shifting the screen from the screen example of FIG. 9, for example.
  • an active pull request (something is being done) in the engineer team is extracted, and as an example of the situation, a pull request with a large number of comments is used.
  • the list is displayed.
  • a title display column 1033a indicating the title of the pull request
  • a status display column 1033b indicating the correspondence status of the pull request
  • a link display column 1033c displaying a link to the source code corresponding to the pull request.
  • the member display column 1033d indicating the member who made the pull request
  • the comment number display column 1033e indicating the number of comments for the pull request
  • the update date display column 1033f displaying the last update date for the pull request. It is displayed.
  • the title of the pull request shown in the title display column 1033a, the correspondence status of the pull request shown in the status display column 1033b, etc. are displayed in descending order of the number of comments displayed in the comment number display column 1033e. It is displayed.
  • This kind of display is displayed, for example, in order to grasp the pull requests that are being actively reviewed.
  • a pull request with a large number of comments may show a good tendency due to lively discussion, but for example, if the number of comments increases significantly in a specific period (1 day). In some cases, it may indicate that some kind of communication was necessary, such as a recognition discrepancy between the reviewer and the reviewer, and it is not possible to make a general judgment as to whether it is good or bad.
  • the display mode of the comment number display field 1033e may be changed (for example, the color may be changed to red).
  • the state display field 1033b may be displayed so as to change the display mode (for example, changing the color) according to the corresponding state of the pull request.
  • FIG. 11 is a diagram showing an example of a display screen of another team status displayed on the terminal device 10.
  • the screen example of FIG. 11 shows a screen example in which the team scores of the engineer team and another engineer team for a certain period of time are displayed. For example, scrolling or separately screen transitioning from the screen example of FIG. It is displayed by.
  • the team name display column 1034a indicating the engineer team and other engineer teams during a predetermined period and the team score which is the activity status of each engineer team are totaled.
  • a graph display field 1034b that expresses the values and their breakdown as a horizontal bar graph, a score display field 1034c that displays the breakdown of the team score showing the activity status of each engineer team, and a period change input field 1034d that accepts changes in the period. Is displayed.
  • the score displayed in the score display column 1034c is various parameters acquired from GitHub, and as an example, the number of issues created, the number of pull requests, the number of merges, the number of commits, and the number of reviews are displayed.
  • the graph display column 1034b a horizontal bar graph in which the scores displayed in the score display column 1034c are stacked to the right is displayed.
  • the period change input field 1034d is configured so that the aggregation period of the displayed graph display field 1034b and score display field 1034c can be changed by input, similarly to the period change input field 1032d shown in FIG. ing.
  • the display of the graph display column 1034b makes it possible to grasp the activity status of each team at a glance, and the length of the bar in the horizontal bar graph makes it possible to grasp that the activity status of the team is active.
  • FIG. 12 is a diagram (a) showing an example of a display screen of a lead time and a pull request status displayed on the terminal device 10, and a diagram (b) showing another display example of the diagram display field 1035d shown in FIG. 12 (a). ).
  • the screen example in FIG. 12 shows the lead time indicating the period from the pull request (review request) to the closing of the source code, which is a deliverable of the engineer team, the transition of the source code for which the pull request was made, and the lead time.
  • An example of a screen in which the time transition is displayed is shown, and is displayed by scrolling or separately shifting the screen from the screen example of FIG. 9, for example.
  • the display 132 of the terminal device 10 has a lead time display column 1035a indicating the average value of the lead times in the engineer team as the activity status (team score) of the engineer team, and a pull request.
  • the comment time display column 1035b showing the average time until the first comment is made for the source code that was made
  • the closing time display column 1035c showing the average time from the review to the closing, and the transition of the source code for which the pull request was made.
  • the diagram display field 1035d that displays the lead time
  • the moving average display field 1035e that displays the moving average time for each of the lead time, the time until the first comment, and the time from the review to the closing, and the period change input field that accepts changes in the period. 1035f is displayed.
  • the average time displayed in the lead time display column 1035a, the comment time display column 1035b, and the close time display column 1035c is the average value of each value of the predetermined period (for example, 3 weeks) in the engineer team.
  • the transition information displayed in the diagram display column 1035d indicates how the source code for which the pull request has been made has changed from the time when the pull request was made to the state of being closed or left unattended. More specifically, from the pull-requested state (status) to the subsequently reviewed state, the response to the review, the merged closed state, the rejected closed state, and the unclosed state. It is a representation of which status of the state that was left as it was, by a method called a Sankey diagram. For example, the rectangle 1035d1 on the left side shows the number of source codes for which pull requests have been made in the vertical length, and the rectangle 1035d2 has changed to the state where the source code for which pull requests have been made has been reviewed.
  • the number of source codes is shown by the length in the vertical direction. That is, the difference between the number of cases indicated by the rectangle 1035d1 and the number of cases indicated by the rectangle 1035d2 indicates the number of source codes that have not been reviewed, and the source code that has not been reviewed and the source code that has been left unreviewed are reviewed. Contains source code that was closed without any.
  • the curve connecting each rectangle shows the transition of the status as described above. The same applies to the subsequent status. Further, the attributes and the number of cases indicated by each rectangle or curve may be displayed (rollover) by hovering the mouse pointer over each rectangle or curve.
  • the subsequent processing (reviews, etc.) of the deliverables is appropriately performed as the activity status in the engineer team. It is possible to grasp at a glance whether or not it is.
  • the moving average time displayed in the moving average display column 1035e is a bar graph and an approximate curve showing the moving average time of each time in a predetermined period (for example, 3 weeks) in the engineer team, and the vertical axis is the vertical axis.
  • the number of cases and the horizontal axis show the passage of time (time series). It is possible to set various sections for calculating the moving average, but for example, it is desirable to calculate the moving average every 7 days in order to exclude the fluctuation of the engineer's work for each day of the week. However, when confirming the transition from a longer-term perspective, it is desirable to set a moving average every three weeks.
  • the average time displayed in the lead time display column 1035a, the comment time display column 1035b, the closing time display column 1035c, the transition information displayed in the diagram display column 1035d, and the moving average displayed in the moving average display column 1035e may be configured so that the time and period can be changed. Further, in the period change input field 1035f, similarly to the period change input field 1032d shown in FIG. 9, the displayed lead time display field 1035a, comment time display field 1035b, close time display field 1035c, diagram display field 1035d and moving are performed. The aggregation period of the average display field 1035e can be changed by input.
  • the activity status of the engineer team is the time until subsequent processing (review, etc.) is performed on the deliverable, and then. It is possible to grasp the time of the above at a glance, and it is possible to grasp the transition of the time series by the moving average time displayed in the moving average display column 1035e.
  • the transition information displayed in the diagram display field 1035d may be displayed with only specific elements separated so that the state can be easily grasped.
  • the rectangle 1035d5 on the right side indicating the number of source codes left unattended during the period are displayed, and only the rectangle 1035d5 indicating the number of cases left unattended is displayed separated in the lower right direction.
  • FIG. 13 is a diagram showing an example of a display screen of a pull request type status displayed on the terminal device 10.
  • the screen example of FIG. 13 shows a screen example in which the relationship between the number of comments for a pull request (request for review) and the time until merge / close is displayed as a scatter diagram in the engineer team, for example. It is displayed by scrolling from the screen example of FIG. 9 or by making a screen transition separately.
  • a scatter diagram 1036a is displayed on the display 132 of the terminal device 10 as the activity status of the engineer team during a predetermined period.
  • the vertical axis shows the number of comments for each pull request
  • the horizontal axis shows the lead time of each pull request (indicated as merge close time in the figure), and each pull request in a predetermined period within the team. Is a plot.
  • the pull request shown by point 1036b in FIG. 13 indicates that the number of comments was 16 and the lead time was 1.6 hours.
  • the period change input field 1036e for accepting the change of the predetermined period is displayed.
  • the scatter plot 1036a may be configured to display the number of comments and the merge / close time indicated by each point by hovering the mouse pointer over the point 1036b (rollover), and may be clicked with the mouse or the like. , As shown in FIG. 14 described later, the screen may be configured to transition to the screen showing the state of the pull request. Further, the scatter plot 1036a may be configured so that a predetermined frame 1036c surrounded by a scale line can be selected and points that are elements (to grasp outliers) can be selected.
  • one frame 1036c may be configured to be selectable, and a plurality of frames 1036c may be selected (for example, an operation of dragging and selecting, or a selection while pressing a shift key, etc.). It may be configured to be selectable (by operation). Furthermore, the number of comments of a certain engineer team and the representative value (for example, average value, median value, etc.) by the statistical method of the time until merge / close are set, and the area where the number of comments and the lead time are smaller than this is set in the frame 1036d. As shown in the above, the display mode may be changed (for example, the color may be changed) to be displayed. From the scatter plot 1036a, it is possible to grasp at a glance how the relationship between the number of comments and the time until merge / close is distributed, and among them, which are the outliers.
  • FIG. 14 is a diagram showing an example of a display screen of a pull request status displayed on the terminal device 10.
  • the screen example of FIG. 14 shows a screen example of a state in which the pull request status is displayed in a list format in the engineer team, and is displayed by selecting, for example, by clicking the point 1036b in FIG.
  • the title display field 1037a of the source code that is the target of the pull request, the file name display field 1037b of the source code, and the action display field 1037c for the source code are displayed.
  • the date display field 1037d at which the action was performed and the member display field 1037e at which the action was performed are displayed.
  • the action display field 1037c, the date display field 1037d, and the member display field 1037e are historical information acquired from, for example, the personal performance database 2022. With such a configuration, it is possible to grasp the situation at a glance for each pull request (source code).
  • FIG. 15 is a diagram showing an example of a display screen of a review implementation status displayed on the terminal device 10.
  • the screen example of FIG. 15 shows a screen example in a state where a diagram showing the review implementation rate, the response rate to the review, and the relationship between the reviewer and the reviewer in the engineer team is displayed. For example, from the screen example of FIG. It is displayed by scrolling or changing the screen separately.
  • the review rate display column 1038a indicating the review rate in the engineer team and the response rate indicating the response rate to the review are shown on the display 132 of the terminal device 10 as the activity status of the engineer team during a predetermined period.
  • a display column 1038b and a relationship diagram display column 1038c showing the relationship between the reviewer requesting the review and the reviewer receiving the review request are displayed.
  • the relationship diagram display column 1038c is a diagram showing the relationship between whom the reviewer requesting the review requests the review and conducts the review. For example, the reviewer display column displaying the reviewer who made the pull request.
  • the 1038d, the reviewer display field 1038e that displays the reviewer for which the review request has been received, and the relationship display line 1038f that shows the relationship between the reviewer display field 1038d and the reviewer display field 1038e are displayed.
  • a period change input field 1038 g for accepting a change in the predetermined period is displayed.
  • the horizontal lengths of the frames of the reviewer display column 1038d and the reviewer display column 1038e indicate the number of reviews.
  • the relationship diagram display field 1038c by selecting a specific reviewer display field 1038d and a reviewer display field 1038e, only the relationship display line 1038f related to the selected reviewer display field 1038d or the reviewer display field 1038e is displayed. It may be configured as.
  • the review rate display column 1038a and the response rate display column 1038b make it possible to grasp the review implementation status in the engineer team at a glance.
  • the relationship diagram display column 1038c makes it possible to grasp the relationship between the reviewer and the reviewer and the load status of the review at a glance.
  • FIG. 16 is a diagram showing an example of a display screen of alert information displayed on the terminal device 10.
  • the screen example of FIG. 16 shows a screen example in which an alert determined based on the fluctuation of the team score for a certain period is displayed. For example, by scrolling or separately shifting the screen from the screen example of FIG. Is displayed.
  • the display 132 of the terminal device 10 has an importance display column 1039a indicating the importance of the alert information, an alert display column 1039b displaying an alert determined from the activity status of the engineer team, and the like.
  • a rationale link display field 1039c for displaying a link to information on which the alert is based is displayed, and a date display field 1039d for displaying the date when the alert is determined is displayed.
  • a picture or a symbol indicating the importance of the alert content displayed in the alert display column 1039b is displayed in red, for example, when the importance is high.
  • an alert based on the fluctuation of the team score is displayed, but an alert based on an element other than the fluctuation of the team score (for example, a certain period or more has passed since the pull request was made, the delivery date is (Approaching) may be displayed.
  • the alert display field 1039b By displaying the alert display field 1039b in this way, the user can grasp the matters to be noted regarding the activity status of the engineer team.
  • FIG. 17 is a diagram showing an example of a performance display screen of a member displayed on the terminal device 10.
  • the screen example of FIG. 17 shows a screen example in which a value indicating the performance of a specific member belonging to the engineer team corresponding to the fluctuation of the team score for a certain period is displayed, for example, FIG. It is displayed by scrolling from the screen example or by transitioning the screen separately.
  • the display 132 of the terminal device 10 has a period display column 1040a for displaying the period for which the performance of the member is calculated, and a breakdown of the individual score showing the activity status (performance) of the member.
  • the score display column 1040b to be displayed and the time-series change display column 1040c showing the time-series change of the total value of the individual scores of the members and the breakdown thereof are displayed.
  • a period change input field 1040d for accepting a change in the period for which the performance of the member is calculated is displayed.
  • the period displayed in the period display column 1040a is the period indicated by the start date and end date of the period in which the individual score displayed in the time series change display column 1040c is acquired, and is, for example, the start date and end date of 6 months. Is displayed.
  • the time-series change displayed in the time-series change display column 1040c is a stacked bar graph showing the weekly changes of various parameters, and the horizontal axis is the time-series change (for example, one element is one week). (Shown), and the vertical axis shows the score value.
  • the stacked bar graph in the time-series change display column 1040c displays weekly changes in the number of issues created, the number of pull requests, the number of merges, the number of commits, and the number of reviews, similar to the parameters displayed in the score display column 1040b. , The change in total value is also displayed. It should be noted that it may be possible to display how much the cumulative value has changed from a certain point in time instead of the total value. By displaying the time-series change display column 1040c in this way, the user can grasp the change in the activity status of the member, and can grasp it in association with the change in the activity status of the engineer team. ..
  • FIG. 18 is a diagram showing an example of a display screen of a member's pull request status displayed on the terminal device 10.
  • the screen example of FIG. 18 shows a screen example in which the status of a source code pull request by the member is displayed, and is displayed by scrolling or separately screen transitioning from the screen example of FIG. 17, for example.
  • the status of the source code pull request by the member for example, a state in which a pull request has been made for a certain period or more, that is, a review has been made while the review request has been made.
  • a list of source code that has not been done (left unattended) is displayed. Specifically, a pull request was made to the source code display field 1041a showing the source code, the grounds link display field 1041b to display the link to the information that is the basis of the state of the source code, and the source code.
  • a date display field 1041c for displaying the date is displayed. Further, the period change input field 1041d for accepting the change of the period for which the performance of the member is calculated is displayed.
  • the source code display field 1041a the source code in a state where a pull request has been made for a certain period or more is displayed, and the grounds link display field 1041b is displayed as a means for confirming the state. For example, if a certain period of time has passed since the pull request was made to the source code, it will affect the lead time indicating the period from the start of the source code to the delivery in the engineer team, so if the lead time is long, review on the screen. The screen display is used to confirm the status of. With such a source code display field 1041a, it becomes possible to grasp the blank period for each deliverable.
  • FIG. 19 is a diagram showing an example of a display screen for team comparison of team activity status displayed on the terminal device 10.
  • the screen example of FIG. 19 shows a screen example in a state of being displayed in a state comparable to the fluctuation of the team score of another engineer team corresponding to the fluctuation of the team score for a certain period, for example, the screen example of FIG. It is displayed by scrolling from or by changing the screen separately.
  • the display 132 of the terminal device 10 has a period display column 1042a for displaying a period in which the activity status of the engineer team is specified, a total value of the team score which is the activity status of the engineer team, and the total value thereof.
  • the time-series change display column 1042b showing the time-series change of the breakdown, the total value of the team score which is the activity status of the other engineer team to be compared, and the time-series change display column 1042c showing the time-series change of the breakdown. Is displayed.
  • the period change input field 1042d for accepting the change of the period in which the activity status of the engineer team is specified is displayed.
  • the period displayed in the period display column 1042a is a period indicated by the start date and the end date of the period in which the team score displayed in the time series change display column 1042b and the time series change display column 1042c is acquired, and 6 as an example.
  • the start date and end date of the month are displayed.
  • the time-series changes displayed in the time-series change display column 1042b and the time-series change display column 1042c are weekly changes of various parameters in the same period displayed in a stacked bar graph, and the horizontal axis is the time-series changes. (As an example, one element indicates one week), and the vertical axis indicates the score value.
  • the number of issues created, the number of pull requests, the number of merges, the number of commits, and the number of reviews correspond to the time-series change display column 1032c shown in FIG.
  • the change of the weekly is displayed, and the change of the total value is also displayed. If various parameters of the engineer team or other engineer team to be compared exist only for a part of the period, it may be configured to display only the part of the period, and the time series information of both may be displayed. , Not necessarily at the same time.
  • the user can grasp the change in the activity status of the engineer team by comparing with other teams.
  • the items and graphs to be compared with other teams are not limited to those shown in Fig. 19, and the same team scores and graphs for other teams can be used for any of the various team scores and graphs explained so far. It is possible to create and compare.
  • the team score is specified by calculating the individual score of each member based on various parameters which are log information of the deliverable in GitHub, and the team score and various parameters are presented. To. Therefore, it becomes possible to appropriately grasp the activity status (performance) as an engineer team. This can provide an opportunity to improve the operation of the engineer team, and can supply the necessary human resources according to the situation of the team organization.
  • an alert about the activity status is determined and presented to the user. Therefore, it is possible to grasp the matters to be noted about the activity status of the engineer team in association with the activity status of the engineer team. This makes it possible to contribute to identifying the cause of fluctuations in the activity status of the engineer team, and thus it becomes possible to consider concrete plans for improving the operation of the engineer team.
  • the performance of the members belonging to the engineer team is also calculated and presented to the user. Therefore, it is possible to grasp the activity status of the engineer team in association with the performance of the members. This makes it possible to understand that a specific member is a bottleneck and that a review between a specific member and another specific member is a bottleneck.
  • FIG. 20 is a diagram showing a functional configuration of the server 20 constituting the team activity evaluation system 1 of the second embodiment. Since the overall configuration of the team activity evaluation system 1 and the configuration of the terminal device 10 in the second embodiment are the same as those in the first embodiment, they will not be described repeatedly. As shown in FIG. 20, the configuration of the server 20 is the same as that of the first embodiment except that the engineer database 2024 is newly stored and the function of the recommendation module 2038 is provided. Hereinafter, the functions of the engineer database 2024 and the recommendation module 2038 in the second embodiment will be described.
  • the engineer database 2024 is a database for holding various information about other teams acquired from the repository server 30 in the team activity evaluation system 1, for example, as information of an engineer who wishes to be transferred, with the consent of the person himself / herself. Further, the engineer database 2024 may also retain the information of the engineer who wishes to change jobs registered in the so-called job change platform with the consent of the person himself / herself. Details will be described later.
  • the engineer database 2024 is not an indispensable configuration for realizing the function of the recommendation module 2038, but may be configured to recommend information about an engineer who has been linked from another system or the like in the recommendation module 2038.
  • the recommendation module 2038 is a process of extracting and presenting (recommending) the cause of the change in the activity status of the engineer team, one or both of the improvement plans, to the engineer team user who has been presented with the activity status by the presentation module 2037. To control. At this time, the recommendation module 2038 analyzes various parameters stored in the team score database 2023, outputs the analysis result, and presents the cause of the fluctuation or the improvement plan based on the analysis result.
  • the reduced parameters, causative tasks, actions, and members may be presented, and the user may be presented with recommendations such as changes in the members in charge and assignment of new members.
  • the recommendation module 2038 may present the user with changes to the deliverable (source code, etc.) in charge of the specific member.
  • the recommendation module 2038 may present the user with a change in the review relationship (reviewer, reviewer) between the specific members.
  • the recommendation module 2038 may present the user with the participation of other members who are engineers outside the engineer team. At this time, the recommendation module 2038 matches with the information (value) indicating the result of the engineer stored in the engineer database 2024, determines whether or not it is adaptable, and if it is determined that it is adaptable to the engineer team, the engineer. To the user. As an example of determining whether or not it is applicable to an engineer team, a predetermined criterion is selected from the team performance activity status, and engineers who meet the selected criterion are selected from other teams registered in the engineer database 2024.
  • the judgment criteria for the review for example, the number of reviews within the predetermined period is predetermined.
  • Select above the threshold, etc.
  • the criteria for pull requests for example, the number of pull requests within a predetermined period is equal to or higher than a predetermined threshold.
  • FIG. 21 is a diagram showing a data structure of the engineer database 2024 stored in the server 20.
  • each record in the engineer database 2024 includes an item "engineer ID”, an item “self-reporting skill”, an item “score information”, an item “performance details”, and the like. Since the item “self-reporting skill” and the item “score information" are the same as the alliance items of the personal performance database 2022 shown in FIG. 5, the description thereof will be omitted.
  • engine ID is information that is recommended by the team activity evaluation system 1 and identifies each engineer.
  • performance details is information on actions acquired from various parameters of log information on GitHub of members belonging to the engineer team who are presented with the activity status of the engineer team in the team activity evaluation system 1. Specifically, the item “team ID (affiliation)”, the item “action”, the item “other member ID”, the item “value”, and the like are included. Since the item “action”, the item “other party member ID”, and the item “value” are the same as the alliance items of the personal performance database 2022 shown in FIG. 5, the description thereof will be omitted.
  • the item "team ID (affiliation)" is information that identifies each of the engineer teams.
  • the recommendation module 2038 When the recommendation module 2038 presents the participation of other members to the user and recommends it, the recommendation module 2038 performs matching by referring to the item "performance details" of the engineer database 2024, and recommends an appropriate engineer to the user.
  • FIG. 22 is a diagram showing a screen example of an engineer's recommendation display displayed on the terminal device 10.
  • the screen example of FIG. 22 shows a screen example in which the individual score of the recommended engineer and the performance information of the engineer are displayed.
  • the personal score display field 1043a shown in FIG. 22 and the personal score indicating the performance of the engineer are shown on the display 132 of the terminal device 10.
  • a score display field 1043b for displaying the breakdown of the above and an offer button 1043c to be pressed when making an offer to the engineer are displayed.
  • the user refers to the score displayed in the score display field 1043b for the engineer, and decides whether or not to assign to the engineer. If it is decided to assign, the user presses the offer button 1043c, so that the engineer is notified. With such a configuration, it becomes possible to assign to an appropriate engineer.
  • improvement plans are recommended for various parameters of the activity status of the engineer team. For example, recommending a specific member or assigning a new member. This makes it possible to grasp improvement plans for the activity status of the engineer team.
  • (Appendix 1) A program for causing a computer including a processor 29 and a storage unit 202 to be executed.
  • the program is for a member belonging to an engineer team to create a deliverable as an engineer on the processor.
  • Weighting is performed based on the difficulty or importance of the created code and the modified code related to the number of created codes and the number of modified codes, the parameters are specified, or the parameters remain after a predetermined period of time has passed since the creation.
  • (Appendix 8) Obtain one or more of the number of reviews, the number of comments, and the number of comment responses to the management means as the review information performed by the members of the engineer team on the deliverables, from (Appendix 1) to (Appendix 7). The program described in either.
  • (Appendix 12) The program indicates the number of comments on the deliverables requested for review by the engineer team and the lead time from the request for review to the closing by the engineer team as the activity status of the engineer team.
  • the program according to any one of (Appendix 1) to (Appendix 11), which acquires the relationship with and presents to the user.
  • the program causes the processor to further perform a step of calculating a value indicating the achievement of a member belonging to an engineer team, and presents a value indicating an achievement of a member belonging to a specific engineer team.
  • the program according to any one of (Appendix 1) to (Appendix 13).
  • Appendix 21 The history of the engineer team is analyzed, and one or more of the tasks, actions, and members belonging to the engineer team that cause the parameter fluctuation during the predetermined period are detected and presented (Appendix 21). 19) or the program according to (Appendix 20).
  • the program matches the step of acquiring the value indicating the achievement of the engineer outside the engineer team with the processor, the value indicating the achievement of the engineer outside the engineer team with the history of the engineer team, and the engineer. Steps to determine whether an engineer outside the team is adaptable to the engineer team, and if an engineer outside the engineer team determines that it is adaptable to the engineer team, as an improvement plan, join the engineer team of the engineer outside the engineer team.
  • the program according to any one of (Appendix 19) to (Appendix 21) for executing the step of presenting.
  • the program further causes the processor to perform a step of associating the parameters with the time-series information and presenting the parameters representing the activity status of other engineer teams with the time-series information in a comparable manner.
  • the program according to any one of (Appendix 1) to (Appendix 22).
  • An information processing device including a control unit and a storage unit, wherein the control unit is information uploaded online by a member belonging to an engineer team in order to create a deliverable as an engineer. Based on the review information of the uploaded deliverables by the members of the engineer team and the history, the step of specifying the parameter representing the activity status of the engineer team and the step of presenting the parameter to the user. Information processing device to execute.
  • Appendix 26 A method for being executed by a computer equipped with a processor and a storage unit, wherein the processor is online for members belonging to an engineer team to create deliverables as an engineer. Based on the history of the information uploaded above and the review information of the uploaded deliverables by the members of the engineer team, the steps to identify the parameters representing the activity status of the engineer team and the parameters to the user. The steps to present and how to perform.

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Library & Information Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

チーム活動評価システム1のサーバ20は、その機能として、エンジニアチームの活動状況を示す各種パラメータに基づき、エンジニアチームの活動状況を示すチームスコア(パラメータ)を特定するスコアリングモジュール2035と、特定された、エンジニアチームの活動状況を示すチームスコアを時系列の情報と関連付けて、ユーザに提示する提示モジュール2037と、を備える。

Description

プログラム、情報処理装置および方法
 本開示は、プログラム、情報処理装置および方法に関する。
 企業活動におけるプロダクト開発は、複数のエンジニアによるチームで進められることが多い。チームによるプロダクト開発では、チーム内で適切に人員配置を行い、成果物に対するレビューを適切に行う必要があり、チームとしてのパフォーマンスを最大化する必要がある。
 特許文献1には、企業活動における活動の組織性、単独性を分析する活動分析技術が開示されている。この技術は、同時に複数人の介在が可能な活動、例えば会議等について、その活動が発生する場に同時に介在した参加者の情報を参加者の位置情報より取得し、組織を分析する手法である。
特開2008-027017号公報
 ところで、プロダクト開発等を行うエンジニアにより構成されるエンジニアチームのパフォーマンスを評価する場合、当該チームの成果物について適切に把握する必要がある。そのためには、エンジニアチームの構成員であるそれぞれのエンジニアによる成果物の数量だけではなく、チーム内でどのようなプロセスを経ているのかも把握する必要がある。このようなエンジニアチームとしてのパフォーマンスを適切に把握する手法が求められていた。
 そこで、本開示では、エンジニアチームとしてのパフォーマンスを適切に評価する技術について説明する。
 本開示の一実施形態によると、プロセッサと、記憶部とを備えるコンピュータに実行させるためのプログラムが提供される。プログラムは、プロセッサに、エンジニアチームに所属する構成員が、エンジニアとしての成果物を作成するためにオンライン上にアップロードした情報と、当該アップロードされた成果物についてエンジニアチームの構成員が行ったレビュー情報と、の履歴に基づいて、エンジニアチームの活動状況を表すパラメータを特定するステップと、パラメータをユーザに提示するステップと、を実行させる。
 本開示によれば、エンジニアとしての成果物を作成するためにアップロードした情報と、当該アップロードされた成果物についてエンジニアチームの構成員が行ったレビュー情報と、の履歴に基づいて、エンジニアチームの活動状況を表すパラメータを特定する。そのため、エンジニアチームとしてのパフォーマンスを適切に把握することが可能になる。
チーム活動評価システム1の全体の構成を示す図である。 実施の形態1のチーム活動評価システム1を構成する端末装置10の機能的な構成を示すブロック図である。 実施の形態1のチーム活動評価システム1を構成するサーバ20の機能的な構成を示す図である。 サーバ20が記憶するリポジトリデータベース2021のデータ構造を示す図である。 サーバ20が記憶する個人パフォーマンスデータベース2022、チームスコアデータベース2023のデータ構造を示す図である。 実施の形態1のチーム活動評価システム1によるスコアリング処理を行う流れの一例を示すフローチャートである。 実施の形態1のチーム活動評価システム1によるチーム活動状況の提示処理を行う流れの一例を示すフローチャートである。 端末装置10に表示するサインイン画面の例を示す図である。 端末装置10に表示するチーム活動状況の表示画面例を示す図である。 端末装置10に表示するプルリクエスト状況の表示画面例を示す図である。 端末装置10に表示する他のチーム状況の表示画面例を示す図である。 端末装置10に表示するリードタイムおよびプルリクエストの状況の表示画面例を示す図である。 端末装置10に表示するプルリクエストタイプの状況の表示画面例を示す図である。 端末装置10に表示するプルリクエストの状態の表示画面例を示す図である。 端末装置10に表示するレビュー実施状況の表示画面例を示す図である。 端末装置10に表示するアラート情報の表示画面例を示す図である。 端末装置10に表示する構成員のパフォーマンス表示画面例を示す図である。 端末装置10に表示する構成員のプルリクエスト状況の表示画面例を示す図である。 端末装置10に表示するチーム活動状況のチーム比較の表示画面例を示す図である。 実施の形態2のチーム活動評価システム1を構成するサーバ20の機能的な構成を示す図である。 サーバ20が記憶するエンジニアデータベース2024のデータ構造を示す図である。 端末装置10に表示するエンジニアのレコメンド表示の画面例を示す図である。
 以下、図面を参照しつつ、本開示の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。従って、それらについての詳細な説明は繰り返さない。
 <概要>
 以下、本開示に係るチーム活動評価システムについて説明する。このチーム活動評価システムは、プロダクト開発等を行うエンジニアにより構成される、エンジニアチームの活動状況(パフォーマンス)を示すチームスコア(パラメータ)を特定して評価するためのシステムである。ここで、エンジニアチームとは、複数人のエンジニアにより構成され、特定のプロダクト、例えば,いわゆるSaaS(Software as a Service)によって提供されるWebサービス,Webサイト等の開発を進めるためのチームであり、チーム内でそれぞれのエンジニアが当該サービスの機能ごと、アウトプットごと等に役割分担して開発を進めている。また、チーム内のエンジニアとは、特定の1つの企業に雇用されている会社員だけとは限らず、複数の企業が共同で開発を進める開発プロジェクトにおけるそれぞれの会社員でもよく、個人事業主、いわゆるフリーランスのエンジニアが含まれてもよい。
 本開示に係るチーム活動評価システムは、エンジニアチームの活動状況を示すチームスコアを特定するため、例として、ソフトウェア開発のプラットフォームであるGitHub(登録商標)にアクセスし、エンジニアチームの構成員であるエンジニアとしての成果を示す各種パラメータを取得する。GitHubは、ソースコードホスティングサービスであり、成果物であるソースコードのバージョン管理を行うためのリポジトリ(管理手段)を有し、ある時点におけるソースコードの一覧を管理している。また、GitHubは、プロジェクトやソースコードの課題を管理するためのイシュー(作成)、エンジニアのローカル環境(ローカルリポジトリ)で作成又は修正を行ったソースコードをリモート環境(リモートリポジトリ)へアップロードするプッシュ、プッシュがされたことを通知してレビュー依頼するプルリクエスト、レビューの際にコメントや修正内容を採用するコミット、レビュー結果を確定させて履歴を統合するマージ等の機能を備えている。なお、ここで、ソースコードとは、Pythonのようなプログラミング言語、JavaScript(登録商標)のようなプログラミング言語の一種であるスクリプト言語を含む概念である。すなわち、本開示に係るチーム活動評価システムは、外部サーバ(クラウドサーバ)で管理している成果物に関するパラメータを取得するものであり、個人PCの使用状況のモニタリングを要することなく、エンジニアチームの活動状況を示すシステムである。
 また、プログラミング言語とは、ソフトウェア開発に用いられる言語であり、具体的にはHTML、CSS、JavaScript(登録商標)、Java(登録商標)、Scala、PHP、Ruby、Python、Go、C#、Node.jsなどがある。また、ソフトウェアフレームワークとはソフトウェア開発に利用するソフトウェアプラットフォームであり、具体的には、jQuery、React、Vue.js、Angular、Nuxt.js、Next.js、ReactNative、Spring Framework、Play Framework、Laravel、CakePHP、RubyonRails、Django、Flask、TensorFlow、gin、Unity、Expressなどがある。
 エンジニアチームの活動状況を示す各種パラメータとして、GitHubで管理している、GitHubに対するプッシュ数(アップロード数)、GitHubでのソースコードの作成コード数、修正コード数、プルリクエスト数(レビュー依頼数)、マージ数(統合数)等の値を取得することにより、エンジニアチームにおける成果物をオンライン上にアップロードした情報として数値化し、スコアを算出する。これにより、エンジニアチームの活動状況を成果物の量的な側面で推定することが可能であると考えられる。例えば、ソースコードの作成コード数、修正コード数、プッシュ数が多い場合、エンジニアチームとして多くの成果物を作成しているといえるため、エンジニアチームの成果物を作成する活動状況は活発であると推定される。そのため、このスコアの多少により、エンジニアチームの成果物に対する活動状況を成果物の量的な側面で推定できると考えられる。
 また、エンジニアチームの活動状況を示す各種パラメータとして、GitHubで管理している、GitHubに対するイシュー作成数、レビュー数、コメント数、コメント回答数、コミット数等の値を取得することにより、これらの値を包含し、エンジニアチームの構成員が行ったレビュー情報として数値化し、スコアを算出する。これにより、エンジニアチームの活動状況を成果物の質的な側面で推定することが可能であると考えられる。例えば、レビュー数、コメント数が多い場合、エンジニアチーム内で成果物に対するチェックや議論が多くなされているといえるため、エンジニアチームの成果物に対するレビューが活発であり、成果物の質が担保されている傾向が高いと推定される。そのため、このスコアの多少により、エンジニアチームの成果物に対する活動状況を成果物の質的な側面で推定できると考えられる。
 さらに、これらのチームスコアを時系列の情報と関連付けて提示することにより、エンジニアチームの活動状況を時系列で把握することが可能であると考えられる。例えば、特定の期間(例えば、1週間)のチームスコアが他の期間に対して低い場合、当該期間における成果物の作成、成果物に対するレビューのいずれか、または両方が停滞していたと推定されるため、チームの状況を早期に把握し、原因特定に資することになる。
 そのため、本開示に係るチーム活動評価システムでは、GitHubにおける各種パラメータの値を取得し、これらの値からエンジニアチームの活動状況を示すチームスコアを特定する。このチームスコアを、エンジニアチームの構成員やエンジニアチームをマネジメントとする管理者(チームのマネージャや、人事部門担当者、経営陣等)などに提示している。このような構成により、エンジニアチームの活動状況を、より客観的に提示し、把握してもらうことが可能になる。なお、エンジニアチームにおける成果物とは、GitHubにおけるソースコード以外に、システム上の設定情報やデータベース、各種仕様書等を含む概念であるが、本実施形態ではGitHubにおけるソースコードを例として説明する。
 <第1の実施の形態>
 以下、チーム活動評価システム1について説明する。以下の説明では、例えば、端末装置10がサーバ20へアクセスすることにより、サーバ20が、端末装置10で画面を生成するための情報を応答する。端末装置10は、サーバ20から受信した情報に基づいて画面を生成し表示する。
 <1 チーム活動評価システム1の全体構成>
 図1は、チーム活動評価システム1の全体の構成を示す図である。図1に示すように、チーム活動評価システム1は、複数の端末装置(図1では、端末装置10Aおよび端末装置10Bを示している。以下、総称して「端末装置10」ということもある)と、サーバ20と、リポジトリサーバ30とを含む。端末装置10と、サーバ20と、リポジトリサーバ30とは、ネットワーク80を介して相互に通信可能に接続されている。ネットワーク80は、有線または無線ネットワークにより構成される。
 端末装置10は、各ユーザが操作する装置である。ここで、ユーザとは、端末装置10を使用してチーム活動評価システム1によるエンジニアチームの活動状況の提示を受ける者であるが、当該エンジニアチームの構成員とは限らず、所属企業の(チームに属さない)マネージャ、人事部門担当者、経営陣などを含む者である。端末装置10は、据え置き型のPC(Personal Computer)、ラップトップPC等により実現される。この他、端末装置10は、例えば移動体通信システムに対応したタブレットや、スマートフォン等の携帯端末であるとしてもよい。
 端末装置10は、ネットワーク80を介してサーバ20およびリポジトリサーバ30と通信可能に接続される。端末装置10は、4G、5G、LTE(Long Term Evolution)等の通信規格に対応した無線基地局81、IEEE(Institute of Electrical and Electronics Engineers)802.11等の無線LAN(Local Area Network)規格に対応した無線LANルータ82等の通信機器と通信することにより、ネットワーク80に接続される。図1に端末装置10Bとして示すように、端末装置10は、通信IF(Interface)12と、入力装置13と、出力装置14と、メモリ15と、記憶部16と、プロセッサ19とを備える。
 通信IF12は、端末装置10が外部の装置と通信するため、信号を入出力するためのインタフェースである。入力装置13は、ユーザからの入力操作を受け付けるための入力装置(例えば、キーボードや、タッチパネル、タッチパッド、マウス等のポインティングデバイス等)である。出力装置14は、ユーザに対し情報を提示するための出力装置(ディスプレイ、スピーカ等)である。メモリ15は、プログラム、および、プログラム等で処理されるデータ等を一時的に記憶するためのものであり、例えばDRAM(Dynamic Random Access Memory)等の揮発性のメモリである。記憶部16は、データを保存するための記憶装置であり、例えばフラッシュメモリ、HDD(Hard Disc Drive)である。プロセッサ19は、プログラムに記述された命令セットを実行するためのハードウェアであり、演算装置、レジスタ、周辺回路等により構成される。
 サーバ20は、GitHubにおける各種パラメータ、エンジニアチームに所属する構成員のパフォーマンス、及びエンジニアチームの活動状況を示すチームスコアの情報を管理する装置である。サーバ20は、ユーザからエンジニアチームを識別する情報を受け付け、対象となるエンジニアチームの活動状況を示すチームスコアを特定し、当該ユーザへ提示する。
 サーバ20は、ネットワーク80に接続されたコンピュータである。サーバ20は、通信IF22と、入出力IF23と、メモリ25と、ストレージ26と、プロセッサ29とを備える。
 通信IF22は、サーバ20が外部の装置と通信するため、信号を入出力するためのインタフェースである。入出力IF23は、ユーザからの入力操作を受け付けるための入力装置、および、ユーザに対し情報を提示するための出力装置とのインタフェースとして機能する。メモリ25は、プログラム、および、プログラム等で処理されるデータ等を一時的に記憶するためのものであり、例えばDRAM(Dynamic Random Access Memory)等の揮発性のメモリである。ストレージ26は、データを保存するための記憶装置であり、例えばフラッシュメモリ、HDD(Hard Disc Drive)である。プロセッサ29は、プログラムに記述された命令セットを実行するためのハードウェアであり、演算装置、レジスタ、周辺回路等により構成される。
 リポジトリサーバ30は、GitHubにおけるリモートリポジトリ(管理手段)を管理する装置である。リポジトリサーバ30は、ユーザがプッシュしたソースコードを受け付けて格納および管理を行い、プルリクエスト、コメント、コミット、マージ等を受け付ける。
 <1.1 端末装置10の構成>
 図2は、実施の形態1のチーム活動評価システム1を構成する端末装置10の機能的な構成を示すブロック図である。図2に示すように、端末装置10は、複数のアンテナ(アンテナ111、アンテナ112)と、各アンテナに対応する無線通信部(第1無線通信部121、第2無線通信部122)と、操作受付部130(キーボード131およびディスプレイ132を含む)と、音声処理部140と、マイク141と、スピーカ142と、カメラ150と、記憶部160と、制御部170とを含む。端末装置10は、図2では特に図示していない機能および構成(例えば、電力を保持するためのバッテリー、バッテリーから各回路への電力の供給を制御する電力供給回路等)も有している。図2に示すように、端末装置10に含まれる各ブロックは、バス等により電気的に接続される。
 アンテナ111は、端末装置10が発する信号を電波として放射する。また、アンテナ111は、空間から電波を受信して受信信号を第1無線通信部121へ与える。
 アンテナ112は、端末装置10が発する信号を電波として放射する。また、アンテナ112は、空間から電波を受信して受信信号を第2無線通信部122へ与える。
 第1無線通信部121は、端末装置10が他の無線機器と通信するため、アンテナ111を介して信号を送受信するための変復調処理等を行う。第2無線通信部122は、端末装置10が他の無線機器と通信するため、アンテナ112を介して信号を送受信するための変復調処理等を行う。第1無線通信部121と第2無線通信部122とは、チューナー、RSSI(Received Signal Strength Indicator)算出回路、CRC(Cyclic Redundancy Check)算出回路、高周波回路等を含む通信モジュールである。第1無線通信部121と第2無線通信部122とは、端末装置10が送受信する無線信号の変復調や周波数変換を行い、受信信号を制御部170へ与える。
 操作受付部130は、ユーザの入力操作を受け付けるための機構を有する。具体的には、操作受付部130は、キーボード131と、ディスプレイ132とを含む。なお、操作受付部130は、例えば静電容量方式のタッチパネルを用いることによって、タッチパネルに対するユーザの接触位置を検出する、タッチスクリーンとして構成してもよい。
 キーボード131は、端末装置10のユーザの入力操作を受け付ける。キーボード131は、文字入力を行う装置であり、入力された文字情報を入力信号として制御部170へ出力する。
 ディスプレイ132は、制御部170の制御に応じて、画像、動画、テキスト等のデータを表示する。ディスプレイ132は、例えばLCD(Liquid Crystal Display)や有機EL(Electro-Luminescence)ディスプレイによって実現される。
 音声処理部140は、音声信号の変復調を行う。音声処理部140は、マイク141から与えられる信号を変調して、変調後の信号を制御部170へ与える。また、音声処理部140は、音声信号をスピーカ142へ与える。音声処理部140は、例えば音声処理用のプロセッサによって実現される。マイク141は、音声入力を受け付けて、当該音声入力に対応する音声信号を音声処理部140へ与える。スピーカ142は、音声処理部140から与えられる音声信号を音声に変換して当該音声を端末装置10の外部へ出力する。
 カメラ150は、受光素子により光を受光して、撮影画像として出力するためのデバイスである。カメラ150は、例えば、カメラ150から撮影対象までの距離を検出できる深度カメラである。
 記憶部160は、例えばフラッシュメモリ等により構成され、端末装置10が使用するデータおよびプログラムを記憶する。ある局面において、記憶部160は、ユーザ情報161と、ローカルリポジトリ162とを記憶する。
 ユーザ情報161は、端末装置10を使用してチーム活動評価システム1の機能であるエンジニアチームの活動状況を示すチームスコアの提示を受けるユーザの情報である。ユーザ情報としては、ユーザを識別する情報(ユーザID)、ユーザの氏名や名称、ユーザが所属している企業等の組織情報、GitHubにサインインするためのID情報やパスワード等が含まれる。
 ローカルリポジトリ162には、GitHubによるソフトウェア開発を行う際に、ユーザが自己のローカル環境で作業を行うためのソースコード等の情報が格納されている。ユーザは、ローカルリポジトリ162に作成したソースコードを格納し、ローカルリポジトリ162に格納されているソースコードに対して修正を行う。作成および修正の完了後、ユーザは、ソースコードをリポジトリサーバ30へプッシュする。
 制御部170は、記憶部160に記憶されるプログラムを読み込んで、プログラムに含まれる命令を実行することにより、端末装置10の動作を制御する。制御部170は、例えば予め端末装置10にインストールされているアプリケーションである。制御部170は、プログラムに従って動作することにより、入力操作受付部171と、送受信部172と、データ処理部173と、通知制御部174としての機能を発揮する。
 入力操作受付部171は、キーボード131等の入力装置に対するユーザの入力操作を受け付ける処理を行う。
 送受信部172は、端末装置10が、サーバ20等の外部の装置と、通信プロトコルに従ってデータを送受信するための処理を行う。
 データ処理部173は、端末装置10が入力を受け付けたデータに対し、プログラムに従って演算を行い、演算結果をメモリ等に出力する処理を行う。
 通知制御部174は、ユーザに対し情報を提示する処理を行う。通知制御部174は、表示画像をディスプレイ132に表示させる処理、音声をスピーカ142に出力させる処理、振動をカメラ150に発生させる処理等を行う。
 <1.2 サーバ20の機能的な構成>
 図3は、実施の形態1のチーム活動評価システム1を構成するサーバ20の機能的な構成を示す図である。図3に示すように、サーバ20は、通信部201と、記憶部202と、制御部203としての機能を発揮する。
 通信部201は、サーバ20が外部の装置と通信するための処理を行う。
 記憶部202は、サーバ20が使用するデータおよびプログラムを記憶する。記憶部202は、リポジトリデータベース2021と、個人パフォーマンスデータベース2022と、チームスコアデータベース2023等を記憶する。
 リポジトリデータベース2021は、チーム活動評価システム1においてリポジトリサーバ30から取得した、リモートリポジトリのソースコードの作成コード数、プッシュ数等の各種パラメータに関する各種情報を保持するためのデータベースである。詳細は後述する。
 個人パフォーマンスデータベース2022は、チーム活動評価システム1における、エンジニアチームの構成員のパフォーマンスを示す情報を保持するためのデータベースである。詳細は後述する。
 チームスコアデータベース2023は、チーム活動評価システム1において提示する、エンジニアチームの活動状況を示すチームスコアと、その基になる各種パラメータの情報を保持するためのデータベースである。詳細は後述する。
 制御部203は、サーバ20のプロセッサがプログラムに従って処理を行うことにより、各種モジュールとして受信制御モジュール2031、送信制御モジュール2032、リポジトリ管理モジュール2033、パフォーマンス演算モジュール2034、スコアリングモジュール2035、アラート決定モジュール2036、および提示モジュール2037に示す機能を発揮する。
 受信制御モジュール2031は、サーバ20が外部の装置から通信プロトコルに従って信号を受信する処理を制御する。
 送信制御モジュール2032は、サーバ20が外部の装置に対し通信プロトコルに従って信号を送信する処理を制御する。
 リポジトリ管理モジュール2033は、各ユーザについてネットワーク上に記録されている情報を取得する処理を制御する。チーム活動評価システム1のユーザは、GitHubによりソースコードの開発を行っているため、エンジニアチームの活動状況を示す各種パラメータとして、GitHub(ソースコードホスティング)において作成したソースコードの作成コード数、修正コード数、ソースコードのプッシュ数、プルリクエスト数等の各種パラメータがリポジトリサーバ30に記録されている。また、各種パラメータとして、イシュー作成数、レビュー数、コメント数、コメント回答数、コミット数等の各種パラメータがリポジトリサーバ30に記録されている。そのため、リポジトリ管理モジュール2033は、リポジトリサーバ30にアクセスして当該ユーザの各種パラメータを取得する。
 リポジトリサーバ30では、ソースコードのバージョン管理を行うため、あるユーザがソースコードをローカルリポジトリからプッシュした場合、そのユーザの情報、およびそのときの日時をログ情報として記録している。同様に、ソースコード等に関してイシューが作成された場合、ソースコードについてプルリクエストがあった場合、コメントが作成された場合、コメントに対する回答が作成された場合、マージがあった場合等それぞれのアクションについて、当該アクションを行ったユーザの情報、およびそのときの日時をログ情報として記録している。これらの情報は、各ユーザが所属するエンジニアチームごと、プロジェクトごと、そのプロジェクト内で作成されたソースコードのファイルごとに記録されている。リポジトリ管理モジュール2033は、リポジトリサーバ30からこれらのログ情報を取得している。
 パフォーマンス演算モジュール2034は、エンジニアチームに所属する構成員のパフォーマンス(成果)を示す値(個人スコア)を演算する処理を制御する。例えば、一定期間における、当該構成員のGitHubにおいて作成したソースコードの作成コード数、修正コード数、ソースコードのプッシュ数、プルリクエスト数をカウントすることで、当該ユーザがエンジニアとして一定期間にソースコードを作成する量(コード数、本数等)が分かるので、当該構成員のエンジニア(プログラマ)としての一定期間の成果を推定することが可能である。また、一定期間における、当該構成員のGitHubにおいて作成したイシュー作成数、レビュー数、コメント数、コメント回答数、コミット数をカウントすることで、当該ユーザがエンジニアとして一定期間にレビューをする量が分かるので、当該構成員のレビュワー(Reviewer)や管理者(マネージャ)等としての一定期間の成果を推定することが可能である。そのため、パフォーマンス演算モジュール2034は、GitHubにおいて作成したソースコードの作成コード数、修正コード数、ソースコードのプッシュ数、プルリクエスト数、イシュー作成数、レビュー数、コメント数、コメント回答数、コミット数等の各種パラメータに基づき、各種演算を行う。例えば、各種演算の例として、各構成員のソースコードの作成コード数、修正コード数、ソースコードのプッシュ数、プルリクエスト数、イシュー作成数、レビュー数、コメント数、コメント回答数、コミット数等を、エンジニアチームに所属する構成員それぞれについて加算する。
 パフォーマンス演算モジュール2034は、各種パラメータに基づく演算として、各種パラメータを単純に積み上げて加算してもよく、それぞれのパラメータに重み付けを行う演算(例えば、それぞれのパラメータに所定の係数を掛け合わせて加算)してもよい。また、それぞれのパラメータに対して、成果物(ソースコード)の難易度または重要度に基づいて重み付けを行い、上記の演算を行ってもよい。
 スコアリングモジュール2035は、リポジトリ管理モジュール2033が取得した各種パラメータに基づき、エンジニアチームの活動状況を示すパラメータを特定する処理を制御する。ここで、パラメータ(チームスコアともいう)とは、エンジニアチームの活動状況(例えば、エンジニアチームとしての成果)を示す値であり、エンジニアチームの構成員が、エンジニアとしての成果物を作成するためにオンライン上にアップロードした情報と、当該アップロードされた成果物についてエンジニアチームの構成員が行ったレビュー情報と、の履歴に基づいて各種演算を行って特定された値である。後述するように、チームスコアは、時系列の情報に関連付けて提示されるため、スコアリングモジュール2035は、一定期間(例えば、1週間)ごとにチームスコアを特定する。
 具体的には、構成員がエンジニアとしての成果物を作成するためにオンライン上にアップロードした情報として、チーム全体のGitHubにおいて作成したソースコードの作成コード数、修正コード数、ソースコードのプッシュ数、プルリクエスト数を一定期間カウントする。これにより、当該エンジニアチームが一定期間にソースコードを作成する量(コード数、本数等)が分かるので、当該チームの成果物を作成する活動状況、すなわちエンジニアチームの活動状況を成果物の量的な側面で推定することが可能である。また、アップロードされた成果物についてエンジニアチームの構成員が行ったレビュー情報として、チーム全体のGitHubにおいて作成したイシュー作成数、レビュー数、コメント数、コメント回答数、コミット数を一定期間カウントする。すなわち、当該チームの活動状況を、各構成員の成果物に関する情報を取得して積み上げることにより取得する。これにより、当該エンジニアチームが一定期間にレビューをする量(コメント数)が分かるので、当該チームの成果物に対するレビュー状況、すなわちエンジニアチームの活動状況を成果物の質的な側面で推定することが可能である。
 なお、スコアリングモジュール2035は、GitHubにおいて作成したソースコードの作成コード数、修正コード数、ソースコードのプッシュ数、プルリクエスト数について、成果物(ソースコード)の難易度または重要度に基づいて重み付けを行い、チームスコアを特定してもよい。ソースコードの難易度、重要度は、例えば、ソースコードの改変量、当該ソースコードの改変により影響の及ぶファイル数などから算出してもよく、当該ソースコードの改変に係るプルリクエストに関連するイシューに設定されている工数などから推測してもよい。かかる場合、ソースコードの改変量が大きいほどソースコードの難易度や重要度は高く設定し、ソースコードの改変により影響の及ぶファイル数が多いほどソースコードの難易度や重要度は高く設定し、ソースコードの改変に係るプルリクエストに関連するイシューに設定されている工数が多いほどソースコードの難易度や重要度は高く設定することが望ましい。ソースコードの難易度、重要度に応じて、作成に要する時間、すなわち成果を出すためのパフォーマンスは変動すると考えられるからである。また、スコアリングモジュール2035は、作成後に所定の期間経過後、残存しているコード数の履歴に基づいてチームスコアを特定してもよい。一定期間経過後に残存しているソースコードは有用性が高いと考えられるからである。
 アラート決定モジュール2036は、スコアリングモジュール2035が特定したチームスコアの変動に基づき、ユーザに通知する、エンジニアチームの活動状況についてのアラートを決定する処理を制御する。ユーザに通知するアラートとは、チームスコアの変動に基づいてエンジニアチームの活動状況について注意すべき事柄を提示するものであり、例えば、1週間ごとに特定されたチームスコアが、他の週と比較して一定の範囲外である外れ値である場合、アラート決定モジュール2036は外れ値に基づくアラートを決定する。具体例として、アラート決定モジュール2036は、当該週のチームスコアが他の週と比較して、外れ値であると判定される範囲(例えば、20%以上減少)の場合、他の週と比較してエンジニアチームの活動状況が停滞していると推定されるため、外れ値であることを検知し、検知した外れ値に基づくアラートとして通知するよう決定する。
 また、アラート決定モジュール2036は、エンジニアチームに所属する構成員のパフォーマンスを示す値、具体的にはGitHubにおける作成コード数、修正コード数、プッシュ数、プルリクエスト数の各種パラメータの変動を検知し、変動に基づいて、ユーザにアラートを通知するよう決定してもよい。構成員のパフォーマンスの変動は、エンジニアチームの活動状況に影響することが多いからである。また、アラート決定モジュール2036は、GitHubにおける、エンジニアチームに所属するある構成員と他の構成員とのレビュー数、レビュー時間、コメント数の変動を検知し、変動に基づいて、ユーザにアラートを通知するよう決定してもよい。特定の構成員同士のレビューの状況がエンジニアチームの活動状況に影響することもあり得るからである。さらに、アラート決定モジュール2036は、パフォーマンス演算モジュール2034が演算を行った個人スコアの変動に基づき、ユーザにアラートを通知するよう決定してもよい。個人スコアによる総合的な評価の変動がエンジニアチームの活動状況に影響する場合もあるからである。
 提示モジュール2037は、スコアリングモジュール2035により特定された、エンジニアチームの活動状況を示すチームスコアをユーザに提示する処理を制御する。提示モジュール2037は、例えば、時系列の情報として、1週間ごとのチームスコアの変動状況をユーザに提示するため、ユーザの端末装置10へ通信部201を介して送信する。提示モジュール2037は、チームスコアを、GitHubの作成コード数、プッシュ数等の内訳ごとにチームスコアの変動状況を提示してもよい。
 提示モジュール2037は、エンジニアチームの活動状況として、エンジニアチームにおけるレビューの依頼からクローズまでの期間を示すリードタイムを取得し、ユーザに提示してもよい。成果物に対するその後の処理(レビュー等)が行われるまでの時間、その後の時間を把握するためである。ここで、成果物に対してレビューの依頼がされると、当該成果物を作成したエンジニア以外の者がレビューを行い、コメント等を記載する。通常のプロセスの場合、コメントに基づいて成果物の修正が行われ(修正が不要な場合もあり、場合によってはレビューが行われない場合もある)、その成果物を反映させる旨の意思決定がなされると、マージが行われ、当該成果物の作業がクローズとなる。しかし、仕様変更等、何らかの理由により当該成果物を反映させない旨の意思決定がなされる場合もあり、その場合は当該成果物のマージが行われることなくクローズされる。なお、GitHub上などではマージの有無を区別せずプルリクエストに対する意思決定がされたものを「クローズ」と呼ばれているが、本明細書ではマージが行われず、すなわちプルリクエストに対する応答をせずに、成果物に対する修正等の開発作業を終了する意思決定をしたものを「却下」と呼ぶ。上記のリードタイムは、レビューの依頼からマージが行われてクローズとなるまでの期間と、レビューの依頼からマージが行われることなく却下され、クローズとなるまでの期間を含む概念である。すなわち、クローズとは、なんらかの意思決定が行われて成果物に対する修正等の開発作業が終了した状態をいい、マージと却下を含む。なお、上記のような意思決定がされていない成果物は放置という状態になるが、この状態はレビュー依頼がされた成果物に対してまだレビューが行われていない場合や、コメントに対する修正がなされていない場合、作業としては終了しているがマージまたはクローズの意思決定がなされていない状態、これらの状態のまま一定期間が経過している状態を含む概念である。
 また、提示モジュール2037は、エンジニアチームの活動状況として、エンジニアチームにおいてレビューの依頼がされた成果物の推移を示す内訳を取得し、ユーザに提示してもよい。上記のように、レビュー依頼がされると、プルリクエストがされた状態から、レビューが行われた状態、レビューに対する応答(コメントに対する回答のコメント、または成果物の修正)が行われた状態、マージが行われた状態に推移していくが、成果物の推移とは、このようなレビュー依頼後の成果物のステータス(上述したそれぞれの状態)の推移である。また、成果物の推移を示す内訳とは、対象となるプルリクエスト全体におけるそれぞれのステータスまで推移しているプルリクエストの内訳であり、例えば、プルリクエストの全体数10個のうち、レビューが行われた状態のものが7件、さらにその7件のうちレビューに対する応答が行われた状態のものが4件、さらにその4件のうちマージが行われた状態のものが2件といった情報が成果物の推移を示す内訳の情報となる。成果物に対してその後の処理(レビュー等)が適切に行われているかを把握するためである。また、提示モジュール2037は、エンジニアチームの活動状況として、エンジニアチームにおいてレビューの依頼がされた成果物に対するコメント数と成果物のクローズまでの時間との関係を取得し、ユーザに提示してもよい。コメント数と成果物のクローズまでの時間との関係がどのように分布しているか、どの件が外れ値であるかを把握するためである。さらに、提示モジュール2037は、エンジニアチームの活動状況として、エンジニアチームにおけるレビューを依頼するレビュイー(Reviewee)とレビューの依頼を受けるレビュワーとの関係を取得し、ユーザに提示してもよい。レビュイーとレビュワーとの関係、レビューの負荷状況を把握するためである。
 また、提示モジュール2037は、アラート決定モジュール2036により決定されたエンジニアチームの活動状況についてのアラートを、ユーザに提示する処理を制御する。提示モジュール2037は、例えば、1週間ごとのチームスコアの変動状況に基づくアラートを、チームスコアの変動状況と共に、ユーザの端末装置10へ通信部201を介して送信する。
 さらに、提示モジュール2037は、パフォーマンス演算モジュール2034により演算された、エンジニアチームに所属する構成員のパフォーマンスを示す個人スコアを時系列の情報と関連付けて、ユーザに提示してもよい。このとき、エンジニアチームの活動状況を示すチームスコアと対応付けて提示してもよい。エンジニアチームの活動状況を、構成員のパフォーマンスと対応付けて把握するためである。また、提示モジュール2037は、エンジニアチームの活動状況を示すチームスコアを時系列の情報と関連付けて、他のエンジニアチームの活動状況を示すチームスコアを時系列の情報と関連付けて、比較可能に(例えば、並列に表示して)、ユーザに提示してもよい。エンジニアチームの活動状況を、他のチームと比較することで把握するためである。このとき、両者の時系列の情報は、必ずしも同時期である必要はない。両者の活動時期が異なる場合もあり、当該チームに係るプロジェクトの開始時期からの期間の経過で比較したほうがチームの状況を把握しやすくなるからである。さらに、提示モジュール2037は、エンジニアチームにおいてレビューの依頼からマージが行われてクローズとなるまでの期間を示す(ここでは、レビューの依頼からマージが行われることなく却下され、クローズとなるまでの期間は除外する)リードタイムを基準とし、他のエンジニアチームにおけるリードタイムと比較可能に(例えば、並列に表示して)、ユーザに提示してもよい。エンジニアチームにおける成果物の納品状況を、他のチームと比較することで把握するためである。このとき、両者のリードタイムは同一のタイミングである必要はなく、異なる時期および期間で比較してもよい。それぞれのプロジェクトの時期および期間は異なることが通常であるからである。
 <2 データ構造>
 図4は、サーバ20が記憶するリポジトリデータベース2021のデータ構造を示す図である。また、図5は、サーバ20が記憶する個人パフォーマンスデータベース2022、サーバ20が記憶するチームスコアデータベース2023のデータ構造を示す図である。
 図4に示すように、リポジトリデータベース2021のレコードのそれぞれは、項目「組織ID」と、項目「リポジトリID」と、項目「アドレス」と、項目「更新履歴情報」等を含む。
 項目「組織ID」は、チーム活動評価システム1にてリポジトリサーバ30から取得する各種パラメータの対象である、開発プロジェクト等のエンジニアチームが所属する企業等の組織それぞれを識別する情報である。
 項目「リポジトリID」は、チーム活動評価システム1にてリポジトリサーバ30から取得する各種パラメータの対象である、開発プロジェクト等のエンジニアチームごとに設定されるリポジトリそれぞれを識別する情報である。
 項目「アドレス」は、チーム活動評価システム1にて各種パラメータを取得するリポジトリサーバ30のアドレス(URL)を示す情報であり、プロジェクトごとに作成されたリモートリポジトリのアドレスが格納されている。このアドレスにより、プロジェクトごとに共通するファイル名(README.txt等)を識別することが可能である。
 項目「更新履歴情報」は、チーム活動評価システム1にて各種パラメータを取得する、リポジトリサーバ30に格納されているソースコードの更新履歴に関する情報であり、具体的には、項目「アクション」と、項目「作業者」と、項目「タイトル」と、項目「ソースコード」と、項目「作成日時情報」と、項目「更新日時情報」等を含む。この項目「更新履歴情報」は、GitHubにおけるソースコードのバージョン管理及びコメント等のアクション管理情報である。
 項目「アクション」は、リポジトリサーバ30に格納されているソースコードに対するアクションの種類の情報である。
 項目「作業者」は、リポジトリサーバ30に格納されているソースコードに対するアクションを行ったユーザそれぞれを識別する情報である。
 項目「タイトル」は、当該アクションのもとになる案件、改修、修正等の名称を示す情報である。
 項目「ソースコード」は、当該アクションを行ったソースコードのファイル名を示す情報である。
 項目「作成日時情報」は、リポジトリサーバ30に格納されているソースコードに対するアクションを行った日時の情報である。
 項目「更新日時情報」は、リポジトリサーバ30に格納されているソースコードに対してさらにアクションを行った日時の情報である。
 サーバ20のリポジトリ管理モジュール2033は、リポジトリサーバ30からログ情報を取得することに伴って、リポジトリデータベース2021を更新する。
 図5に示すように、個人パフォーマンスデータベース2022のレコードのそれぞれは、項目「構成員ID」と、項目「パフォーマンス詳細」等を含む。
 項目「構成員ID」は、チーム活動評価システム1にてエンジニアチームの活動状況の提示を受ける、当該エンジニアチームに所属する構成員それぞれを識別する情報であり、リポジトリデータベース2021の項目「作業者」に対応している。
 項目「パフォーマンス詳細」は、チーム活動評価システム1にてエンジニアチームの活動状況の提示を受ける、当該エンジニアチームに所属する構成員の、GitHubにおけるログ情報の各種パラメータから取得されたアクションに関する情報であり、具体的には、項目「リポジトリID」と、項目「アクション」と、項目「相手構成員ID」と、項目「値」等を含む。
 項目「リポジトリID」は、当該エンジニアチームごとに設定されるリポジトリそれぞれを識別する情報であり、リポジトリデータベース2021の項目「リポジトリID」に対応している。
 項目「アクション」は、当該エンジニアチームに所属する構成員が行った、リポジトリサーバ30に格納されているソースコードに対するアクションの種類の情報であり、リポジトリデータベース2021の項目「アクション」に対応している。
 項目「相手構成員ID」は、当該エンジニアチームに所属する構成員が行った、リポジトリサーバ30に格納されているソースコードに対するアクションがレビュー、コメントのように相手がいる場合における相手の構成員を識別する情報であり、リポジトリデータベース2021の項目「作業者」に対応している。
 項目「日付情報」は、リポジトリサーバ30に格納されているソースコードに対するアクションを行った日付の情報である。
 サーバ20のパフォーマンス演算モジュール2034は、エンジニアチームに所属する構成員のパフォーマンスを示す個人スコアを演算することに伴って、個人パフォーマンスデータベース2022を更新する。
 チームスコアデータベース2023のレコードのそれぞれは、項目「組織ID」と、項目「リポジトリID」と、項目「チーム構成員」と、項目「チーム詳細情報」等を含む。
 項目「組織ID」は、チーム活動評価システム1にてエンジニアチームの活動状況の提示を受ける、当該エンジニアチームの上位項目であるエンジニアチームが所属する企業等の組織それぞれを識別する情報であり、リポジトリデータベース2021の項目「組織ID」に対応している。
 項目「リポジトリID」は、チーム活動評価システム1にてリポジトリサーバ30から取得する各種パラメータの対象である、開発プロジェクト等のエンジニアチームそれぞれを識別する情報であり、リポジトリデータベース2021の項目「リポジトリID」に対応している。
 項目「チーム構成員」は、チーム活動評価システム1にてエンジニアチームの活動状況の提示を受ける、当該エンジニアチームに所属する構成員それぞれを識別する情報であり、個人パフォーマンスデータベース2022の項目「構成員ID」に対応している。
 項目「チーム詳細情報」は、チーム活動評価システム1にてエンジニアチームの活動状況の提示を受ける、当該エンジニアチームに関する情報であり、具体的には、項目「日付」と、項目「プルリクエスト数」と、項目「マージ数」と、項目「コミット数」と、項目「レビュー数」等を含む。なお、項目「プルリクエスト数」、項目「マージ数」、項目「コミット数」、項目「レビュー数」はGitHubにおける各種パラメータの例であり、他のパラメータが格納されてもよい。
 項目「日付」は、当該エンジニアチームに関する活動状況を取得して1日ごとに集計した日付を示す情報である。
 項目「プルリクエスト数」は、当該日付においてGitHubから取得した、当該エンジニアチームにおけるプルリクエスト数の情報である。
 項目「マージ数」は、当該日付においてGitHubから取得した、当該エンジニアチームにおけるマージ数の情報である。
 項目「コミット数」は、当該日付においてGitHubから取得した、当該エンジニアチームにおけるコミット数の情報である。
 項目「レビュー数」は、当該日付においてGitHubから取得した、当該エンジニアチームにおけるレビュー数の情報である。
 なお、「プルリクエスト数」、項目「マージ数」、項目「コミット数」、項目「レビュー数」はGitHubから取得した値そのものが格納されてもよく、所定の重み付けを行った値が格納されてもよい。
 また、図示は省略するが、チームスコアデータベース2023には、アラート決定モジュール2036が決定したアラートの情報が格納されてもよい。
 なお、パフォーマンス演算モジュール2034およびスコアリングモジュール2035が、リポジトリデータベース2021から取得したエンジニアチームの活動状況を集計し、提示モジュール2037でそのまま提示する処理とする場合、個人パフォーマンスデータベース2022、チームスコアデータベース2023は備えなくてもよい。個人パフォーマンスデータベース2022、チームスコアデータベース2023は、後述するようにエンジニアチームの活動状況を提示する日付、期間を変更しても即座に提示可能にするため、あらかじめ集計した値を格納している。
 サーバ20のスコアリングモジュール2035は、エンジニアチームの活動状況を示すチームスコアを特定することに伴って、スコアリングモジュール2035を更新する。
 <3 動作>
 以下、図6および図7を参照しながら、第1の実施の形態におけるチーム活動評価システム1によるスコアリング処理およびチーム活動状況の提示処理について説明する。
 図6は、実施の形態1のチーム活動評価システム1によるスコアリング処理を行う流れの一例を示すフローチャートである。
 ステップS111において、ユーザが端末装置10を操作して、GitHubのローカルリポジトリからリポジトリサーバ30のリモートリポジトリに対して、プッシュやコメント等のアクションを行うので、端末装置10の入力操作受付部171は当該アクションの指示を、ユーザから受け付ける。送受信部172は、受け付けたアクションの情報をサーバ20へ送信する。サーバ20は、アクションの情報を、通信部201を介して受け付ける。
 ステップS112において、サーバ20のリポジトリ管理モジュール2033は、チームの各構成員について、リポジトリサーバ30に記録されているソースコードのプッシュ数、プルリクエスト数等の各種パラメータを取得するため、リポジトリサーバ30にアクセスして要求信号を送信する。リポジトリ管理モジュール2033は、リポジトリサーバ30から各種パラメータを、通信部201を介して取得する。
 ステップS113において、サーバ20のパフォーマンス演算モジュール2034は、ステップS112で取得したGitHubの各種パラメータに基づき、エンジニアチームに所属する構成員のパフォーマンスを示す値(個人スコア)を演算する。
 ステップS114において、サーバ20のスコアリングモジュール2035は、ステップS112で取得したGitHubの各種パラメータに基づき、エンジニアチームの活動状況を示すチームスコアを特定する。
 ステップS115において、サーバ20のアラート決定モジュール2036は、ステップS114で特定したチームスコアの変動に基づき、ユーザに通知する、エンジニアチームの活動状況についてのアラートを決定する。
 ステップS116において、サーバ20のリポジトリ管理モジュール2033は、ステップS112で取得した各種パラメータを、リポジトリデータベース2021へ格納する。パフォーマンス演算モジュール2034は、ステップS113で演算した個人スコアを、個人パフォーマンスデータベース2022へ格納する。スコアリングモジュール2035は、ステップS114で特定したチームスコアを、チームスコアデータベース2023へ格納する。アラート決定モジュール2036は、ステップS115で決定したアラートの情報を、チームスコアデータベース2023へ格納する。
 以上のように、チーム活動評価システム1では、GitHubにおける成果物のログ情報である各種パラメータに基づき、各構成員の個人スコアを演算し、チームスコアを特定する。これにより、チームの活動状況を把握することが可能である。
 図7は、実施の形態1のチーム活動評価システム1によるチーム活動状況の提示処理を行う流れの一例を示すフローチャートである。
 ステップS211の処理を行う前提として、チーム活動評価システム1にサインインするためのユーザ登録を行う(図7において不図示)。端末装置10の入力操作受付部171は、チーム活動評価システム1にサインインするためのID(仮のものでもよい)、メールアドレスおよびパスワードの情報入力を、ユーザから受け付ける。送受信部172は、受け付けたユーザIDおよびパスワード、当該ユーザのエンジニアチームの情報をサーバ20へ送信する。サーバ20は、送信されたID、メールアドレスおよびパスワードを、通信部201を介して受け付けてユーザ情報の登録を行う。端末装置10の入力操作受付部171は、連携するサービスとしてGitHub、またはその他のサービスの選択を受け付け、当該サービスに登録されている組織(企業等)の選択、当該組織に紐づくエンジニアチーム、メンバ(構成員)、リポジトリの選択を受け付けてサーバ20へ送信する。サーバ20は、送信された各種選択情報を、通信部201を介して受け付けて選択情報の登録を行う。
 ステップS211において、端末装置10の入力操作受付部171は、チーム活動評価システム1にサインインするための組織ID、メールアドレスおよびパスワードの情報の入力を、ユーザから受け付ける。送受信部172は、受け付けた組織ID、メールアドレスおよびパスワードの情報をサーバ20へ送信する。
 ステップS221において、サーバ20は、組織ID、メールアドレスおよびパスワードを、通信部201を介して受け付けて所定の認証を行い、当該ユーザのサインインを受け付ける。
 ステップS222において、サーバ20の提示モジュール2037は、当該ユーザが選択したエンジニアチームについて、ステップS114で特定したチームスコアを、チームスコアデータベース2023から読み出して取得する。なお、チームスコアを取得する際に、当該エンジニアチームの最新のチームスコアを特定して、取得することとしてもよい。
 ステップS223において、サーバ20の提示モジュール2037は、ステップS115で決定したエンジニアチームの活動状況についてのアラートを、チームスコアデータベース2023から読み出して取得する。なお、アラートを取得する際に、当該エンジニアチームの最新のチームスコアからアラートを決定して、取得することとしてもよい。
 ステップS224において、サーバ20の提示モジュール2037は、ステップS222で特定したチームスコア、およびステップS223で決定したアラートを、当該ユーザに提示するため、端末装置10へ通信部201を介して送信する。
 ステップS214において、端末装置10の送受信部172は、サーバ20から送信された当該ユーザの所属するエンジニアチームのチームスコア、およびアラートを受け付ける。通知制御部174は、受け付けたチームスコア、およびアラートを、ディスプレイ132に表示させる。
 以上のように、チーム活動評価システム1は、GitHubにおける成果物のログ情報である各種パラメータに基づき、エンジニアチームの時系列のチームスコアを特定する。これにより、チームの活動状況を把握することが可能である。
 <4 画面例>
 以下、図8ないし図19を参照しながら、チーム活動評価システム1によるチーム活動状況の提示処理の画面例について説明する。
 図8は、端末装置10に表示するサインイン画面の例を示す図である。図8の画面例は、エンジニアチームの活動状況の提示を受けるユーザがチーム活動評価システム1にサインインする際の画面例を示す。図7のステップS211に相当する。
 図8に示すように、端末装置10のディスプレイ132には、GitHubによりエンジニアチームの活動状況の掲示を受けるため、当該エンジニアチームが所属する企業等の組織ID入力欄1031aと、登録されている当該ユーザのメールアドレス入力欄1031bと、当該ユーザのパスワード入力欄1031cと、ログインするためのログイン遷移ボタン1031dとが配置されている。
 ユーザは、組織ID、メールアドレス、およびパスワードを、それぞれ組織ID入力欄1031a、メールアドレス入力欄1031b、および当該ユーザのパスワード入力欄1031cを入力し、画面遷移ボタン1031dを押下することで、サーバ20にログインする。その後、エンジニアチームの活動状況を表示する画面へ遷移する。
 図9は、端末装置10に表示するチーム活動状況の表示画面例を示す図である。図9の画面例は、一定期間のチームスコアと、チームスコアの時系列の変化が表示された状態の画面例を示す。図7のステップS214に相当する。
 図9に示すように、端末装置10のディスプレイ132には、エンジニアチームの活動状況を表示する指示操作に応答して、当該エンジニアチームの活動状況を特定した期間を表示する期間表示欄1032aと、エンジニアチームの活動状況(パフォーマンス)を示すチームスコアの内訳を表示するスコア表示欄1032bと、エンジニアチームの活動状況であるチームスコアの総合値およびその内訳の時系列の変化を示す時系列変化表示欄1032cと、当該エンジニアチームの活動状況を特定した期間の変更を受け付ける期間変更入力欄1032dが表示されている。
 期間表示欄1032aに表示される期間は、スコア表示欄1032bに表示される各スコアを取得した期間の開始日及び終了日により示される期間であり、例として1週間の開始日及び終了日が表示されている。スコア表示欄1032bに表示されるスコアは、GitHubから取得した各種パラメータであり、例として、期間表示欄1032aに表示される期間における、イシュー作成数、プルリクエスト数、マージ数、コミット数、レビュー数が表示されている。一例として、図9においては期間表示欄1032aに記載された期間における各種パラメータと、一つ前の期間における各種パラメータとを比較し、その変動数を表示している。他にも特定の期間における各種パラメータの総数を表示してもよいし、ある時点から累積値が前回時点からどの程度増加しているのかを表示することとしてもよい。時系列変化表示欄1032cに表示される時系列変化は、各種パラメータの1週間ごとの変化を積み上げ棒グラフで表示したものであり、横軸が時系列の変化(例として1つの要素が1週間を示している)であり、縦軸がスコアの値を示している。時系列変化表示欄1032cの積み上げ棒グラフには、スコア表示欄1032bに表示されるパラメータと同様の要素として、イシュー作成数1032c1、プルリクエスト数1032c2、マージ数1032c3、コミット数1032c4、レビュー数1032c5の1週間ごとの変化が積み上げて表示され、合計値の変化も表示されている。図9の例では、6か月分の変化が表示されている。
 また、期間表示欄1032aに表示される期間は、期間変更入力欄1032dの入力により変更することが可能に構成されている。たとえば、期間変更入力欄1032dは、所定の期間ごとにプルダウン選択が可能に構成されており、期間の選択により、当該期間が期間表示欄1032aに表示され、当該期間の各種パラメータがスコア表示欄1032bに表示される。また、時系列変化表示欄1032cは、期間変更入力欄1032dの入力により変更された期間からさかのぼった時系列の変化を表示してもよく、イシュー作成数1032c1、プルリクエスト数1032c2、マージ数1032c3、コミット数1032c4、およびレビュー数1032c5が示す値を変更して表示してもよい。さらに、期間表示欄1032aに表示される期間、期間変更入力欄1032dにより選択可能な期間も変更可能に構成してもよく、図9の例では1週間単位で表示しているが、この期間を1日ごと、10日ごと、1ケ月ごとのように変更可能にしてもよい。このような時系列変化表示欄1032cの表示により、ユーザは当該エンジニアチームの活動状況の変化を把握することが可能になる。
 図10は、端末装置10に表示するプルリクエスト状況の表示画面例を示す図である。図10の画面例は、当該エンジニアチームにおけるソースコードのプルリクエストの状況が表示された画面例を示すものであり、例えば図9の画面例からスクロールまたは別途画面遷移させることにより表示される。
 図10に示すように、端末装置10のディスプレイ132には、当該エンジニアチームにおけるアクティブな(なんらかの対応が行われている)プルリクエストを抽出し、その状況の例として、コメント数の多いプルリクエストの一覧が表示されている。具体的には、プルリクエストのタイトルを示すタイトル表示欄1033aと、当該プルリクエストの対応状態を示す状態表示欄1033bと、当該プルリクエストに対応するソースコードへのリンクを表示するリンク表示欄1033cと、当該プルリクエストを行った構成員を示す構成員表示欄1033dと、当該プルリクエストに対するコメント数を示すコメント数表示欄1033eと、当該プルリクエストに対する最終更新日を表示する更新日付表示欄1033fとが表示されている。
 図10に示す画面には、例えばコメント数表示欄1033eに表示されているコメント数が多い順に、タイトル表示欄1033aに示すプルリクエストのタイトル、状態表示欄1033bに示す当該プルリクエストの対応状態等が表示されている。このような表示を行っているのは、例えば、レビューが活発に行われているプルリクエストを把握するために表示している。多数のコメントがされているプルリクエストは、活発な議論が行われているため良い傾向を示す場合もあるが、例えば特定の期間(1日)で大幅にコメント数が増加している場合には、レビュワーとレビュイーとの間で認識の齟齬が生じている等、なんらかの多数のコミュニケーションが必要であったことを示している場合もあり、良い/悪いを一概に判断することはできない。そのため、レビューが活発に行われたことを把握するためにこのような表示を行っている。例えば、コメント数の増加量が異常なペースの場合には、コメント数表示欄1033eの表示態様を変更(例えば、色彩を赤色にする)して表示してもよい。なお、図10に示すように、状態表示欄1033bを当該プルリクエストの対応状態に応じて表示態様(例えば、色彩を変更)を変更するように表示してもよい。
 図11は、端末装置10に表示する他のチーム状況の表示画面例を示す図である。図11の画面例は、一定期間における当該エンジニアチームと、他のエンジニアチームとのチームスコアが表示された状態の画面例を示すものであり、例えば図9の画面例からスクロールまたは別途画面遷移させることにより表示される。
 図11に示すように、端末装置10のディスプレイ132には、所定期間における、当該エンジニアチーム及び他のエンジニアチームを示すチーム名表示欄1034aと、それぞれのエンジニアチームの活動状況であるチームスコアの総合値およびその内訳を横棒グラフとして表現したグラフ表示欄1034bと、それぞれのエンジニアチームの活動状況を示すチームスコアの内訳を表示するスコア表示欄1034cと、当該期間の変更を受け付ける期間変更入力欄1034dとが表示されている。
 スコア表示欄1034cに表示されるスコアは、GitHubから取得した各種パラメータであり、例として、イシュー作成数、プルリクエスト数、マージ数、コミット数、レビュー数が表示されている。グラフ表示欄1034bには、スコア表示欄1034cに表示されるスコアを右方向へ積み上げた横棒グラフが表示されている。また、期間変更入力欄1034dは、図9に示す期間変更入力欄1032dと同様に、表示されているグラフ表示欄1034bおよびスコア表示欄1034cの集計期間を、入力により変更することが可能に構成されている。グラフ表示欄1034bの表示により、それぞれのチームの活動状況が一目で把握され、横棒グラフの棒の長さによりチームの活動状況が活発であることを把握することが可能になる。
 図12は、端末装置10に表示するリードタイムおよびプルリクエストの状況の表示画面例を示す図(a)と、図12(a)に示すダイアグラム表示欄1035dの他の表示例を示す図(b)である。図12の画面例は、エンジニアチームにおける成果物である、ソースコードに対するプルリクエスト(レビューの依頼)からクローズまでの期間を示すリードタイムと、プルリクエストがされたソースコードの推移と、リードタイムの時間推移が表示された状態の画面例を示すものであり、例えば図9の画面例からスクロールまたは別途画面遷移させることにより表示される。
 図12(a)に示すように、端末装置10のディスプレイ132には、エンジニアチームの活動状況(チームスコア)として、当該エンジニアチームにおけるリードタイムの平均値を示すリードタイム表示欄1035aと、プルリクエストがされたソースコードに対する最初のコメントがされるまでの平均時間を示すコメント時間表示欄1035bと、レビューからクローズまでの平均時間を示すクローズ時間表示欄1035cと、プルリクエストがされたソースコードの推移を表示したダイアグラム表示欄1035dと、リードタイム、最初のコメントまでの時間、レビューからクローズまでの時間それぞれの移動平均時間を表示する移動平均表示欄1035eと、当該期間の変更を受け付ける期間変更入力欄1035fとが表示されている。リードタイム表示欄1035a、コメント時間表示欄1035b、クローズ時間表示欄1035cに表示される平均時間は、当該エンジニアチームにおける所定期間(例えば、3週間)のそれぞれの値の平均値である。
 ダイアグラム表示欄1035dに表示される推移の情報は、プルリクエストがされたソースコードが、プルリクエストされてからクローズ又は放置されている状態までどのような推移をしているかを示すものである。より具体的には、プルリクエストされた状態(ステータス)から、その後レビューを受けた状態、レビューに対する応答がされた状態、マージされてクローズした状態、却下されてクローズした状態、およびクローズされずにそのまま放置された状態のうちいずれのステータスに推移していったかを、サンキーダイアグラムと呼ばれる手法により表現したものである。例えば、左側の長方形1035d1は、プルリクエストがされたソースコードの件数を縦方向の長さで示しており、長方形1035d2は、プルリクエストがされたソースコードのうち、レビューがされた状態に推移したソースコードの件数を縦方向の長さで示している。すなわち、長方形1035d1が示す件数と、長方形1035d2が示す件数との差分は、レビューがされていないソースコードの件数を示しており、レビューがされずに放置されているソースコードと、レビューがされることなくクローズされたソースコードが含まれる。また、それぞれの長方形を結ぶ曲線は、上記のようなステータスの推移を示している。なお、その後のステータスについても同様である。さらに、それぞれの長方形や曲線にマウスポインタを重ねることでそれぞれの長方形や曲線が示す属性や件数を表示する(ロールオーバー)ように構成してもよい。ダイアグラム表示欄1035dに表示されるプルリクエスト(レビュー依頼)されたソースコード(成果物)の推移の情報により、エンジニアチームにおける活動状況として、成果物に対するその後の処理(レビュー等)が適切に行われているかを一目で把握することが可能である。
 移動平均表示欄1035eに表示される移動平均時間は、当該エンジニアチームにおける所定期間(例えば、3週間)の、それぞれの時間の移動平均時間を棒グラフ及び近似曲線で示したものであり、縦軸が件数、横軸が時間の経過(時系列)を示している。移動平均を算出する区間については、種々設定することが可能だが、例えば、エンジニア業務の曜日ごとの変動を除外するため、7日ごとの移動平均を算出することが望ましい。ただし、より長期的な視点で推移を確認する場合には、3週間ごとの移動平均を設定することなどが望ましい。なお、リードタイム表示欄1035a、コメント時間表示欄1035b、クローズ時間表示欄1035cに表示される平均時間、ダイアグラム表示欄1035dに表示される推移の情報、および移動平均表示欄1035eに表示される移動平均時間を修正した所定期間は、時期および期間を変更可能に構成してもよい。また、期間変更入力欄1035fは、図9に示す期間変更入力欄1032dと同様に、表示されているリードタイム表示欄1035a、コメント時間表示欄1035b、クローズ時間表示欄1035c、ダイアグラム表示欄1035dおよび移動平均表示欄1035eの集計期間を、入力により変更することが可能に構成されている。リードタイム表示欄1035a、コメント時間表示欄1035b、クローズ時間表示欄1035cに表示される平均時間により、エンジニアチームにおける活動状況として、成果物に対するその後の処理(レビュー等)が行われるまでの時間、その後の時間を一目で把握することが可能であり、移動平均表示欄1035eに表示される移動平均時間によりその時系列の推移を把握することが可能になる。
 また、図12(b)に示すように、ダイアグラム表示欄1035dに表示される推移の情報を、特定の要素のみ離隔させて表示し、その状態を把握しやすいように表示してもよい。図12(b)の例では、当該期間においてマージされた状態のソースコードの件数を示す右側の長方形1035d3と、当該期間において却下されてクローズされた状態のソースコードの件数を示す右側の長方形1035d4と、当該期間において放置された状態のソースコードの件数を示す右側の長方形1035d5とが表示され、放置の件数を示す長方形1035d5のみを、右下方向へ離隔させて表示している。離隔させる要素は複数でもよく、それぞれの長方形をマウスでクリック等することで選択可能に構成してもよい。このような構成により、エンジニアチームにおける活動状況として、特定の状態(放置。離脱等)にある成果物を一目で把握することが可能である。
 図13は、端末装置10に表示するプルリクエストタイプの状況の表示画面例を示す図である。図13の画面例は、エンジニアチームにおける、プルリクエスト(レビューの依頼)に対するコメント数と、マージ・クローズまでの時間との関係が散布図として表示された状態の画面例を示すものであり、例えば図9の画面例からスクロールまたは別途画面遷移させることにより表示される。
 図13に示すように、端末装置10のディスプレイ132には、所定期間におけるエンジニアチームの活動状況として、散布図1036aが表示されている。散布図1036aは、縦軸が各プルリクエストに対するコメント数を示し、横軸が各プルリクエストのリードタイム(図中はマージクローズ時間と記載)が示しており、チーム内の所定期間における各プルリクエストをプロットしたものである。例えば、図13の点1036bが示すプルリクエストは、コメント数が16で、リードタイムが1.6時間であったことを示している。また、当該所定期間の変更を受け付ける期間変更入力欄1036eが表示されている。なお、散布図1036aは、点1036bにマウスポインタを重ねることでそれぞれの点が示すコメント数およびマージ・クローズ時間を表示する(ロールオーバー)ように構成してもよく、マウスでクリック等することで、後述する図14で示すように当該プルリクエストの状態を示す画面に遷移するように構成してもよい。さらに、散布図1036aは、目盛線で囲まれた所定の枠1036cを選択し、(外れ値を把握するために)要素である点を選択可能に構成してもよい。また、所定の枠1036cを選択する際、1つの枠1036cを選択可能に構成してもよく、複数の枠1036cを(例えば、ドラッグして選択する操作や、シフトキーを押下しながら選択する等の操作により)選択可能に構成してもよい。さらに、あるエンジニアチームのコメント数、マージ・クローズまでの時間の統計的手法による代表値(例えば、平均値、中央値等)を設定しこれよりもコメント数やリードタイムが小さい領域を、枠1036dに示すように表示態様を変更(例えば、色彩を変更等)して表示するように構成してもよい。散布図1036aにより、コメント数と、マージ・クローズまでの時間との関係がどのように分布しているか、その中でも外れ値がどれかを一目で把握することが可能である。
 図14は、端末装置10に表示するプルリクエストの状態の表示画面例を示す図である。図14の画面例は、エンジニアチームにおける、プルリクエストの状態が一覧形式で表示された状態の画面例を示すものであり、例えば図13の点1036bをクリック等により選択することにより表示される。
 図14に示すように、端末装置10のディスプレイ132には、当該プルリクエストの対象であるソースコードのタイトル表示欄1037aと、ソースコードのファイル名表示欄1037bと、当該ソースコードに対するアクション表示欄1037cと、当該アクションが行われた日付表示欄1037dと、当該アクションを行った構成員表示欄1037eとが表示されている。アクション表示欄1037c、日付表示欄1037d、および構成員表示欄1037eは、例えば個人パフォーマンスデータベース2022から取得される履歴情報である。このような構成により、プルリクエスト(ソースコード)ごとに状況を一目で把握することが可能である。
 図15は、端末装置10に表示するレビュー実施状況の表示画面例を示す図である。図15の画面例は、エンジニアチームにおけるレビュー実施率、レビューに対する応答率、およびレビュイーとレビュワーとの関係を示す図が表示された状態の画面例を示すものであり、例えば図9の画面例からスクロールまたは別途画面遷移させることにより表示される。
 図15に示すように、端末装置10のディスプレイ132には、所定の期間におけるエンジニアチームの活動状況として、当該エンジニアチームにおけるレビュー率を示すレビュー率表示欄1038aと、レビューに対する応答率を示す応答率表示欄1038bと、レビューを依頼するレビュイーとレビューの依頼を受けるレビュワーとの関係を示す関係図表示欄1038cとが表示されている。関係図表示欄1038cは、レビューを依頼するレビュイーが、誰に対してレビューを依頼してレビューを行っているかの関係を示す図であり、例えば、プルリクエストを行ったレビュイーを表示するレビュイー表示欄1038dと、レビュー依頼を受けたレビュワーを表示するレビュワー表示欄1038eと、レビュイー表示欄1038dとレビュワー表示欄1038eとの関係を示す関係表示線1038fとが表示されている。また、当該所定の期間の変更を受け付ける期間変更入力欄1038gが表示されている。なお、レビュイー表示欄1038dおよびレビュワー表示欄1038eの枠の横方向の長さは、レビューの件数を示している。さらに、関係図表示欄1038cは、特定のレビュイー表示欄1038dおよびレビュワー表示欄1038eを選択することにより、選択したレビュイー表示欄1038dまたはレビュワー表示欄1038eに関係する関係表示線1038fのみが表示されるように構成してもよい。
 レビュー率表示欄1038aおよび応答率表示欄1038bにより、当該エンジニアチームにおけるレビュー実施状況を一目で把握することが可能である。また、関係図表示欄1038cにより、レビュイーとレビュワーとの関係、レビューの負荷状況を一目で把握することが可能である。
 図16は、端末装置10に表示するアラート情報の表示画面例を示す図である。図16の画面例は、一定期間のチームスコアの変動に基づいて決定されたアラートが表示された状態の画面例を示すものであり、例えば図9の画面例からスクロールまたは別途画面遷移させることにより表示される。
 図16に示すように、端末装置10のディスプレイ132には、アラート情報の重要度を示す重要度表示欄1039aと、エンジニアチームの活動状況から決定されたアラートを表示するアラート表示欄1039bと、当該アラートの根拠となる情報へのリンクを表示する根拠リンク表示欄1039cと、当該アラートを決定した日付を表示する日付表示欄1039dとが表示されている。
 重要度表示欄1039aには、アラート表示欄1039bに表示されるアラートの内容の重要度を示す絵や図柄が、例えば重要度が高い場合に赤色に表示される。アラート表示欄1039bには、チームスコアの変動に基づくアラートが表示されるが、チームスコアの変動以外の要素に基づくアラート(例えば、プルリクエストがされてから一定期間以上経過していること、納期が迫っていること)が表示されてもよい。このようなアラート表示欄1039bの表示により、ユーザは当該エンジニアチームの活動状況について注意すべき事柄を把握することが可能になる。
 図17は、端末装置10に表示する構成員のパフォーマンス表示画面例を示す図である。図17の画面例は、一定期間のチームスコアの変動に対応する、エンジニアチームに所属する特定の構成員のパフォーマンスを示す値が表示された状態の画面例を示すものであり、例えば図9の画面例からスクロールまたは別途画面遷移させることにより表示される。
 図17に示すように、端末装置10のディスプレイ132には、当該構成員のパフォーマンスを演算した期間を表示する期間表示欄1040aと、当該構成員の活動状況(パフォーマンス)を示す個人スコアの内訳を表示するスコア表示欄1040bと、当該構成員の個人スコアの総合値およびその内訳の時系列の変化を示す時系列変化表示欄1040cとが表示されている。また、当該構成員のパフォーマンスを演算した期間の変更を受け付ける期間変更入力欄1040dが表示されている。
 期間表示欄1040aに表示される期間は、時系列変化表示欄1040cに表示される個人スコアを取得した期間の開始日及び終了日により示される期間であり、例として6ケ月の開始日及び終了日が表示されている。時系列変化表示欄1040cに表示される時系列変化は、各種パラメータの1週間ごとの変化を積み上げ棒グラフで表示したものであり、横軸が時系列の変化(例として1つの要素が1週間を示している)であり、縦軸がスコアの値を示している。時系列変化表示欄1040cの積み上げ棒グラフには、スコア表示欄1040bに表示されるパラメータと同様の、イシュー作成数、プルリクエスト数、マージ数、コミット数、レビュー数の1週間ごとの変化が表示され、合計値の変化も表示されている。なお、合計値ではなくある時点から累積値がどの程度変化したかを表示することとしてもよい。このような時系列変化表示欄1040cの表示により、ユーザは当該構成員の活動状況の変化を把握することが可能になり、エンジニアチームの活動状況の変化と対応付けて把握することが可能になる。
 図18は、端末装置10に表示する構成員のプルリクエスト状況の表示画面例を示す図である。図18の画面例は、当該構成員によるソースコードのプルリクエストの状況が表示された画面例を示すものであり、例えば図17の画面例からスクロールまたは別途画面遷移させることにより表示される。
 図18に示すように、端末装置10のディスプレイ132には、当該構成員によるソースコードのプルリクエストの状況として、例えば、一定期間以上プルリクエストがなされた状態、すなわちレビュー依頼がなされたままレビューが行われていない(放置された状態の)ソースコードの一覧が表示されている。具体的には、ソースコードを示すソースコード表示欄1041aと、当該ソースコードの状態の根拠となる情報へのリンクを表示する根拠リンク表示欄1041bと、当該ソースコードに対してプルリクエストを行った日付を表示する日付表示欄1041cとが表示されている。また、当該構成員のパフォーマンスを演算した期間の変更を受け付ける期間変更入力欄1041dが表示されている。
 ソースコード表示欄1041aには、一定期間以上プルリクエストがなされた状態のソースコードが表示され、その状態の確認手段として、根拠リンク表示欄1041bが表示されている。例えば、ソースコードに対してプルリクエストがなされてから一定期間が経過すると、エンジニアチームにおけるソースコードの着手から納品までの期間を示すリードタイムに影響するため、リードタイムが長い場合に当該画面でレビューの状況を確認するために当該画面表示が使用される。このようなソースコード表示欄1041aにより、個々の成果物に対する空白期間を把握することが可能になる。
 図19は、端末装置10に表示するチーム活動状況のチーム比較の表示画面例を示す図である。図19の画面例は、一定期間のチームスコアの変動に対応する、他のエンジニアチームのチームスコアの変動と比較可能に表示された状態の画面例を示すものであり、例えば図9の画面例からスクロールまたは別途画面遷移させることにより表示される。
 図19に示すように、端末装置10のディスプレイ132には、当該エンジニアチームの活動状況を特定した期間を表示する期間表示欄1042aと、当該エンジニアチームの活動状況であるチームスコアの総合値およびその内訳の時系列の変化を示す時系列変化表示欄1042bと、比較対象である他のエンジニアチームの活動状況であるチームスコアの総合値およびその内訳の時系列の変化を示す時系列変化表示欄1042cとが表示されている。また、当該エンジニアチームの活動状況を特定した期間の変更を受け付ける期間変更入力欄1042dが表示されている。
 期間表示欄1042aに表示される期間は、時系列変化表示欄1042bおよび時系列変化表示欄1042cに表示されるチームスコアを取得した期間の開始日及び終了日により示される期間であり、例として6ケ月の開始日及び終了日が表示されている。時系列変化表示欄1042bおよび時系列変化表示欄1042cに表示される時系列変化は、同一期間における各種パラメータの1週間ごとの変化を積み上げ棒グラフで表示したものであり、横軸が時系列の変化(例として1つの要素が1週間を示している)であり、縦軸がスコアの値を示している。時系列変化表示欄1042bおよび時系列変化表示欄1042cの積み上げ棒グラフには、図9に示す時系列変化表示欄1032cに対応して、イシュー作成数、プルリクエスト数、マージ数、コミット数、レビュー数の1週間ごとの変化が表示され、合計値の変化も表示されている。なお、当該エンジニアチームまたは比較対象である他のエンジニアチームの各種パラメータが一部期間しか存在しない場合、一部の期間のみが表示されるように構成してもよく、両者の時系列の情報は、必ずしも同時期である必要はない。このような時系列変化表示欄1042bおよび時系列変化表示欄1042cの表示により、ユーザはエンジニアチームの活動状況の変化を、他のチームと比較することで把握することが可能になる。なお、他のチームとの比較を行う項目やグラフに関しては図19に示すものに限らず、これまでに説明した各種チームスコアやグラフのいずれに関しても、他のチームについて同様のチームスコアやグラフを作成し、比較することが可能である。
 <小括>
 以上のように、本実施形態によると、GitHubにおける成果物のログ情報である各種パラメータに基づき、各構成員の個人スコアを演算することでチームスコアが特定され、チームスコアと各種パラメータが提示される。そのため、エンジニアチームとしての活動状況(パフォーマンス)を適切に把握することが可能になる。これにより、エンジニアチームの運営を改善するきっかけを提供することができ、チーム組織の状況に応じて、必要な人材を供給することが可能になる。
 また、エンジニアチームとしての活動状況と共に、エンジニアチームの活動状況の変動に基づき、活動状況についてのアラートが決定され、ユーザに提示される。そのため、エンジニアチームの活動状況について注意すべき事柄を、エンジニアチームとしての活動状況に対応付けて把握することが可能になる。これにより、エンジニアチームの活動状況の変動の原因を特定することに資することが可能になるため、エンジニアチームの運営を改善する具体案を検討することが可能になる。
 また、エンジニアチームとしての活動状況と共に、エンジニアチームに所属する構成員のパフォーマンスも演算され、ユーザに提示される。そのため、エンジニアチームとしての活動状況を、構成員のパフォーマンスに対応付けて把握することが可能になる。これにより、特定の構成員がボトルネックとなっていること、特定の構成員と他の特定の構成員とのレビューがボトルネックとなっていることを把握することが可能になる。
 さらに、エンジニアチームとしての活動状況と共に、他のエンジニアチームとしての活動状況と比較可能にユーザに提示される。そのため、エンジニアチームとしての活動状況を、他のチームと比較することで把握することが可能になる。これにより、エンジニアチームとしての活動状況をより客観的に把握することが可能になる。
 <第2の実施の形態>
 以下、チーム活動評価システム1の他の実施の形態について説明する。
 <1 チーム活動評価システム1の全体構成>
 図20は、実施の形態2のチーム活動評価システム1を構成するサーバ20の機能的な構成を示す図である。第2の実施の形態におけるチーム活動評価システム1の全体の構成、端末装置10の構成は、第1の実施の形態と同様であるので、繰り返して説明しない。サーバ20の構成については、図20に示すように、新たにエンジニアデータベース2024を記憶し、レコメンドモジュール2038の機能を備える以外、第1の実施の形態と同様である。以下、第2の実施の形態におけるエンジニアデータベース2024、レコメンドモジュール2038の機能について説明する。
 エンジニアデータベース2024は、チーム活動評価システム1においてリポジトリサーバ30から取得した、他のチームに関する各種情報を、例えば異動を希望するエンジニアの情報として本人の了承のもと保持するためのデータベースである。また、エンジニアデータベース2024は、いわゆる転職プラットフォームに登録された転職を希望するエンジニアの情報についても、本人の了承のもと保持することとしてもよい。詳細は後述する。なお、エンジニアデータベース2024は、レコメンドモジュール2038の機能を実現するための必須の構成ではなく、他のシステム等から連携を受けたエンジニアに関する情報をレコメンドモジュール2038でレコメンドする構成にしてもよい。
 レコメンドモジュール2038は、提示モジュール2037により活動状況の提示を受けたエンジニアチームユーザについて、エンジニアチームの活動状況の変動の原因、改善案のいずれかまたは両方をユーザへ抽出して提示(レコメンド)する処理を制御する。このとき、レコメンドモジュール2038は、チームスコアデータベース2023に格納されている各種パラメータについて解析を行い、解析結果を出力し、この結果に基づいて変動の原因または改善案の提示を行う。例えば、エンジニアとしての成果物を作成するためにオンライン上にアップロードした情報(作成コード数、プッシュ数等)、成果物についてエンジニアチームの構成員がレビューを行った情報(レビュー数、コメント数等)のいずれかまたは両方について、減少したパラメータ、原因となるタスク、アクション、構成員について提示し、担当する構成員の変更、新たな構成員のアサイン等をユーザに提示してレコメンドしてもよい。
 例えば、特定の構成員の成果を示す個人スコアが停滞(変動)しており、エンジニアチームの活動状況にも影響している場合、当該特定の構成員が担当する成果物(ソースコード等)が当該特定の構成員のスキルとマッチしていない、不得手である等の原因が考えられる。そのため、レコメンドモジュール2038は、当該特定の構成員が担当する成果物(ソースコード等)の変更を、ユーザに提示してもよい。また、特定の構成員同士のレビュー情報を示す個人スコアが停滞しており、エンジニアチームの活動状況にも影響している場合、当該特定の構成員同士の相性が悪い、コミュニケーションに難がある等の原因が考えられる。そのため、レコメンドモジュール2038は、当該特定の構成員同士のレビュー関係(レビュワー、レビュイー)の変更を、ユーザに提示してもよい。
 さらに、ソースコードのプッシュ数、プルリクエスト数は停滞していないが、レビュー数、コメント数が停滞しているような場合、レビューを行う者が不足していることが考えられる。そのため、レコメンドモジュール2038は、エンジニアチーム外のエンジニアである他の構成員の参画をユーザに提示してもよい。このとき、レコメンドモジュール2038は、エンジニアデータベース2024に格納されているエンジニアの成果を示す情報(値)とマッチングを行い、適応可能か否かを判定し、エンジニアチームに適応可能と判定した場合にエンジニアをユーザにレコメンドする。エンジニアチームに適応可能かどうかの判定を行う一例としては、チームパフォーマンス活動状況から所定の判定基準を選択し、選択された判定基準を満たすエンジニアを、エンジニアデータベース2024に登録されている他のチームのエンジニアや、転職プラットフォームに登録されているエンジニアの中から抽出することで可能となる。具体的には、エンジニア活動状況として、レビューが定常的に停滞していることをプルリクエストのリードタイムなどから検知した場合には、レビューに関する判定基準(例えば、所定期間内のレビュー数が所定の閾値以上など)を選択し、当該判定基準を満たすエンジニアを抽出し、レコメンドする。他の例としては、チーム内のプルリクエスト全体の数が低下していることを検知した場合には、プルリクエストに関する判定基準(例えば、所定期間内のプルリクエスト数が所定の閾値以上など)を選択し、当該判定基準を満たすエンジニアを抽出し、レコメンドする。
 <2 データ構造>
 図21は、サーバ20が記憶するエンジニアデータベース2024のデータ構造を示す図である。
 図21に示すように、エンジニアデータベース2024のレコードのそれぞれは、項目「エンジニアID」と、項目「自己申告スキル」と、項目「スコア情報」と、項目「パフォーマンス詳細」等を含む。なお、項目「自己申告スキル」および項目「スコア情報」については、図5に示す個人パフォーマンスデータベース2022の同盟項目と同様であるため、説明を省略する。
 項目「エンジニアID」は、チーム活動評価システム1にてレコメンドされる、エンジニアそれぞれを識別する情報である。
 項目「パフォーマンス詳細」は、チーム活動評価システム1にてエンジニアチームの活動状況の提示を受ける、当該エンジニアチームに所属する構成員の、GitHubにおけるログ情報の各種パラメータから取得されたアクションに関する情報であり、具体的には、項目「チームID(所属)」と、項目「アクション」と、項目「相手構成員ID」と、項目「値」等を含む。なお、項目「アクション」、項目「相手構成員ID」、および項目「値」については、図5に示す個人パフォーマンスデータベース2022の同盟項目と同様であるため、説明を省略する。
 項目「チームID(所属)」は、当該エンジニアチームそれぞれを識別する情報である。
 レコメンドモジュール2038は、他の構成員の参画をユーザに提示してレコメンドする場合、エンジニアデータベース2024の項目「パフォーマンス詳細」を参照してマッチングを行い、適切なエンジニアをユーザにレコメンドする。
 <3 動作>
 第2の実施の形態における動作は、第1の実施の形態と同様であるので、繰り返して説明しない。
 <4 画面例>
 以下、図22を参照しながら、チーム活動評価システム1によるエンジニアのレコメンド処理の画面例について説明する。
 図22は、端末装置10に表示するエンジニアのレコメンド表示の画面例を示す図である。図22の画面例は、レコメンドするエンジニアの個人スコアと、当該エンジニアのパフォーマンスの情報が表示された状態の画面例を示す。
 図22に示すように、端末装置10のディスプレイ132には、エンジニアチームの活動状況を表示する指示操作に応答して、図22に示す個人スコア表示欄1043aと、当該エンジニアのパフォーマンスを示す個人スコアの内訳を表示するスコア表示欄1043bと、当該エンジニアに対してオファーをする場合に押下するオファーボタン1043cが表示されている。ユーザは、当該エンジニアについて、スコア表示欄1043bに表示されているスコアを参照し、当該エンジニアに対してアサインするか否かを決定する。アサインすると決定した場合、ユーザがオファーボタン1043cを押下するので、当該エンジニアに通知される。このような構成により、適切なエンジニアに対してアサインすることが可能になる。
 <小括>
 以上のように、本実施形態によると、エンジニアチームの活動状況の各種パラメータについて改善案をレコメンドする。例えば、特定の構成員に対するレコメンド、新たな構成員のアサインをレコメンドする。これにより、エンジニアチームの活動状況の改善案を把握することが可能になる。
 以上、開示に係る実施形態について説明したが、これらはその他の様々な形態で実施することが可能であり、種々の省略、置換および変更を行なって実施することができる。これらの実施形態および変形例ならびに省略、置換および変更を行なったものは、特許請求の範囲の技術的範囲とその均等の範囲に含まれる。
 <付記>
 以上の各実施形態で説明した事項を、以下に付記する。
 (付記1)プロセッサ29と、記憶部202とを備えるコンピュータに実行させるためのプログラムであって、プログラムは、プロセッサに、エンジニアチームに所属する構成員が、エンジニアとしての成果物を作成するためにオンライン上にアップロードした情報と、当該アップロードされた成果物についてエンジニアチームの構成員が行ったレビュー情報と、の履歴に基づいて、前記エンジニアチームの活動状況を表すパラメータを特定するステップ(S114)と、パラメータをユーザに提示するステップ(S224)と、を実行させる、プログラム。
 (付記2)パラメータを特定するステップにおいて、成果物をオンライン上にアップロードした情報、および成果物についてエンジニアチームの構成員により行ったレビュー情報を、エンジニアチームの成果物であるソースコードを管理するソースコードホスティングサービスから取得する、(付記1)に記載のプログラム。
 (付記3)パラメータを特定するステップにおいて、パラメータを、エンジニアチームの各構成員が行った成果を示す値に基づいて特定する、(付記1)または(付記2)に記載のプログラム。
 (付記4)パラメータを、ユーザが指定した所定の期間における、エンジニアチームの各構成員が行った成果を示す値を積み上げて特定する、(付記3)に記載のプログラム。
 (付記5)成果物をオンライン上にアップロードした情報として、エンジニアチーム内のプロジェクトにおける成果物を管理する管理手段に対するアップロード数、作成コード数、修正コード数、レビュー依頼数、レビュー結果を確定させる統合数のいずれかまたは複数を取得する、(付記1)から(付記4)のいずれかに記載のプログラム。
 (付記6)パラメータを提示するステップにおいて、アップロード数、作成コード数、修正コード数、レビュー依頼数、統合数のいずれかまたは複数を、時系列の情報としてユーザに提示する、(付記5)に記載のプログラム。
 (付記7)作成コード数及び修正コード数に係る作成コード及び修正コードの難易度、もしくは重要度に基づいて重み付けを行い、パラメータを特定し、または、作成後に所定の期間経過後、残存しているコード数を含む履歴に基づき、パラメータを特定する、(付記5)または(付記6)に記載のプログラム。
 (付記8)成果物についてエンジニアチームの構成員により行ったレビュー情報として、管理手段に対するレビュー数、コメント数、コメント回答数のいずれかまたは複数を取得する、(付記1)から(付記7)のいずれかに記載のプログラム。
 (付記9)レビュー数、コメント数、コメント回答数のいずれかまたは複数を、時系列の情報としてユーザに提示する、(付記8)に記載のプログラム。
 (付記10)プログラムは、プロセッサに、さらに、パラメータとして、エンジニアチームにおけるレビューの依頼からクローズまでの期間を示すリードタイムを取得してユーザに提示する、(付記1)から(付記9)のいずれかに記載のプログラム。
 (付記11)プログラムは、プロセッサに、さらに、エンジニアチームの活動状況として、エンジニアチームにおいてレビューの依頼がされた成果物の推移を示す内訳を取得してユーザに提示する、(付記1)から(付記10)のいずれかに記載のプログラム。
 (付記12)プログラムは、プロセッサに、さらに、エンジニアチームの活動状況として、エンジニアチームにおいてレビューの依頼がされた成果物に対するコメント数と、エンジニアチームにおけるレビューの依頼からクローズまでの期間を示すリードタイムとの関係を取得してユーザに提示する、(付記1)から(付記11)のいずれかに記載のプログラム。
 (付記13)プログラムは、プロセッサに、さらに、エンジニアチームの活動状況として、エンジニアチームにおけるレビューを依頼するレビュイーとレビューの依頼を受けるレビュワーとの関係を取得してユーザに提示する、(付記1)から(付記12)のいずれかに記載のプログラム。
 (付記14)プログラムは、プロセッサに、さらに、エンジニアチームに所属する構成員の成果を示す値を演算するステップを実行させ、特定のエンジニアチームに所属する構成員の成果を示す値を提示する、(付記1)から(付記13)のいずれかに記載のプログラム。
 (付記15)エンジニアチームに所属する構成員の成果を示す値として、エンジニアチーム内のプロジェクトにおける成果物を管理する管理手段に対するアップロード数、作成コード数、修正コード数、レビュー依頼数、レビュー結果を確定させる統合数のいずれかまたは複数を演算して取得する、(付記14)に記載のプログラム。
 (付記16)プログラムは、プロセッサに、さらに、パラメータの所定の期間における変動に基づき、アラートを通知するステップを実行させる、(付記1)から(付記15)のいずれかに記載のプログラム。
 (付記17)パラメータの所定の期間における値が、パラメータの他の期間の値に基づく外れ値であることを検知し、検知した外れ値に基づき、または特定のエンジニアチームに所属する構成員の成果を示す値の変動に基づき、アラートを通知する、(付記16)に記載のプログラム。
 (付記18)特定のエンジニアチームに所属する構成員の成果を示す値として、エンジニアチーム内のプロジェクトにおける当該構成員のアップロード数、コメント数、レビュー着手までの期間、当該構成員と他の構成員とのレビュー数、レビュー時間、コメント数のいずれかまたは複数の変動を検知し、変動に基づくアラートを通知する、(付記17)に記載のプログラム。
 (付記19)パラメータの所定の期間における変動に基づき、エンジニアチームの活動状況の変動の原因、改善案のいずれかまたは両方を抽出して提示する、(付記16)から(付記18)のいずれかに記載のプログラム。
 (付記20)パラメータの変動の原因として、エンジニアチームの履歴から、当該所定の期間において、減少した成果物をオンライン上にアップロードした情報、エンジニアチームの構成員により行ったレビュー情報のいずれかまたは両方を提示する、(付記19)に記載のプログラム。
 (付記21)エンジニアチームの履歴の解析を行い、当該所定の期間におけるパラメータの変動の原因となるタスク、アクション、エンジニアチームに所属する構成員のいずれかまたは複数を検知して提示する、(付記19)または(付記20)に記載のプログラム。
 (付記22)プログラムは、プロセッサに、さらに、エンジニアチーム外のエンジニアの成果を示す値を取得するステップと、エンジニアチーム外のエンジニアの成果を示す値と、エンジニアチームの履歴とをマッチングし、エンジニアチーム外のエンジニアがエンジニアチームに適応可能か否かを判定するステップと、エンジニアチーム外のエンジニアがエンジニアチームに適応可能と判定した場合、改善案として、エンジニアチーム外のエンジニアのエンジニアチームへの参画を提示するステップと、を実行させる、(付記19)から(付記21)のいずれかに記載のプログラム。
 (付記23)プログラムは、プロセッサに、さらに、パラメータを時系列の情報と関連付けて、他のエンジニアチームの活動状況を表すパラメータを時系列の情報と関連付けて比較可能に提示するステップを実行させる、(付記1)から(付記22)のいずれかに記載のプログラム。
 (付記24)パラメータとともに、リードタイムを基準とし、他のエンジニアチームと比較可能に提示する、(付記23)に記載のプログラム。
 (付記25)制御部と、記憶部とを備える情報処理装置であって、制御部は、エンジニアチームに所属する構成員が、エンジニアとしての成果物を作成するためにオンライン上にアップロードした情報と、当該アップロードされた成果物についてエンジニアチームの構成員により行ったレビュー情報と、の履歴に基づいて、エンジニアチームの活動状況を表すパラメータを特定するステップと、パラメータをユーザに提示するステップと、を実行する、情報処理装置。
 (付記26)プロセッサと、記憶部とを備えるコンピュータにより実行されるための方法であって、方法は、プロセッサが、エンジニアチームに所属する構成員が、エンジニアとしての成果物を作成するためにオンライン上にアップロードした情報と、当該アップロードされた成果物についてエンジニアチームの構成員により行ったレビュー情報と、の履歴に基づいて、エンジニアチームの活動状況を表すパラメータを特定するステップと、パラメータをユーザに提示するステップと、を実行する、方法。
10 端末装置、20 サーバ、80 ネットワーク、130 操作受付部、161 ユーザ情報、22 通信IF、23 入出力IF、25 メモリ、26 ストレージ、29 プロセッサ、201 通信部、202 記憶部、2021 リポジトリデータベース、2022 個人パフォーマンスデータベース、2023 チームスコアデータベース、2024 エンジニアデータベース、203 制御部

Claims (26)

  1.  プロセッサと、記憶部とを備えるコンピュータに実行させるためのプログラムであって、
     前記プログラムは、前記プロセッサに、
     エンジニアチームに所属する構成員が、エンジニアとしての成果物を作成するためにオンライン上にアップロードした情報と、当該アップロードされた成果物について前記エンジニアチームの構成員が行ったレビュー情報と、の履歴に基づいて、前記エンジニアチームの活動状況を表すパラメータを特定するステップと、
     前記パラメータをユーザに提示するステップと、を実行させる、プログラム。
  2.  前記パラメータを特定するステップにおいて、前記成果物をオンライン上にアップロードした情報、および前記成果物について前記エンジニアチームの構成員により行ったレビュー情報を、前記エンジニアチームの成果物であるソースコードを管理するソースコードホスティングサービスから取得する、請求項1に記載のプログラム。
  3.  前記パラメータを特定するステップにおいて、前記パラメータを、前記エンジニアチームの各構成員が行った成果を示す値に基づいて特定する、請求項1または請求項2に記載のプログラム。
  4.  前記パラメータを、ユーザが指定した所定の期間における、前記エンジニアチームの各構成員が行った成果を示す値を積み上げて特定する、請求項3に記載のプログラム。
  5.  前記成果物をオンライン上にアップロードした情報として、前記エンジニアチーム内のプロジェクトにおける前記成果物を管理する管理手段に対するアップロード数、作成コード数、修正コード数、レビュー依頼数、レビュー結果を確定させる統合数のいずれかまたは複数を取得する、請求項1から請求項4のいずれか1項に記載のプログラム。
  6.  前記パラメータを提示するステップにおいて、前記アップロード数、前記作成コード数、前記修正コード数、前記レビュー依頼数、前記統合数のいずれかまたは複数を、時系列の情報としてユーザに提示する、請求項5に記載のプログラム。
  7.  前記作成コード数及び前記修正コード数に係る作成コード及び修正コードの難易度、もしくは重要度に基づいて重み付けを行い、前記パラメータを特定し、または、作成後に所定の期間経過後、残存しているコード数を含む前記履歴に基づき、前記パラメータを特定する、請求項5または請求項6に記載のプログラム。
  8.  前記成果物について前記エンジニアチームの構成員により行ったレビュー情報として、前記管理手段に対するレビュー数、コメント数、コメント回答数のいずれかまたは複数を取得する、請求項1から請求項7のいずれか1項に記載のプログラム。
  9.  前記レビュー数、前記コメント数、前記コメント回答数のいずれかまたは複数を、時系列の情報としてユーザに提示する、請求項8に記載のプログラム。
  10.  前記プログラムは、前記プロセッサに、さらに、
     前記パラメータとして、前記エンジニアチームにおけるレビューの依頼からクローズまでの期間を示すリードタイムを取得してユーザに提示する、請求項1から請求項9のいずれか1項に記載のプログラム。
  11.  前記プログラムは、前記プロセッサに、さらに、
     前記エンジニアチームの活動状況として、前記エンジニアチームにおいてレビューの依頼がされた成果物の推移を示す内訳を取得してユーザに提示する、請求項1から請求項10のいずれか1項に記載のプログラム。
  12.  前記プログラムは、前記プロセッサに、さらに、
     前記エンジニアチームの活動状況として、前記エンジニアチームにおいてレビューの依頼がされた成果物に対するコメント数と、前記エンジニアチームにおけるレビューの依頼からクローズまでの期間を示すリードタイムとの関係を取得してユーザに提示する、請求項1から請求項11のいずれか1項に記載のプログラム。
  13.  前記プログラムは、前記プロセッサに、さらに、
     前記エンジニアチームの活動状況として、前記エンジニアチームにおけるレビューを依頼するレビュイーとレビューの依頼を受けるレビュワーとの関係を取得してユーザに提示する、請求項1から請求項12のいずれか1項に記載のプログラム。
  14.  前記プログラムは、前記プロセッサに、さらに、
     前記エンジニアチームに所属する構成員の成果を示す値を演算するステップを実行させ、
     特定の前記エンジニアチームに所属する構成員の成果を示す値を提示する、請求項1から請求項13のいずれか1項に記載のプログラム。
  15.  前記エンジニアチームに所属する構成員の成果を示す値として、前記エンジニアチーム内のプロジェクトにおける前記成果物を管理する管理手段に対するアップロード数、作成コード数、修正コード数、レビュー依頼数、レビュー結果を確定させる統合数のいずれかまたは複数を演算して取得する、請求項14に記載のプログラム。
  16.  前記プログラムは、前記プロセッサに、さらに、
     前記パラメータの所定の期間における変動に基づき、アラートを通知するステップを実行させる、請求項1から請求項15のいずれか1項に記載のプログラム。
  17.  前記パラメータの所定の期間における値が、前記パラメータの他の期間の値に基づく外れ値であることを検知し、検知した前記外れ値に基づき、または特定の前記エンジニアチームに所属する構成員の成果を示す値の変動に基づき、アラートを通知する、請求項16に記載のプログラム。
  18.  特定の前記エンジニアチームに所属する構成員の成果を示す値として、前記エンジニアチーム内のプロジェクトにおける当該構成員のアップロード数、コメント数、レビュー着手までの期間、当該構成員と他の構成員とのレビュー数、レビュー時間、コメント数のいずれかまたは複数の変動を検知し、変動に基づくアラートを通知する、請求項17に記載のプログラム。
  19.  前記パラメータの所定の期間における変動に基づき、前記エンジニアチームの活動状況の変動の原因、改善案のいずれかまたは両方を抽出して提示する、請求項16から請求項18のいずれか1項に記載のプログラム。
  20.  前記パラメータの変動の原因として、前記エンジニアチームの前記履歴から、当該所定の期間において、減少した前記成果物をオンライン上にアップロードした情報、前記エンジニアチームの構成員により行ったレビュー情報のいずれかまたは両方を提示する、請求項19に記載のプログラム。
  21.  前記エンジニアチームの前記履歴の解析を行い、当該所定の期間における前記パラメータの変動の原因となるタスク、アクション、前記エンジニアチームに所属する構成員のいずれかまたは複数を検知して提示する、請求項19または請求項20に記載のプログラム。
  22.  前記プログラムは、前記プロセッサに、さらに、
     前記エンジニアチーム外のエンジニアの成果を示す値を取得するステップと、
     前記エンジニアチーム外のエンジニアの成果を示す値と、前記エンジニアチームの前記履歴とをマッチングし、前記エンジニアチーム外のエンジニアが前記エンジニアチームに適応可能か否かを判定するステップと、
     前記エンジニアチーム外のエンジニアが前記エンジニアチームに適応可能と判定した場合、前記改善案として、前記エンジニアチーム外のエンジニアの前記エンジニアチームへの参画を提示するステップと、を実行させる、請求項19から請求項21のいずれか1項に記載のプログラム。
  23.  前記プログラムは、前記プロセッサに、さらに、
     前記パラメータを時系列の情報と関連付けて、他のエンジニアチームの活動状況を表すパラメータを時系列の情報と関連付けて比較可能に提示するステップを実行させる、請求項1から請求項22のいずれか1項に記載のプログラム。
  24.  前記パラメータとともに、前記リードタイムを基準とし、他のエンジニアチームと比較可能に提示する、請求項23に記載のプログラム。
  25.  制御部と、記憶部とを備える情報処理装置であって、
     前記制御部は、
     エンジニアチームに所属する構成員が、エンジニアとしての成果物を作成するためにオンライン上にアップロードした情報と、当該アップロードされた成果物について前記エンジニアチームの構成員により行ったレビュー情報と、の履歴に基づいて、前記エンジニアチームの活動状況を表すパラメータを特定するステップと、
     前記パラメータをユーザに提示するステップと、を実行する、情報処理装置。
  26.  プロセッサと、記憶部とを備えるコンピュータに実行されるための方法であって、
     前記方法は、前記プロセッサが、
     エンジニアチームに所属する構成員が、エンジニアとしての成果物を作成するためにオンライン上にアップロードした情報と、当該アップロードされた成果物について前記エンジニアチームの構成員により行ったレビュー情報と、の履歴に基づいて、前記エンジニアチームの活動状況を表すパラメータを特定するステップと、
     前記パラメータをユーザに提示するステップと、を実行する、方法。
PCT/JP2021/047578 2020-12-30 2021-12-22 プログラム、情報処理装置および方法 WO2022145311A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/209,501 US20230325180A1 (en) 2020-12-30 2023-06-14 Program, information processing apparatus, and method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020-219905 2020-12-30
JP2020219905A JP7096983B1 (ja) 2020-12-30 2020-12-30 プログラム、情報処理装置および方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/209,501 Continuation US20230325180A1 (en) 2020-12-30 2023-06-14 Program, information processing apparatus, and method

Publications (1)

Publication Number Publication Date
WO2022145311A1 true WO2022145311A1 (ja) 2022-07-07

Family

ID=82260671

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/047578 WO2022145311A1 (ja) 2020-12-30 2021-12-22 プログラム、情報処理装置および方法

Country Status (3)

Country Link
US (1) US20230325180A1 (ja)
JP (1) JP7096983B1 (ja)
WO (1) WO2022145311A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7338925B1 (ja) 2023-01-17 2023-09-05 ファインディ株式会社 情報処理装置、方法、プログラム、およびシステム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001052220A (ja) * 1999-08-12 2001-02-23 Ntt Data Corp 稼働集計システム、集計サーバ、担当者端末及び記録媒体
JP2004054393A (ja) * 2002-07-17 2004-02-19 Casio Comput Co Ltd 評価装置およびプログラム
JP2010160732A (ja) * 2009-01-09 2010-07-22 Nec Corp サーバ、ソフトウェア評価作業管理システム、及びプログラム
JP2015118650A (ja) * 2013-12-20 2015-06-25 カシオ計算機株式会社 データ処理装置及びプログラム
JP2016110231A (ja) * 2014-12-02 2016-06-20 三菱電機株式会社 プロジェクト評価装置及びプロジェクト評価方法及びプロジェクト評価プログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001052220A (ja) * 1999-08-12 2001-02-23 Ntt Data Corp 稼働集計システム、集計サーバ、担当者端末及び記録媒体
JP2004054393A (ja) * 2002-07-17 2004-02-19 Casio Comput Co Ltd 評価装置およびプログラム
JP2010160732A (ja) * 2009-01-09 2010-07-22 Nec Corp サーバ、ソフトウェア評価作業管理システム、及びプログラム
JP2015118650A (ja) * 2013-12-20 2015-06-25 カシオ計算機株式会社 データ処理装置及びプログラム
JP2016110231A (ja) * 2014-12-02 2016-06-20 三菱電機株式会社 プロジェクト評価装置及びプロジェクト評価方法及びプロジェクト評価プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7338925B1 (ja) 2023-01-17 2023-09-05 ファインディ株式会社 情報処理装置、方法、プログラム、およびシステム

Also Published As

Publication number Publication date
US20230325180A1 (en) 2023-10-12
JP2022105779A (ja) 2022-07-15
JP7096983B1 (ja) 2022-07-07

Similar Documents

Publication Publication Date Title
US11455599B2 (en) Systems and methods for improved meeting engagement
DeRenzi et al. Mobile phone tools for field‐based health care workers in low‐income countries
US10733543B2 (en) Human resource analytics with profile data
Agboola et al. “Real-world” practical evaluation strategies: a review of telehealth evaluation
US20040260593A1 (en) System and user interface supporting workflow operation improvement
Brown et al. The development of evidence-based prehospital guidelines using a GRADE-based methodology
US20230289737A1 (en) Program, information processing apparatus, and method
US11887723B2 (en) Dental practice scheduling efficiencies and operational issue trainings
WO2022145311A1 (ja) プログラム、情報処理装置および方法
Berrocal et al. mQoL lab: step-by-step creation of a flexible platform to conduct studies using interactive, mobile, wearable and ubiquitous devices
Short Solving alarm fatigue with smartphone technology
US20230317301A1 (en) Systems and methods for enhanced networking and remote communications
Hussain-Alkhateeb et al. Local perceptions of causes of death in rural South Africa: a comparison of perceived and verbal autopsy causes of death
JP7168966B2 (ja) プログラム、情報処理装置および方法
JP2022188292A (ja) プログラム、情報処理装置および方法
Shaw et al. Integrating patient-generated digital health data into electronic health records (EHRs) in ambulatory care settings: EHR vendor survey and interviews
US20210257082A1 (en) Meaningfulness Measure
Baarah An application framework for monitoring care processes
Nguyen et al. Stage-based business process mining
JP7244141B1 (ja) プログラム、情報処理装置および方法
JP7219989B1 (ja) プログラム、情報処理装置および方法
Kelly et al. Collections assessment: developing sustainable programs and projects
US20160048552A1 (en) Systems and methods for adaptively identifying and mitigating statistical outliers in aggregated data
US20130332371A1 (en) Systems and methods for jury selection and consulting
JP7388785B1 (ja) 情報処理装置、方法、プログラム、およびシステム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21915171

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21915171

Country of ref document: EP

Kind code of ref document: A1