Disclosure of Invention
The embodiment of the application provides a management method, equipment and medium for a software research and development project, which are used for solving the following technical problems: the existing task item updating method is easy to have the problem that updating is not timely and accurate.
The embodiment of the application adopts the following technical scheme:
in a first aspect, an embodiment of the present application provides a method for managing a software development project, where the method includes: responding to the fact that development codes corresponding to task items are submitted to a code warehouse, and triggering a pipeline to continuously integrate the development codes; checking the task item state corresponding to the task item; when the task item state is not in process, updating the task item state and task item updating content; after the continuous integration of the development code is completed, triggering a pipeline to perform continuous deployment of the development code; checking the task item state corresponding to the task item; and when the task item state is not completed, updating the task item state and the task item updating content.
In one or more embodiments of the present description, before the development code corresponding to the task item is submitted to the code repository, the method further comprises: configuring a minimum work item in a software development project management function module, wherein the minimum work item is configured as a task item, and the task item is used for disassembling development requirements; configuring a task item state corresponding to the task item, wherein the task item state at least comprises: pending, in process, and completed.
In one or more embodiments of the present disclosure, for the persistent integration, the triggering mode of the pipeline is automatic triggering; for the continuous deployment, the triggering mode of the pipeline is automatic triggering or manual triggering.
In one or more embodiments of the present description, the stage of continuously integrating includes: compiling codes and compiling the development codes; automatically testing, wherein an automatic testing tool is used for carrying out unit testing on the development codes; static code analysis, wherein static analysis is carried out on the development codes by utilizing a static code analysis tool; uploading the product, namely uploading the compiled code file to a product warehouse; making a mirror image, making a dock mirror image and uploading the mirror image to a mirror image warehouse; and deploying the mirror image, namely deploying the docker mirror image in a K8S environment for testing.
In one or more embodiments of the present description, the phase sequence of the code compilation, mirroring and mirror deployment is not modifiable.
In one or more embodiments of the present description, the stage of sustained deployment includes: compiling codes and compiling the development codes; automatically testing, wherein an automatic testing tool is used for carrying out unit testing on the development codes; static code analysis, wherein static analysis is carried out on the development codes by utilizing a static code analysis tool; uploading the product, namely uploading the compiled code file to a product warehouse; making a mirror image, making a dock mirror image and uploading the mirror image to a mirror image warehouse; mirror image deployment, namely deploying the docker mirror image in a K8S environment for production; automatically monitoring, namely monitoring the deployed development codes by using an automatic monitoring tool so as to detect problems in the codes; and automatically rolling back, and rolling back the development codes by using an automatic delivery tool.
In one or more embodiments of the present description, the phase sequence of the code compilation, mirroring and mirror deployment is not modifiable.
In one or more embodiments of the present disclosure, when the task item status is not in process, the task item update content includes at least: updating people, updating time, comments, residual estimated time and records; the comments are added through the submission information when the development codes are submitted to a code warehouse, the residual estimated time is determined through the time difference between the planned completion time of continuous integration and the integrated elapsed time, and the record is added through the content needing to be modified in the task item; when the task item state is not completed, the task item updating content further comprises the actual time, and the actual time is determined by the time difference between the start of the creation of the task item and the completion of continuous deployment.
In a second aspect, an embodiment of the present application further provides a device for managing a software development project, where the device includes: at least one processor; and a memory communicatively coupled to the at least one processor; wherein the memory stores instructions executable by the at least one processor to enable the at least one processor to perform a method of managing a software development project as described above.
In a third aspect, embodiments of the present application also provide a non-volatile computer storage medium having stored thereon computer-executable instructions configured to perform a method of managing a software development project as described above.
The management method, the device and the medium for the software research and development project provided by the embodiment of the application have the following beneficial effects:
1) The task item can be automatically updated, the problem that the task item is not timely and accurately updated manually can be effectively avoided, and the task progress is timely and accurately updated.
2) By linking the continuous integration and continuous deployment function module with the software development project management function module/system, the task item is automatically updated when the continuous integration and continuous deployment operation is carried out, so that the workload of a project developer in developing an operation and maintenance platform is reduced, the workload generated by manually updating the task item by switching the software development project management function module is reduced, and the workload of the developer is further reduced, and the development cost is reduced.
Detailed Description
In order to make the technical solution of the present application better understood by those skilled in the art, the technical solution of the present application will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present application, and it is apparent that the described embodiments are only some embodiments of the present application, not all embodiments. All other embodiments, which can be made by one of ordinary skill in the art based on the embodiments herein without making any inventive effort, shall fall within the scope of the present application.
The embodiment of the application provides a management method, equipment and medium for a software development project, which are used for carrying out software development work based on a development operation and maintenance platform. The software research and development project management function module can track project progress, improve project progress transparency, quickly respond to project changes and timely adjust project plans. Therefore, the embodiment of the application links the continuous integration and continuous deployment function module of the development operation and maintenance platform with the software research and development project management function module, thereby reducing the workload of developers and avoiding the problems of untimely and inaccurate task item updating.
The method in the embodiment of the present application will be described in detail with reference to the accompanying drawings.
Fig. 1 is a flowchart of a method for managing a software development project according to an embodiment of the present application, where, as shown in fig. 1, the project management method in the embodiment of the present application at least includes the following execution steps:
and step 101, responding to the fact that development codes corresponding to the task items are submitted to a code warehouse, and triggering a pipeline to continuously integrate the development codes.
In the method for managing the software development project, continuous integration, continuous deployment and linkage of task items are mainly achieved, so that in one example of the method, task items are firstly configured, and particularly development management staff can divide development contents according to project requirements to configure minimum work items, the minimum work items are represented by the task items, and meanwhile, after the task items are configured, task item states of the task items are required to be configured, and the task item states are configured to be processed, processed and completed.
After the configuration work is completed, a developer of the software development project can develop the software development project according to the task item, after the development is completed, the development code is uploaded to a code warehouse, and after the development is completed, the pipeline automatically triggers the continuous integration test of the development code.
In one or more possible implementations of embodiments of the application, the foregoing continuous integration includes the following stages: compiling codes and compiling the development codes; automatically testing, wherein an automatic testing tool is used for carrying out unit testing on the development codes; static code analysis, wherein static analysis is carried out on the development codes by utilizing a static code analysis tool; uploading the product, namely uploading the compiled code file to a product warehouse; making a mirror image, making a dock mirror image and uploading the mirror image to a mirror image warehouse; and deploying the mirror image, namely deploying the docker mirror image in a K8S environment for testing. It should be noted that, the foregoing stages may be deleted or added according to the actual project requirements, but the sequence of the three stages of code compiling, mirror image creation and mirror image deployment is not changeable.
Step 102, checking the task item state corresponding to the task item.
After the continuous integration is triggered, the task item state corresponding to the task item needs to be detected, and specifically, whether the state of the task item is in process or not is detected.
And step 103, updating the task item state and the task item updating content when the task item state is not in process.
If the status of the task item is not in process, the status of the task item needs to be updated to be in process, and the task item update content needs to be updated at the same time, in one example of the present application, the task item update content at least includes: updating people, updating time, comments, residual estimated time and records; the comment is added through the submitting information when the development codes are submitted to the code warehouse, the residual estimated time is determined through the time difference between the planned completion time of continuous integration and the integrated elapsed time, and the content addition required to be modified in the task item is recorded.
Further, if the task item status is in process, only the task item update content needs to be updated, and the task item status does not need to be updated.
And 104, triggering a pipeline to perform continuous deployment of the development code after the continuous integration of the development code is completed.
Continuous integration and continuous deployment are the requisite test procedures in software development projects, and therefore, after the continuous integration test is completed, the pipeline is automatically or manually triggered to perform continuous deployment of development codes.
In one or more possible implementations of embodiments of the application, the foregoing continuous deployment includes the following stages: compiling codes and compiling the development codes; automatically testing, wherein an automatic testing tool is used for carrying out unit testing on the development codes; static code analysis, wherein static analysis is carried out on the development codes by utilizing a static code analysis tool; uploading the product, namely uploading the compiled code file to a product warehouse; making a mirror image, making a dock mirror image and uploading the mirror image to a mirror image warehouse; mirror image deployment, namely deploying the docker mirror image in a K8S environment for production; automatically monitoring, namely monitoring the deployed development codes by using an automatic monitoring tool so as to detect problems in the codes; and automatically rolling back, and rolling back the development codes by using an automatic delivery tool.
Similarly, the aforesaid stages of continuous deployment can be deleted or added according to the actual requirements of the software development project, but the sequence of the three stages of code compiling, mirror image making and mirror image deployment in these stages cannot be changed, and at the same time, the three stages cannot be deleted.
Step 105, checking the task item state corresponding to the task item.
After the pipeline is triggered to perform continuous deployment, whether the task item state corresponding to the task item is completed or not needs to be checked.
And step 106, updating the task item state and the task item updating content when the task item state is not completed.
When it is checked that the task item status is not completed, the task item status needs to be updated to be completed, and the task item update content needs to be updated at the same time.
In order to explain the project management method in more detail in the embodiment of the application, the embodiment of the application is also described in the following supplementary way.
1) Software development project management configuration
The minimum work item of the software development project is configured as a task item, and the task item state and state circulation are configured at the same time.
2) Description of continuous Integrated implementation
The continuous integration flow focuses on the integration, construction and testing of codes, and aims to discover and solve problems as soon as possible, ensure the quality of codes and enable the codes to be integrated into trunk branches more easily. The focus of continuous integration is on automated construction, automated testing and automated quality inspection of the code in order to ensure the quality and reliability of the code. For example, in a continuous integration process, developers frequently submit code to a code warehouse, automated build and test tools automatically build and test code, and timely feedback test results and code quality to the developers.
In one example of the application, the continuous integration process is based on pipeline implementation, the triggering mode of the pipeline is automatic triggering, and when the code warehouse has code submission, the pipeline is automatically triggered to complete the continuous integration process, and the continuous integration stage is shown in the following table.
In one example of the present application, the stages of continuous integration shown in the above table may be pruned and ordered according to the needs of the actual development work, where the sequence of the three stages of code compiling, mirroring and mirror deployment is not modifiable, and the three stages cannot be deleted, and the overall sequence is: code compiling, mirror image making and mirror image deployment.
3) Description of continuous deployment implementation
The continuous deployment flow focuses on the deployment, delivery and operation of code, and aims to rapidly and reliably deploy the code into a production environment, and ensure the reliability and consistency of delivery. The focus of continuous deployment is on automated deployment, automated monitoring, and automated rollback, with the goal of ensuring that code can be deployed into a production environment quickly and reliably. For example, in a continuous deployment process, an automated deployment tool will automatically deploy built code into a testing, pre-release and production environment, an automated monitoring tool will monitor the deployed code, and an automated rollback tool will automatically rollback the deployed code when a problem arises.
In one example of the present application, the continuous deployment is based on a continuously integrated flow, and the pipeline deployment process can be triggered manually and automatically, and the complete stage of continuous deployment is shown in the following table.
In one example of the present application, the stages of continuous deployment shown in the above table may be pruned and ordered according to the needs of the actual development work, where the sequence of the three stages of code compiling, mirroring and mirror deployment is not modifiable, and the three stages cannot be deleted, and the overall sequence is: code compiling, mirror image making and mirror image deployment.
4) Continuous integration and task item linkage description
Fig. 2 is a flowchart of linkage between continuous integration and a software development project management system in an application scenario provided by an embodiment of the present application, where linkage between the software development project management system and a task term is, as can be seen from fig. 2, a detailed process of linkage between continuous integration and task term is as follows:
(1) creating task items, namely after a project manager collects requirements, disassembling the requirements at a software research and development project management function module, and creating the task items;
(2) developing tasks, wherein a developer performs actual development locally based on a development operation and maintenance platform according to the created task items;
(3) submitting codes, namely submitting the codes to a code warehouse by using Git;
(4) the integrated test, each time code is submitted, the automatic execution of the pipeline is triggered, and after the execution of the pipeline is completed, the code is deployed to an integrated test environment for testing;
(5) checking the state of a task item, submitting codes to trigger a pipeline to perform code integration, wherein the task item is started to be actually developed, and checking whether the state of the current task item is in process or not is needed;
(6) when the task item state is modified and code continuous integration is carried out, if the task item state is not in the 'processing' state, the task item state needs to be updated into the 'processing' state, and if the task item state is in the 'processing' state, the task item state does not need to be updated, and only other contents of the task item need to be updated.
Specifically, when the update task item state is the "in process" state, the task item content that needs to be updated is as follows:
meanwhile, when the task item state is in the "in process" state, the update content of the task item is as follows:
5) Continuous deployment and task item linkage specification
Fig. 3 is a flowchart of linkage between continuous deployment and a software development project management system in an application scenario provided by an embodiment of the present application, where linkage between the software development project management system and a task term is, as can be seen from fig. 3, a detailed process of linkage between continuous deployment and the task term is as follows:
(1) the integrated test shows that the continuous deployment of the production environment can be carried out after the development content of the task item completes the continuous integrated test;
(2) the deployment and continuous deployment flow is based on the continuous integration flow, and the deployment process is carried out on the basis of the continuous integration. After the development code based on the task item content is deployed to the production environment, it indicates that the task item has been completed.
(3) Checking the state of a task item, and checking whether the state of the current task item is a finished state or not when deploying codes;
(4) after the code is deployed, the task item state is required to be updated to be completed if the task item state is not in the completed state, and if the task item state is in the completed state, the task item state is not required to be updated and only other contents of the task item are required to be updated.
Specifically, when the updated task item status is the "completed" status, the task item contents that need to be updated are as follows:
meanwhile, when the task item state is in the completed state, the update content of the task item is as follows:
thus, continuous integration of the development operation and maintenance platform and linkage between the continuous deployment functional module and the software research and development project management functional module are completed, so that the task item state can be timely and accurately updated.
Based on the same inventive concept, the embodiment of the application also provides a management device for a software development project, and the structure of the management device is shown in fig. 4.
Fig. 4 is a schematic structural diagram of a management device for a software development project according to an embodiment of the present application. As shown in fig. 4, the management apparatus 400 for a software development project in an embodiment of the present application specifically includes: at least one processor 401; and a memory 403 communicatively coupled (via bus 402) to the at least one processor 401; the memory 403 stores instructions executable by the at least one processor 401 to enable the at least one processor 401 to perform a method of managing a software development project as described in the above embodiments.
In one or more possible implementations of the embodiments of the present application, the foregoing processor is configured to execute, in response to submitting a development code corresponding to a task item to a code repository, trigger a pipeline to perform persistent integration of the development code; checking the task item state corresponding to the task item; when the task item state is not in process, updating the task item state and task item updating content; after the continuous integration of the development code is completed, triggering a pipeline to perform continuous deployment of the development code; checking the task item state corresponding to the task item; and when the task item state is not completed, updating the task item state and the task item updating content.
In addition, embodiments of the present application provide a non-volatile computer storage medium having stored thereon computer-executable instructions configured to perform a method of managing a software development project as described above.
In one or more possible implementations of the embodiments of the present application, the foregoing computer-executable instructions are configured to trigger a pipeline to perform a persistent integration of development code corresponding to a task item in response to the development code being submitted to a code repository; checking the task item state corresponding to the task item; when the task item state is not in process, updating the task item state and task item updating content; after the continuous integration of the development code is completed, triggering a pipeline to perform continuous deployment of the development code; checking the task item state corresponding to the task item; and when the task item state is not completed, updating the task item state and the task item updating content.
It will be appreciated by those skilled in the art that the present description may be provided as a method, system, or computer program product. Accordingly, the present specification embodiments may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present description embodiments may take the form of a computer program product on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) having computer-usable program code embodied therein.
The present description is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the specification. It will be understood that each flow and/or block of the flowchart illustrations and/or block diagrams, and combinations of flows and/or blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
It should also be noted that the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one … …" does not exclude the presence of other like elements in a process, method, article or apparatus that comprises the element.
The description may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The specification may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
In this specification, each embodiment is described in a progressive manner, and identical and similar parts of each embodiment are all referred to each other, and each embodiment mainly describes differences from other embodiments. In particular, for apparatus, devices, non-volatile computer storage medium embodiments, the description is relatively simple, as it is substantially similar to method embodiments, with reference to the section of the method embodiments being relevant.
The foregoing describes specific embodiments of the present disclosure. Other embodiments are within the scope of the following claims. In some cases, the actions or steps recited in the claims can be performed in a different order than in the embodiments and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.
The foregoing is merely one or more embodiments of the present description and is not intended to limit the present description. Various modifications and alterations to one or more embodiments of this description will be apparent to those skilled in the art. Any modification, equivalent replacement, improvement, or the like, which is within the spirit and principles of one or more embodiments of the present description, is intended to be included within the scope of the claims of the present description.