Agile development method and device, computer equipment and readable storage medium
Through the reinforcement learning model, intelligent allocation and automation processing of agile development tasks are solved, and the problem of missing artificial dependence and automation in agile development is improved, and development efficiency and project response speed are improved.
Patent Information
- Application Number
- CN202411064691.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-08-05
- Publication Date
- 2024-12-13
AI Technical Summary
The current agile development method relies on manual experience and lacks systematic and intelligent task allocation, resulting in low development efficiency and lack of automated guidance for testing, integration and deployment.
Using reinforcement learning model to allocate and automate agile development tasks. By obtaining development team personnel information and task development information, generating task allocation strategies, and monitoring task code during the development process, performing metadata-driven code testing, integration and dynamics. Task adjustment.
It achieves the best matching of developer skills and task complexity, improves the rationality of task allocation and development efficiency, improves the automation and reliability of code change management, and enhances the flexibility and response speed of the project.
Smart Images

Figure CN119127130A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of computer technology, and in particular to an agile development method, apparatus, computer equipment, computer-readable storage medium, and computer program product. Background Art
[0002] With the development of computer technology and software development, agile development technology has emerged. Agile development is a development method that emphasizes iteration, increment and collaboration. Its core concepts include: Rapid delivery: Frequent release of small versions through small steps to ensure rapid response to changes in demand. Continuous improvement: Review at the end of each iteration cycle to find and improve existing problems. Customer participation: Customers continue to provide feedback during the development process to ensure that the final product meets their needs. In agile development, software projects are divided into multiple sub-projects at the beginning of construction. The results of each sub-project have been tested and have the characteristics of being visible, integrable and operational. In other words, a large project is divided into multiple small projects that are interconnected but can also be run independently, and they are completed separately. During this process, the software is always in a usable state. Agile development method, as a software development model, emphasizes flexibility and rapid response. It is a mainstream development method widely used in the software development industry in recent years.
[0003] However, the current agile development methods generally rely on manual experience to allocate tasks and lack systematic and intelligent analysis. There is also a lack of automated development guidance for testing, integration and deployment in the development process, resulting in low overall development efficiency. Summary of the invention
[0004] Based on this, it is necessary to provide an agile development method, apparatus, computer equipment, computer-readable storage medium and computer program product that can effectively improve development efficiency in response to the above technical problems.
[0005] In a first aspect, the present application provides an agile development method, comprising:
[0006] Obtaining an agile development task and searching for development team personnel information for the agile development task;
[0007] Identifying task development information of each sub-development task in the agile development task;
[0008] Inputting the development team personnel information and the task development information into a preset reinforcement learning model to generate a task allocation strategy for the agile development task, wherein the preset reinforcement learning model is trained based on historical development project data and historical developer information;
[0009] Allocate and process the sub-development tasks in the agile development task based on the task allocation strategy;
[0010] During the development process of the agile development task, the task code of the agile development task is monitored, and code testing processing, code integration processing and dynamic task adjustment processing are performed through metadata drive to obtain an agile development result.
[0011] In one embodiment, obtaining the agile development task and searching for the development team personnel information of the agile development task includes:
[0012] Obtaining an agile development task, and searching for member identities of a development team for the agile development task;
[0013] Based on the member identity identifier, searching the member database for the skill data and development record data of each development member in the development team;
[0014] Assigning corresponding skill labels to each development member according to the skill data, generating skill scores for the skill labels, and performing project experience scoring processing for each development member according to the development record data to obtain project experience scores for each development member;
[0015] Performing a comprehensive scoring process on each development member based on the skill score and project experience score, and a comprehensive score of each development member;
[0016] Summarize the skill scores, project experience scores and comprehensive scores of each development member in the development team to obtain the personnel information within the development team.
[0017] In one embodiment, the identifying task development information of each sub-development task in the agile development task includes:
[0018] Identify the complexity information of each sub-development task in the agile development task, and determine the programming language, programming framework, and programming tool required for each sub-development task;
[0019] Based on the complexity information, each sub-development task in the agile development task is evaluated and processed to determine the expected completion time and task difficulty of each sub-development task;
[0020] Identify the dependency relationships between the sub-development tasks in the agile development task, and generate a task dependency graph based on the dependency relationships;
[0021] The programming language, programming framework, programming tools, expected completion time, task difficulty, and task dependency graph between the sub-development tasks required for each sub-development task are summarized to obtain task development information.
[0022] In one embodiment, inputting the development team personnel information and the task development information into a preset reinforcement learning model to generate a task allocation strategy for the agile development task includes:
[0023] Inputting the development team personnel information and the task development information into a preset reinforcement learning model;
[0024] The development team personnel information is converted into a state space through the preset reinforcement learning model;
[0025] Based on the development team personnel information and the task development information, construct an action space consisting of possibilities of assigning sub-development tasks to different developers;
[0026] A strategy generation process is performed based on the state space and the action space to obtain a task allocation strategy for the agile development task.
[0027] In one embodiment, the method further comprises:
[0028] Obtaining an initial reinforcement learning model, setting composition information of a state space and an action space in the initial reinforcement learning model, and setting an initial reward function;
[0029] Based on the composition information of the state space and the action space, the initial reward function is optimized by a Pareto optimal strategy to determine the comprehensive reward of each task assignment action and obtain an updated strategy;
[0030] Construct model training data based on historical development project data and historical developer information;
[0031] Based on the model training data, the initial reinforcement learning model is updated with parameters through a Q-learning algorithm, and the update strategy is optimized.
[0032] In one embodiment, monitoring the task code of the agile development task during the development process of the agile development task, and performing dynamic task adjustment processing driven by metadata includes:
[0033] Determine task execution data for each sub-development task based on the task code;
[0034] Inputting the task execution data and the development team personnel information into the preset reinforcement learning model to generate a dynamic adjustment strategy for the agile development task;
[0035] Dynamic task adjustment processing is performed based on the dynamic adjustment strategy.
[0036] In one embodiment, the method further comprises:
[0037] Managing the task code to obtain a code management result, wherein the code management result includes a code analysis result, a code update result, and a code deployment optimization strategy;
[0038] The managing of the task code to obtain the code management result includes:
[0039] Analyze and process the static code in the task code in a metadata-driven manner, generate a code quality report, and record the construction result and deployment result of the task code to obtain a code analysis result;
[0040] Performing code change processing on the task code in a metadata-driven manner to obtain code change metadata, triggering code integration and code deployment processes based on the code change metadata to obtain a code update result;
[0041] The integration strategy and deployment strategy of the task code are optimized through the deployment optimization model to obtain a code deployment optimization strategy.
[0042] In a second aspect, the present application also provides an agile development device, including:
[0043] An information search module is used to obtain agile development tasks and search for development team personnel information of the agile development tasks;
[0044] A task analysis module, used to identify task development information of each sub-development task in the agile development task;
[0045] A strategy generation module, used to input the development team personnel information and the task development information into a preset reinforcement learning model to generate a task allocation strategy for the agile development task, wherein the preset reinforcement learning model is trained based on historical development project data and historical developer information;
[0046] A task allocation module, used for allocating and processing sub-development tasks in the agile development task based on the task allocation strategy;
[0047] The code monitoring module is used to monitor the task code of the agile development task during the development process of the agile development task, and to perform code testing, code integration and dynamic task adjustment through metadata drive to obtain agile development results.
[0048] In a third aspect, the present application further provides a computer device, including a memory and a processor, wherein the memory stores a computer program, and when the processor executes the computer program, the following steps are implemented:
[0049] Obtaining an agile development task and searching for development team personnel information for the agile development task;
[0050] Identifying task development information of each sub-development task in the agile development task;
[0051] Inputting the development team personnel information and the task development information into a preset reinforcement learning model to generate a task allocation strategy for the agile development task, wherein the preset reinforcement learning model is trained based on historical development project data and historical developer information;
[0052] Allocate and process the sub-development tasks in the agile development task based on the task allocation strategy;
[0053] During the development process of the agile development task, the task code of the agile development task is monitored, and code testing processing, code integration processing and dynamic task adjustment processing are performed through metadata drive to obtain an agile development result.
[0054] In a fourth aspect, the present application further provides a computer-readable storage medium having a computer program stored thereon, wherein when the computer program is executed by a processor, the following steps are implemented:
[0055] Obtaining an agile development task and searching for development team personnel information for the agile development task;
[0056] Identifying task development information of each sub-development task in the agile development task;
[0057] Inputting the development team personnel information and the task development information into a preset reinforcement learning model to generate a task allocation strategy for the agile development task, wherein the preset reinforcement learning model is trained based on historical development project data and historical developer information;
[0058] Allocate and process the sub-development tasks in the agile development task based on the task allocation strategy;
[0059] During the development process of the agile development task, the task code of the agile development task is monitored, and code testing processing, code integration processing and dynamic task adjustment processing are performed through metadata drive to obtain an agile development result.
[0060] In a fifth aspect, the present application further provides a computer program product, including a computer program, which implements the following steps when executed by a processor:
[0061] Obtaining an agile development task and searching for development team personnel information for the agile development task;
[0062] Identifying task development information of each sub-development task in the agile development task;
[0063] Inputting the development team personnel information and the task development information into a preset reinforcement learning model to generate a task allocation strategy for the agile development task, wherein the preset reinforcement learning model is trained based on historical development project data and historical developer information;
[0064] Allocate and process the sub-development tasks in the agile development task based on the task allocation strategy;
[0065] During the development process of the agile development task, the task code of the agile development task is monitored, and code testing processing, code integration processing and dynamic task adjustment processing are performed through metadata drive to obtain an agile development result.
[0066] The above-mentioned agile development method, device, computer equipment, computer-readable storage medium and computer program product, after obtaining the agile development task, first find the development team personnel information of the agile development task; and identify the task development information of each sub-development task in the agile development task. Then for the development process, the development team personnel information and task development information are first input into the preset reinforcement learning model to generate the task allocation strategy of the agile development task. Then the sub-development tasks in the agile development task are allocated and processed based on the task allocation strategy. At the same time, after the task allocation is completed, the task code of the agile development task is automatically monitored during the development process of the agile development task, and the code testing, code integration and dynamic task adjustment are performed through metadata drive to obtain the agile development result. This application can achieve the best match between the skills of the developer and the complexity of the task by introducing an intelligent task allocation system, and improve the rationality of task allocation and development efficiency. In the task development process, by detecting the task code and realizing highly automated code testing and code integration in a metadata-driven manner, the automation and reliability of code change management can be effectively improved. The development process based on the task code can also be dynamically adjusted and processed, and the development efficiency can be improved through real-time data analysis and feedback, and the flexibility and response speed of the project can be improved. By integrating the above-mentioned task matching, code testing, code integration and task dynamic adjustment mechanisms to carry out agile development, the efficiency of agile development can be effectively improved. BRIEF DESCRIPTION OF THE DRAWINGS
[0067] In order to more clearly illustrate the technical solutions in the embodiments of the present application or related technologies, the drawings required for use in the embodiments of the present application or related technical descriptions will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other related drawings can be obtained based on these drawings without paying creative work.
[0068] Figure 1An application environment diagram of an agile development method in an embodiment;
[0069] Figure 2 A flowchart of an agile development method in one embodiment;
[0070] Figure 3 A flowchart of the steps of searching for development team member information in one embodiment;
[0071] Figure 4 A flowchart of a step of identifying task development information of a sub-development task in one embodiment;
[0072] Figure 5 A structural block diagram of an agile development device in one embodiment;
[0073] Figure 6 FIG. 4 is a diagram showing the internal structure of a computer device in one embodiment. DETAILED DESCRIPTION
[0074] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.
[0075] The agile development method provided in the embodiment of the present application can be applied to Figure 1In the application environment shown. Among them, the terminal 102 communicates with the server 104 through the network. The data storage system can store the data that the server 104 needs to process. The data storage system can be integrated on the server 104, or it can be placed on the cloud or other network servers. When the user of the terminal 102 wants to start executing an agile development project, he can initiate a request to the server 104 to process the agile development task through the terminal 102. The server 104 obtains the agile development task and finds the development team personnel information of the agile development task; identifies the task development information of each sub-development task in the agile development task; inputs the development team personnel information and the task development information into the preset reinforcement learning model to generate the task allocation strategy of the agile development task. The preset reinforcement learning model is trained based on historical development project data and historical developer information; the sub-development tasks in the agile development task are allocated and processed based on the task allocation strategy; the task code of the agile development task is monitored during the development process of the agile development task, and the code test processing, code integration processing and dynamic task adjustment processing are performed through metadata drive to obtain the agile development result. The terminal 102 may be, but is not limited to, various personal computers, laptops, smart phones, tablet computers, IoT devices, and portable wearable devices. The IoT devices may be smart speakers, smart TVs, smart air conditioners, smart car devices, projection devices, etc. Portable wearable devices may be smart watches, smart bracelets, head-mounted devices, etc. Head-mounted devices may be virtual reality (VR) devices, augmented reality (AR) devices, smart glasses, etc. The server 104 may be an independent physical server, a server cluster or distributed system consisting of multiple physical servers, or a cloud server that provides cloud computing services.
[0076] In an exemplary embodiment, Figure 2 As shown, an agile development method is provided, which is applied to Figure 1 The server 104 in the example is used as an example to illustrate the method, which includes the following steps 201 to 209. Among them:
[0077] Step 201, obtain an agile development task, and search for development team personnel information of the agile development task.
[0078] Among them, agile development tasks refer to the target development tasks that need to be performed by the agile development method of this application. The complete tasks of agile development tasks include a series of processing flows, such as architecture design, process design, code writing, code testing, code integration, software deployment, etc. The complete agile development task can also be broken down into various sub-development tasks, which are developed by different developers. Development team personnel information refers to the relevant information of all development team members responsible for agile development tasks, including the skills mastered by each developer, project development experience, etc.
[0079] Exemplarily, when the user of the terminal 102 wants to organize a project development in an agile development manner, the agile development method of the present application can be used to implement the task allocation and development management of the project development process. The user can submit the corresponding request and the relevant information of the agile development task to the server 104 through the terminal. After receiving the request for the agile development task, the server 104 can first search for the development team personnel information based on the tasks of the agile development task, so as to perform subsequent analysis based on these development team personnel information. Specifically, each development team member can be determined first. Collect the skill data of the development team members, record the skill tags of each developer, including the programming languages, frameworks, tools and their proficiency, evaluate the project experience of the developer, record the number, type and role of the project involved, and obtain detailed development team personnel information.
[0080] Step 203: Identify task development information of each sub-development task in the agile development task.
[0081] Among them, task development information refers to the specific information of each sub-development task, such as task complexity, task requirements, expected completion time of the task, dependencies between different tasks, etc.
[0082] For example, in addition to identifying the development team personnel information, it is also necessary to analyze the task development information of each sub-development task in the agile development task to clarify the specific development details. The task development information of each sub-development task in the agile development task is identified by disassembling the complete development project. By analyzing the task complexity information, defining the technical requirements of each sub-development task, including the required programming language, framework, tools, etc., evaluating the expected completion time and difficulty level of the task, determining the dependencies between tasks, generating a task dependency graph, etc., complete task development information is obtained.
[0083] Step 205 , input the development team personnel information and task development information into a preset reinforcement learning model to generate a task allocation strategy for agile development tasks. The preset reinforcement learning model is trained based on historical development project data and historical developer information.
[0084] Step 207: allocate sub-development tasks in the agile development task based on the task allocation strategy.
[0085] Among them, the preset reinforcement learning model refers to a machine learning model that is pre-built based on the reinforcement learning algorithm to achieve efficient task allocation. Reinforcement Learning (RL), reinforcement learning is a machine learning technology that allows the agent to learn the best behavior strategy through interaction with the environment. It mainly consists of the following components: Agent: the subject that makes decisions. Environment: the external world in which the agent interacts. State: the current state of the environment. Action: the choice that the agent can make. Reward: feedback received by the agent to evaluate the quality of the action. In the scheme of this application, the given development team personnel information and task development information are used as conditions for processing, so as to analyze the most efficient task allocation strategy, so as to assign tasks to the most suitable developers. The preset reinforcement learning model can be trained based on historical development project data and historical developer information.
[0086] For example, for the task allocation process of agile development tasks, that is, the process of allocating sub-development tasks to different developers within the development team, the strategy generation process can be processed through reinforcement learning. By learning from historical project development experience, sub-development tasks can be assigned to appropriate developers to improve development efficiency. By inputting the development team personnel information and task development information into the preset reinforcement learning model, the preset reinforcement learning model is used to analyze the tasks and developer data of the current project, and according to the best strategy output by the reinforcement learning model, tasks are assigned to the most suitable developers. The task dependency graph is used to determine the priority and order of tasks to ensure that key tasks are completed first.
[0087] Step 209 , during the development process of the agile development task, the task code of the agile development task is monitored, and code testing, code integration and dynamic task adjustment are performed through metadata drive to obtain an agile development result.
[0088] Among them, metadata is data about data, which is used to describe the attributes or structure of other data. The metadata-driven approach means that the behavior or structure of the system can be adjusted and configured according to changes in metadata. This approach has the following characteristics: Dynamic adaptation: The system can dynamically adjust to changes in metadata without modifying the code. Improved flexibility: Developers can change system behavior by updating metadata, reducing the workload of development and maintenance. Metadata-driven data governance is a new approach that refers to managing, controlling and utilizing data by focusing on metadata, using metadata to gain a deeper understanding of the data you have and understand the quality of the data to ensure the correct and secure use of the data. Metadata-driven data governance also helps to build trust and transparency in data by providing a clear understanding of the contextual meaning of the data.
[0089] For example, after the sub-development tasks are assigned, the development progress needs to be monitored during the project development process, and code testing and code integration processing are performed on the completed task codes. Therefore, in the entire agile development process, the task codes of the agile development tasks are directly monitored, and code testing and code integration processing are performed through metadata drive. In addition, there may be a state where the task execution is out of order due to emergencies. At this time, dynamic task adjustment processing can be performed to adjust the task assignment according to the actual execution situation, thereby ensuring the development efficiency of the agile development process. As for the code testing process, the automated testing tool can be integrated, and then the metadata can be used to generate test cases, and the test cases and test sequence can be optimized according to the reinforcement learning algorithm. The test is automatically executed, and the test results are recorded and fed back to the reinforcement learning model. Finally, by continuously optimizing the agile development process until all sub-development tasks are completed, the final agile development result can be obtained.
[0090] The above-mentioned agile development method, after obtaining the agile development task, first finds the development team personnel information of the agile development task; and identifies the task development information of each sub-development task in the agile development task. Then for the development process, the development team personnel information and task development information are first input into the preset reinforcement learning model to generate the task allocation strategy of the agile development task. Then the sub-development tasks in the agile development task are allocated and processed based on the task allocation strategy. At the same time, after the task allocation is completed, the task code of the agile development task is automatically monitored during the development process of the agile development task, and the code test processing, code integration processing and dynamic task adjustment processing are performed through metadata drive to obtain the agile development result. This application can achieve the best match between the skills of the developer and the complexity of the task by introducing an intelligent task allocation system, and improve the rationality of task allocation and development efficiency. In the task development process, by detecting the task code and realizing highly automated code testing and code integration in a metadata-driven manner, the automation and reliability of code change management can be effectively improved. The development process based on the task code can also be dynamically adjusted and processed, and the development efficiency can be improved through real-time data analysis and feedback, and the flexibility and response speed of the project can be improved. By integrating the above-mentioned task matching, code testing, code integration and task dynamic adjustment mechanisms to carry out agile development, the efficiency of agile development can be effectively improved.
[0091] In an exemplary embodiment, Figure 3 As shown, step 201 includes:
[0092] Step 302: Obtain an agile development task and search for member identities of a development team for the agile development task.
[0093] Step 304: Based on the member identity identifier, search the member database for the skill data and development record data of each development member in the development team.
[0094] Step 306, assign corresponding skill tags to each development member according to the skill data, generate skill scores for the skill tags, and perform project experience scoring for each development member according to the development record data to obtain project experience scores for each development member.
[0095] Step 308: Perform comprehensive scoring on each development member based on the skill score and project experience score, and obtain a comprehensive score for each development member.
[0096] Step 310, summarize the skill scores, project experience scores and comprehensive scores of each development member in the development team to obtain the personnel information in the development team.
[0097] Exemplarily, the process of searching and obtaining the development team personnel information. First, the member identity of the development team of the agile development task can be found according to the development information of the agile development task. Detailed information analysis and summarization processing is performed on each developer in units of member identity. First, the skill data and development record data of each development member in the development team can be found from the member database based on the member identity. Basic analysis data is obtained, and then corresponding skill tags are assigned to each development member according to the skill data, and skill scores of the skill tags are generated. Project experience scoring processing is performed for each development member according to the development record data to obtain the project experience score of each development member. Finally, the skill score and project experience score are combined to perform comprehensive scoring processing on each development member, and the comprehensive score of each development member. Personnel information in the development team is obtained by summarizing the skill scores, project experience scores and comprehensive scores of each development member in the development team. For the process of collecting the skill data of the development team members and recording the skill tags of each developer, for example, the programming languages mastered by the developer are recorded, including Java, Python and JavaScript; the frameworks that the developer is proficient in using are recorded, including Spring, Django and React; the tools commonly used by the developer are recorded, including Git, Docker and Jenkins. As for the evaluation process of skill labels, the proficiency of developers is evaluated, each skill label is quantified, and a skill score is generated. The skill score can be used express:
[0098] ;
[0099] in, represents the proficiency of the i-th programming language, represents the proficiency of the i-th framework, represents the proficiency of the ith tool, , , They represent the weight coefficients of the corresponding skill tags, and n is the total number of skill tags. For the project experience scoring process, the number of projects the developer has participated in can be determined based on the development record data. ; Record the types of projects that developers have participated in, including web development, mobile development, and data analysis; Record the roles that developers play in each project, including developer, tester, and project manager; Generate project experience scores for developers :
[0100] ;
[0101] in, represents the number of the jth item, represents the type of the jth item, represents the role played in the j-th project, , , They represent the weight coefficients of the corresponding experience labels, and m is the total number of project experience labels. Finally, combined with the skill score, and project experience rating , generate comprehensive ability score skill data for each developer :
[0102] ;
[0103] in, , , Respectively represent the weight coefficients of skill score, project experience score and their combined score. By summarizing the data obtained from the above analysis, the personnel information within the development team is obtained. In this embodiment, by analyzing the skill data and development record data of each development member in the development team, the development team personnel information is summarized and summarized, which can effectively improve the accuracy of subsequent development task allocation, thereby improving the efficiency of agile development.
[0104] In an exemplary embodiment, Figure 4 As shown, step 203 includes:
[0105] Step 401, identifying the complexity information of each sub-development task in the agile development task, and determining the programming language, programming framework and programming tool required for each sub-development task.
[0106] Step 403 , evaluating each sub-development task in the agile development task based on the complexity information, and determining the expected completion time and task difficulty of each sub-development task.
[0107] Step 405 , identifying the dependency relationship between each sub-development task in the agile development task, and generating a task dependency graph based on the dependency relationship.
[0108] Step 407, summarize the programming language, programming framework, programming tools, expected completion time, task difficulty, and task dependency graph between sub-development tasks required for each sub-development task to obtain task development information.
[0109] Exemplarily, the process of sorting out task development information corresponds to the process of sorting out development team personnel information. For different sub-development tasks within the project of agile development tasks, it is necessary to identify the complexity information of each sub-development task in the agile development task, determine the programming language, programming framework and programming tools required for each sub-development task in the development process, so as to match the skills of the developer. Then, based on the complexity information, each sub-development task in the agile development task is evaluated and processed to determine the expected completion time and task difficulty of each sub-development task. Then, due to the relevance and dependency between some sub-development tasks, their development order will be affected to a certain extent. At this point, the dependency relationship between each sub-development task in the agile development task can be identified, and a task dependency graph can be generated based on the dependency relationship; finally, the task development information is obtained by summarizing the programming language, programming framework, programming tool, expected completion time, task difficulty required for each sub-development task, and the task dependency graph between sub-development tasks. In one embodiment, for the task development information acquisition process, first analyze the task complexity information, define the technical requirements of each development task, and record the programming language, framework and tools required for each task: the programming language required for the development task, including Java, Python or JavaScript; the framework required for the development task, including Spring, Django or React; the tools required for the development task, including Git, Docker or Jenkins; and then evaluate the expected completion time of the task. and difficulty level The specific steps include: setting the basic time of the task , and adjust the coefficient according to the complexity of the task Make adjustments and calculate the expected completion time of the task :
[0110] ;
[0111] in, represents the adjustment factor of task complexity; and for the difficulty level of the evaluation task The difficulty level can be generated by comprehensively scoring the task based on its technical requirements and expected completion time. :
[0112] ;
[0113] in, represents the technical requirements of the task, and f is the evaluation function. Then determine the dependencies between the sub-development tasks, including the predecessor and follow-up tasks of the task, record the dependencies of each task, and generate a task dependency graph : Define a task set , including all tasks to be assigned; for each task , record its predecessor task set and subsequent task collection , generate the dependency matrix :
[0114] ;
[0115] Among them, i and j represent the index of the task; finally, the task dependency graph is generated according to the task dependency relationship , task dependency graph Specifically, it is a directed acyclic graph, which is used to describe the execution order and dependency of tasks. In this embodiment, by analyzing various types of information of each sub-development task in the agile development task, task development information is summarized and summarized, which can effectively improve the accuracy of subsequent development task allocation, thereby improving agile development efficiency.
[0116] In an exemplary embodiment, step 205 includes: inputting the development team personnel information and task development information into a preset reinforcement learning model; converting the development team personnel information and task development information into a state space through the preset reinforcement learning model; constructing an action space composed of the possibilities of assigning sub-development tasks to different developers based on the development team personnel information and task development information; and executing strategy generation processing based on the state space and action space to obtain a task allocation strategy for agile development tasks.
[0117] For example, in the process of strategy generation processing for the reinforcement learning model, the development team personnel information and task development information can be converted into the state space through the preset reinforcement learning model. The state space here can specifically include the skill set of the developer and the complexity characteristics of the task, defining the skill set of the developer and the complexity characteristics of the task Multidimensional state space , the state space includes not only the technical capabilities of developers, but also the current load, available time, and historical performance of developers; specifically, it can be:
[0118] ;
[0119] in, represents the skill set of developer i, represents the complexity characteristics of task j, represents the current load of developer i, represents the available time of developer i, represents the historical performance data of developer i, n is the number of developers, and m is the number of tasks. Then, based on the development team personnel information and task development information, an action space consisting of the possibility of assigning sub-development tasks to different developers is constructed. , for the action space, which includes all possibilities of assigning tasks to different developers, the action space includes not only assigning tasks to developers, but also strategies for reallocating tasks and adjusting task priorities:
[0120] ;
[0121] in, Indicates that the task Assign to developers Actions, Indicates the task The priority of , l is the number of priority levels.
[0122] Finally, after extracting the state space and action space of the current data, input the current state space and action space To the reinforcement learning model, output the best strategy ;
[0123] According to the best strategy , generate task allocation plan :
[0124] ;
[0125] in, It represents the best task allocation scheme. Then the task allocation process can be performed through the best task allocation scheme.
[0126] In one embodiment, for the task allocation process, a task dependency graph can also be used. Determine the priority and sequence of tasks to ensure that critical tasks are completed first: Generate a list of task execution orders based on the task dependency matrix :
[0127] ;
[0128] in, Represents a topological sorting algorithm; according to the priority of the task and execution order , adjust the task allocation plan In this embodiment, the state space and action space are constructed by presetting the reinforcement learning model, and then the task allocation is performed by executing the strategy generation process, which can effectively improve the rationality of task allocation, achieve the best match between tasks and developers, make full use of the skills and experience of developers, and improve the efficiency and quality of task completion.
[0129] In one embodiment, the method also includes: obtaining an initial reinforcement learning model, setting the composition information of the state space and the action space in the initial reinforcement learning model, and setting an initial reward function; based on the composition information of the state space and the action space, optimizing the initial reward function through the Pareto optimal strategy, determining the comprehensive reward for each task assignment action, and obtaining an update strategy; constructing model training data based on historical development project data and historical developer information; based on the model training data, updating the parameters of the initial reinforcement learning model through the Q-learning algorithm, and optimizing the update strategy.
[0130] For example, before performing strategy generation processing by using a preset reinforcement learning model, it is also necessary to complete the model training process. At this time, it is necessary to construct the model in advance, that is, by setting the composition information of the state space and the action space, and setting the initial reward function, to complete the construction process of the reinforcement learning model. Then, based on the composition information of the state space and the action space, the initial reward function can be optimized through the Pareto optimal strategy to determine the comprehensive reward of each task assignment action and obtain the updated strategy. In this way, the reward function of the model is optimized. For the state space and action space , we can construct the reward function , give rewards or penalties based on factors such as task completion, quality, time, and developer satisfaction, and set rewards for task completion , Rewards for task quality , rewards or penalties for task completion time And developer satisfaction rewards :
[0131] ;
[0132] in, They represent the weight coefficients of task completion, quality, time and satisfaction rewards respectively. represents the completion status of task j after it is assigned to developer i, represents the quality of task j, represents the actual completion time of task j, represents the expected completion time of task j, represents the current load of developer i, Represents the available time of developer i. Then, for the reward function, a multi-objective optimization algorithm can be used to optimize the reward function, comprehensively balance task completion, quality, time and developer satisfaction, and update the strategy of the reinforcement learning model. Specifically, we can use the Pareto optimal strategy to calculate the comprehensive reward of each task assignment action and update the strategy :
[0133] ;
[0134] in, represents the Pareto optimal solution set, s represents the state space, a represents the action space, Represents the expected value of the reward for action a. After the model is built, the model training data can be constructed through historical development project data and historical developer information; based on the model training data, the parameters of the initial reinforcement learning model are updated through the Q-learning algorithm, and the update strategy is optimized.
[0135] For the construction process of model training data, the completion time of each task in the historical project can be collected ; Actual completion of tasks ;Quality assessment of tasks ; Developer participation and performance , and then integrate historical project data with the comprehensive ability scoring skill data of development team members , forming a training data set :
[0136] ;
[0137] in, represents the state space of the kth sample, represents the action space of the kth sample, represents the reward value of the kth sample, K is the total number of samples;
[0138] Finally, for the model tuning process, first initialize the parameters of the reinforcement learning model , using the Q-learning algorithm, update the Q value function , so that it is close to the actual reward function: Its formula is as follows:
[0139] ;
[0140] in, represents the discount factor, Indicates the next state, Indicates the next action. Represents the parameters of the target network; then dynamically adjusts the parameters of the reinforcement learning model through feedback from historical project data and real-time data , regularly evaluate the performance of the model and calculate the expected value of the reward for the current strategy , based on the evaluation results, adjust the model parameters To minimize the loss function :
[0141] ;
[0142] Generate new task allocation solutions by outputting optimized task allocation strategies through reinforcement learning models : ;in, It represents the optimized task allocation scheme, which can dynamically adapt to the changes in the development environment and requirements. In this embodiment, the model training data is constructed through historical development project data and historical developer information, and then the model training process is completed through these data to obtain a reinforcement learning model that can be used for strategy generation, thereby ensuring the effect of strategy generation.
[0143] In an exemplary embodiment, in step 209, the task code of the agile development task is monitored during the development process of the agile development task, and dynamic task adjustment processing is performed through metadata-driven processing, including: determining the task execution data of each sub-development task based on the task code; inputting the task execution data and development team personnel information into a preset reinforcement learning model to generate a dynamic adjustment strategy for the agile development task; and performing dynamic task adjustment processing based on the dynamic adjustment strategy.
[0144] For example, in the agile development process, task allocation can be adjusted through real-time development information. By monitoring the task code, the task execution status can be monitored in real time to obtain the actual completion time, task completion status and task quality of the task: record the execution progress of each task and update the task status; then monitor the load changes and task completion status of the developer; dynamically adjust task allocation according to the task execution status and real-time data. The dynamic task allocation adjustment process can also be achieved through reinforcement learning models, by inputting the latest task execution data and developer data To the reinforcement learning model, output the adjusted task allocation strategy ;
[0145] Generate adjusted task allocation plan :
[0146]
[0147] In this embodiment, through real-time monitoring and dynamic adjustment, it is possible to respond to changes in the project in a timely manner, optimize resource utilization, ensure that the project is completed on time, and improve the flexibility and response speed of the project. Data-driven decision support not only improves the transparency and scientific nature of project management, but also assists project managers in making more accurate and efficient decisions through real-time data analysis and feedback.
[0148] In an exemplary embodiment, the method further includes: managing the task code to obtain code management results, which include code analysis results, code update results, and code deployment optimization strategies. Analyzing and processing the static code in the task code in a metadata-driven manner, generating a code quality report, and recording the construction results and deployment results of the task code to obtain code analysis results; performing code change processing on the task code in a metadata-driven manner to obtain code change metadata, triggering code integration and code deployment processes based on the code change metadata to obtain code update results; optimizing the integration strategy and deployment strategy of the task code through the deployment optimization model to obtain a code deployment optimization strategy.
[0149] For example, during the execution of agile development tasks, the developed code can also be managed and maintained in various ways. For example, code analysis, code analysis, deployment optimization, etc. For the code analysis process, the static code in the task code can be analyzed and processed in a metadata-driven manner to generate a code quality report, and the build results and deployment results of the task code can be recorded to obtain the code analysis results. Automatically manage the code repository, perform static code analysis on the code, check the code quality and standardization, generate a code quality report, trigger the compilation and build process according to code changes, record the build results, automatically deploy the successfully built code to the test environment or production environment, and record the deployment results. At the same time, use a metadata-driven approach to manage code changes, obtain code change metadata, including changed files, change types, and the scope of change, trigger the corresponding integration and deployment processes according to the code change metadata, and generate integration and deployment plans. As for the code deployment optimization process, it can be specifically implemented through a reinforcement learning model. Similar to the process of policy generation, you can first define the state space , including code change metadata , Current build status and the current deployment status ; Define the action space , including different integration and deployment strategies; defining the reward function , rewards or penalties are given based on the build success rate, deployment success rate, and time efficiency:
[0150] ;
[0151] in, They represent the weight coefficients of build success rate, deployment success rate and time efficiency respectively, Indicates the success of the build. Indicates the quality of deployment, Indicates the deployment time, Indicates the expected completion time; finally, the integration and deployment strategies are optimized according to the reward function to generate an optimized integration and deployment plan :
[0152] ;
[0153] in, represents the parameters of the reinforcement learning model, Representing the state space and reward values in the action space; execute the optimized integration and deployment plan , monitor the construction and deployment process in real time, record the actual results, adjust the reinforcement learning model parameters according to the actual results, and continuously optimize the integration and deployment strategies. Complete the continuous optimization of code deployment in the agile development process.
[0154] In addition, for the specific development process, metadata analysis can be used to assist in development. Metadata analysis tools can be used to track project progress in real time, predict possible delays based on historical data and current progress, provide adjustment suggestions, and help optimize resource allocation and planning. Metadata can also be used to generate project status and performance analysis reports to support project management and decision-making, provide real-time data and trend analysis, and display key indicators and progress through visualization tools. Or, through metadata-driven knowledge community tools, project knowledge can be automatically collected and organized to support knowledge sharing among team members, establish a knowledge base, and record best practices and lessons learned. This application uses a metadata-driven approach to assist in optimizing the agile development process and provide strong data support for agile development, thereby ensuring development efficiency.
[0155] In a specific embodiment, the company is developing a new mobile application. The project includes front-end development, back-end development, testing and deployment. The project team consists of 10 developers, each of whom is good at different programming languages and development frameworks. In the traditional agile development process, task allocation mainly depends on the experience and judgment of the project manager, and the testing and integration links also mainly rely on manual operations, resulting in low development efficiency and difficulty in progress management. In order to solve these problems, the development process can be performed through the agile development method of this application.
[0156] First, before development, we can collect the skill data of each developer, including the programming languages they master (such as Java, Python, JavaScript), the frameworks they are proficient in (such as Spring, Django, React), and the commonly used tools (such as Git, Docker, Jenkins). At the same time, we evaluate the project experience of each developer, including the number and type of projects they have participated in and the roles they have played. Through these data, we generate a comprehensive ability score for each developer.
[0157] Then, the complexity information of the project tasks was analyzed, and the technical requirements of each development task were defined, including the required programming languages, frameworks, and tools. The expected completion time and difficulty level of the tasks were evaluated, and the dependencies between the tasks were determined, generating a task dependency graph.
[0158] The project team then initialized the reinforcement learning model, set the state space and action space, and defined the reward function. The state space of the constructed model includes information such as the developer's skill set, current load, available time, and historical performance; the action space includes all possibilities for assigning tasks to different developers. The reward function gives rewards or penalties based on factors such as task completion, quality, and time.
[0159] After that, the reinforcement learning model was trained using historical project data and developer skill data to optimize the task allocation strategy and dynamically adjust model parameters. Through training, the model can output the best task allocation strategy based on the current project's tasks and developer data.
[0160] In the actual development process of the project, the reinforcement learning model can be applied to analyze the tasks and developer data of the current project, and the tasks can be assigned to the most suitable developers according to the best strategy output by the model. The team also monitors the execution of tasks in real time, adjusts task allocation to cope with sudden changes, and ensures that key tasks are completed first.
[0161] In the testing and integration phase, the development code is tested and automated testing tools are integrated. Test cases are generated using metadata, and test cases and test sequences are optimized based on reinforcement learning algorithms. Automated testing tools automatically execute tests, record test results, and feed them back to the reinforcement learning model. In addition, code repositories can be automatically managed during the development process, and processing including code inspection, compilation and construction, and deployment pipelines can be performed. The metadata-driven approach ensures that code changes can automatically trigger the corresponding integration and deployment processes, and the integration and deployment strategies are optimized through reinforcement learning models, reducing build failures and deployment errors.
[0162] During the project implementation, the development team recorded the relevant data using the application method and the traditional method. The results are shown in Table 1 below:
[0163] It can be seen from the data in Table 1 that after using the application method, the task allocation time is significantly reduced from 10 hours to 2 hours. The development task completion time is shortened by 5 days, and the test coverage rate is increased from 70% to 90%. The test execution time is greatly reduced from 20 hours to 5 hours. The build failure rate and the number of deployment errors are also significantly reduced, from 15% and 10 times to 5% and 2 times respectively. The overall development time is shortened by 15 days, and the number of project delays is reduced from 5 times to 1 time. From the above data, it can be seen that the application method has significant beneficial effects in improving development efficiency, shortening development cycle, improving test coverage, reducing errors and improving developer satisfaction. These effects not only solve the problems of unreasonable task allocation, low automation, complex task priority and dependency management in the traditional agile development process, but also greatly improve the overall quality and delivery speed of the project.
[0164] It should be understood that, although the steps in the flowcharts involved in the above embodiments are displayed in sequence according to the indication of the arrows, these steps are not necessarily executed in sequence according to the order indicated by the arrows. Unless there is a clear explanation in this article, the execution of these steps is not strictly limited in order, and these steps can be executed in other orders. Moreover, at least a part of the steps in the flowcharts involved in the above embodiments may include multiple steps or multiple stages, and these steps or stages are not necessarily executed at the same time, but can be executed at different times, and the execution order of these steps or stages is not necessarily carried out in sequence, but can be executed in turn or alternately with other steps or at least a part of the steps or stages in other steps.
[0165] Based on the same inventive concept, the embodiment of the present application also provides an agile development device for implementing the agile development method involved above. The implementation scheme for solving the problem provided by the device is similar to the implementation scheme recorded in the above method, so the specific limitations in one or more agile development device embodiments provided below can refer to the above limitations on the agile development method, and will not be repeated here.
[0166] In an exemplary embodiment, Figure 5 As shown, an agile development device is provided, comprising:
[0167] The information search module 502 is used to obtain agile development tasks and search for development team personnel information of agile development tasks.
[0168] The task analysis module 504 is used to identify the task development information of each sub-development task in the agile development task.
[0169] The strategy generation module 506 is used to input the development team personnel information and task development information into a preset reinforcement learning model to generate a task allocation strategy for agile development tasks. The preset reinforcement learning model is trained based on historical development project data and historical developer information.
[0170] The task allocation module 508 is used to allocate sub-development tasks in the agile development task based on the task allocation strategy.
[0171] The code monitoring module 510 is used to monitor the task code of the agile development task during the development process of the agile development task, and perform code testing processing, code integration processing and dynamic task adjustment processing through metadata drive to obtain agile development results.
[0172] In one embodiment, the information search module 502 is specifically used to: obtain agile development tasks, and search for member identities of the development team for the agile development tasks; based on the member identities, search for the skill data and development record data of each development member in the development team from the member database; assign corresponding skill tags to each development member based on the skill data, and generate skill scores for the skill tags, perform project experience scoring for each development member based on the development record data, and obtain project experience scores for each development member; perform comprehensive scoring on each development member based on the skill score and project experience score, and obtain a comprehensive score for each development member; summarize the skill score, project experience score, and comprehensive score of each development member in the development team to obtain personnel information within the development team.
[0173] In one embodiment, the task analysis module 504 is specifically used to: identify the complexity information of each sub-development task in the agile development task, and determine the programming language, programming framework, and programming tools required for each sub-development task; evaluate each sub-development task in the agile development task based on the complexity information, and determine the expected completion time and task difficulty of each sub-development task; identify the dependencies between the sub-development tasks in the agile development task, and generate a task dependency graph based on the dependencies; summarize the programming language, programming framework, programming tools, expected completion time, task difficulty, and task dependency graph between sub-development tasks required for each sub-development task to obtain task development information.
[0174] In one embodiment, the strategy generation module 506 is specifically used to: input the development team personnel information and task development information into a preset reinforcement learning model; convert the development team personnel information and task development information into a state space through the preset reinforcement learning model; construct an action space composed of the possibilities of assigning sub-development tasks to different developers based on the development team personnel information and task development information; perform strategy generation processing based on the state space and action space to obtain a task allocation strategy for agile development tasks.
[0175] In one embodiment, a model training module is also included, which is used to: obtain an initial reinforcement learning model, set the composition information of the state space and the action space in the initial reinforcement learning model, and set an initial reward function; based on the composition information of the state space and the action space, optimize the initial reward function through the Pareto optimal strategy, determine the comprehensive reward of each task assignment action, and obtain an update strategy; construct model training data according to historical development project data and historical developer information; based on the model training data, update the parameters of the initial reinforcement learning model through the Q-learning algorithm, and optimize the update strategy.
[0176] In one embodiment, the code monitoring module 510 is specifically used to: determine the task execution data of each sub-development task based on the task code; input the task execution data and development team personnel information into a preset reinforcement learning model to generate a dynamic adjustment strategy for agile development tasks; and perform dynamic task adjustment processing based on the dynamic adjustment strategy.
[0177] In one embodiment, a code management module is also included, which is used to: manage the task code to obtain code management results, including code analysis results, code update results and code deployment optimization strategies. The code management module is specifically used to: analyze and process the static code in the task code in a metadata-driven manner, generate a code quality report, and record the construction results and deployment results of the task code to obtain code analysis results; perform code change processing on the task code in a metadata-driven manner to obtain code change metadata, trigger code integration and code deployment processes based on the code change metadata to obtain code update results; optimize the integration strategy and deployment strategy of the task code through the deployment optimization model to obtain a code deployment optimization strategy.
[0178] Each module in the above-mentioned agile development device can be implemented in whole or in part by software, hardware and their combination. Each of the above-mentioned modules can be embedded in or independent of the processor in the computer device in the form of hardware, or can be stored in the memory in the computer device in the form of software, so that the processor can call and execute the operations corresponding to each of the above modules.
[0179] In an exemplary embodiment, a computer device is provided. The computer device may be a server, and its internal structure diagram may be as shown in FIG. Figure 6 As shown. The computer device includes a processor, a memory, an input / output interface (Input / Output, referred to as I / O) and a communication interface. The processor, the memory and the input / output interface are connected through a system bus, and the communication interface is connected to the system bus through the input / output interface. The processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program and a database. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The database of the computer device is used to store data related to agile development. The input / output interface of the computer device is used to exchange information between the processor and an external device. The communication interface of the computer device is used to communicate with an external terminal through a network connection. When the computer program is executed by the processor, an agile development method is implemented.
[0180] Those skilled in the art will understand that Figure 6 The structure shown in the figure is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than those shown in the figure, or combine certain components, or have a different arrangement of components.
[0181] In one embodiment, a computer device is further provided, including a memory and a processor, wherein a computer program is stored in the memory, and the processor implements the steps in the above method embodiments when executing the computer program.
[0182] In one embodiment, a computer-readable storage medium is provided, storing a computer program, which implements the steps in the above method embodiments when executed by a processor.
[0183] In one embodiment, a computer program product or computer program is provided, the computer program product or computer program includes computer instructions, the computer instructions are stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device performs the steps in the above-mentioned method embodiments.
[0184] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with relevant regulations.
[0185] A person of ordinary skill in the art can understand that all or part of the processes in the above-mentioned embodiment method can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to the memory, database or other medium used in the embodiments provided in the present application can include at least one of non-volatile memory and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. As an illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM). The database involved in each embodiment provided in this application may include at least one of a relational database and a non-relational database. Non-relational databases may include distributed databases based on blockchains, etc., but are not limited to this. The processor involved in each embodiment provided in this application may be a general-purpose processor, a central processing unit, a graphics processor, a digital signal processor, a programmable logic device, a data processing logic device based on quantum computing, an artificial intelligence (AI) processor, etc., but are not limited to this.
[0186] The technical features of the above embodiments may be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this application.
[0187] The above-described embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the present application. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the attached claims.
Claims
1. An agile development method, It is characterized in that The method comprises: Obtaining an agile development task and searching for development team personnel information for the agile development task; Identifying task development information of each sub-development task in the agile development task; Inputting the development team personnel information and the task development information into a preset reinforcement learning model to generate a task allocation strategy for the agile development task, wherein the preset reinforcement learning model is trained based on historical development project data and historical developer information; Allocate and process the sub-development tasks in the agile development task based on the task allocation strategy; During the development process of the agile development task, the task code of the agile development task is monitored, and code testing processing, code integration processing and dynamic task adjustment processing are performed through metadata drive to obtain an agile development result.
2. The method according to claim 1, It is characterized in that The obtaining of the agile development task and searching for the development team personnel information of the agile development task include: Obtaining an agile development task, and searching for member identities of a development team for the agile development task; Based on the member identity identifier, searching the member database for the skill data and development record data of each development member in the development team; Assigning corresponding skill labels to each development member according to the skill data, generating skill scores for the skill labels, and performing project experience scoring processing for each development member according to the development record data to obtain project experience scores for each development member; Performing a comprehensive scoring process on each development member based on the skill score and project experience score, and a comprehensive score of each development member; Summarize the skill scores, project experience scores and comprehensive scores of each development member in the development team to obtain the personnel information within the development team.
3. The method according to claim 1, It is characterized in that The task development information for identifying each sub-development task in the agile development task includes: Identify the complexity information of each sub-development task in the agile development task, and determine the programming language, programming framework, and programming tool required for each sub-development task; Based on the complexity information, each sub-development task in the agile development task is evaluated and processed to determine the expected completion time and task difficulty of each sub-development task; Identify the dependency relationships between the sub-development tasks in the agile development task, and generate a task dependency graph based on the dependency relationships; The programming language, programming framework, programming tools, expected completion time, task difficulty, and task dependency graph between the sub-development tasks required for each sub-development task are summarized to obtain task development information.
4. The method according to claim 1, It is characterized in that The step of inputting the development team personnel information and the task development information into a preset reinforcement learning model to generate a task allocation strategy for the agile development task includes: Inputting the development team personnel information and the task development information into a preset reinforcement learning model; The development team personnel information and the task development information are converted into a state space through the preset reinforcement learning model; Based on the development team personnel information and the task development information, construct an action space consisting of possibilities of assigning sub-development tasks to different developers; A strategy generation process is performed based on the state space and the action space to obtain a task allocation strategy for the agile development task.
5. The method according to claim 1, It is characterized in that The method further comprises: Obtaining an initial reinforcement learning model, setting composition information of a state space and an action space in the initial reinforcement learning model, and setting an initial reward function; Based on the composition information of the state space and the action space, the initial reward function is optimized by a Pareto optimal strategy to determine the comprehensive reward of each task assignment action and obtain an updated strategy; Construct model training data based on historical development project data and historical developer information; Based on the model training data, the initial reinforcement learning model is updated with parameters through a Q-learning algorithm, and the update strategy is optimized.
6. The method according to claim 1, It is characterized in that Monitoring the task code of the agile development task during the development process of the agile development task, and performing dynamic task adjustment processing through metadata drive includes: Determine task execution data for each sub-development task based on the task code; Inputting the task execution data and the development team personnel information into the preset reinforcement learning model to generate a dynamic adjustment strategy for the agile development task; Dynamic task adjustment processing is performed based on the dynamic adjustment strategy.
7. The method according to any one of claims 1 to 6, It is characterized in that The method further comprises: Managing the task code to obtain a code management result, wherein the code management result includes a code analysis result, a code update result, and a code deployment optimization strategy; The managing of the task code to obtain the code management result includes: Analyze and process the static code in the task code in a metadata-driven manner, generate a code quality report, and record the construction result and deployment result of the task code to obtain a code analysis result; Performing code change processing on the task code in a metadata-driven manner to obtain code change metadata, triggering code integration and code deployment processes based on the code change metadata to obtain a code update result; The integration strategy and deployment strategy of the task code are optimized through the deployment optimization model to obtain a code deployment optimization strategy.
8. An agile development device, It is characterized in that The device comprises: An information search module is used to obtain agile development tasks and search for development team personnel information of the agile development tasks; A task analysis module, used to identify task development information of each sub-development task in the agile development task; A strategy generation module, used to input the development team personnel information and the task development information into a preset reinforcement learning model to generate a task allocation strategy for the agile development task, wherein the preset reinforcement learning model is trained based on historical development project data and historical developer information; A task allocation module, used for allocating and processing sub-development tasks in the agile development task based on the task allocation strategy; The code monitoring module is used to monitor the task code of the agile development task during the development process of the agile development task, and to perform code testing, code integration and dynamic task adjustment through metadata drive to obtain agile development results.
9. A computer device comprising a memory and a processor, wherein the memory stores a computer program. It is characterized in that When the processor executes the computer program, the steps of the method according to any one of claims 1 to 7 are implemented.
10. A computer-readable storage medium having a computer program stored thereon, It is characterized in that When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 7 are implemented.
