Application of CMM in bank software development

Source: Internet
Author: User

Application of CMM in bank software development

-- Maxijia

CMM (Software Capability Maturity Model) is a Software evaluation standard developed by the Software Engineering Institute (SEI) of Carnegie Mellon University (CMU, it is mainly used to evaluate and improve the software development process and software development capability. This standard has been successfully applied in the United States, India, Japan, Europe and other places since it was proposed in 1991 and has become an industrial standard for the software industry. Although CMM has attracted the full attention of the software industry, most enterprises still have no clue about how to apply CMM to enterprise or project management. For the Technology Department of the Bank, which belongs to the software development department in the non-software industry, whether the CMM can be used to optimize the project development process is the question to be discussed in this article.

 

The Software Capability describes the extent to which the expected results can be achieved by following the software process, that is, the "fluctuation band" of the project process curve of a software enterprise during a project ", that is, the scope of changes in the project around the project plan development process. As the maturity level increases, in the project process, the gap between the target results and the actual results becomes smaller and smaller, the project's predictability will become higher and higher, and the scope of changes in the actual results in the project process will become smaller and smaller.

CMM focuses on organizational and management issues at a higher level of abstraction. It only tells us what to do, but does not tell us how to do it. It describes the attributes and goals that a software enterprise needs to focus on in process management, but it does not specifically describe how to achieve these objectives at the operational level. Because different software enterprises have different sizes and management modes, CMM is not a panacea for treating all kinds of diseases, nor is it an immediate management technology, it is only a method to continuously improve the enterprise's own capabilities. In specific applications, it should also be combined with factors such as the production process, management model, and function distribution of the enterprise, only by establishing a set of software processes suitable for the production and development of the enterprise can the enterprise's software projects find the best balance between cost, progress and quality.

 

The CMM official document also says that when there are fewer than 50 employees in an enterprise, horizontal, vertical, and in-depth tailoring of each KPA of the CMM is required. We are the Science and Technology Department of Financial Institutions and have only 40 employees. Therefore, the huge CMM system does not fully apply to us and must be based on our actual needs and management features, make appropriate adjustments to the CMM System.

The software development departments of banks have the following differences compared with general software enterprises:

1. General Software Enterprises have market risks of product release and the freedom of product development. However, we do not need to release products according to market requirements, our projects must also adapt to the enterprise's development strategy and help the enterprise's development.

2. A general software enterprise only needs to maintain the warranty nature of the software after the project completes the delivery of the software product, and we need to perform long-term operation management and upgrade maintenance for the product, in addition, the software attributes and functions are constantly modified based on the expansion of the business scale.

3. Generally, software enterprises are built up by projects, and projects that make profits can be profitable. However, we belong to the internal Software Development Department of the Bank, and all the projects undertaken are for the enterprise.

Based on the scope of business needs, the requirements are divided into two types:

Project-level requirements, new subsystems, mainly through contract outsourcing or internal project team development.

Transaction-level requirements: Add new transactions or modify the original transactions on the basis of the original system, which is mainly completed by the internal project team.

Based on some of our actual situations, in terms of CMM tailoring, we can expand vertically to the level 4 of the level 2 of the CMMS Level 3, while retaining most of the KPA of the level 2 of the CMMS Level 2, on this basis, we will add the KPA for Level 3 inter-group coordination, integration of software management, training syllabus, and Level 4 software quality management for Level 4 of CMMS, in depth based on our own needs, cut down the specific activities of each KPA.

 

Here, we will discuss the KPA of level 2 CMMs. The core of level 2 of CMMs is to implement document management of projects, which consists of six KPA: requirement Management (RM) and Software Project Plan (SPP ); software project tracking and monitoring (SPTO); sub-contract management (SSM); Software Quality Assurance (SQA); Software Configuration Management (SCM ).

· Requirement Management (RM)

Requirements are the starting point and end point of the entire project, and the basis for dependencies between other links in the project process. However, in the process of software project development, as the user's understanding of the system and business scope expand, the demand will change; on the other hand, the product will go through analysis, design, coding, and other steps in the development process. Due to the different levels of knowledge and concerns of relevant developers in each stage, the understanding of requirements will also lead to deviations.

The purpose of requirement management is to reach a consensus between the user and the project that meets the user's needs and maintain this consensus. It puts forward the corresponding goals for these two questions. Software requirements may be part of the system requirements (part of the system engineering) or all (pure software engineering ). In either case, the first goal of demand management is that software requirements should be controlled and a baseline that can be used for software engineering and management processes can be generated. The second goal of demand management is to ensure that the software project plan, development activities, products and software requirements are consistent, and the final project results can meet the needs of users.

 

· The Software Project Plan (SPP) is the skeleton of the entire project process, supporting the entire project process. However, most software developers do not pay enough attention to it. The premise of a software project plan is to have a reasonable and effective plan, and then have a strong ability to execute it. For some people, the project is like a black box, invisible, and it is not easy to make a reasonable and effective plan for it. Our colleagues often handle the task within one month as soon as they receive the project, but are not expected to allocate resources and risks in the project, the project progress is delayed.

To make a reasonable project plan, we first need to estimate the size, resource requirements and risks of the project. The software plan should be scheduled to include all project activities and all participating responsibilities, which should be documented to ensure effective delivery of the plan to all project participants. Prior to implementation of the project plan, project participants should recognize the project responsibilities and supervise the implementation of the project plan with administrative functions, these identity and supervision are the basic guarantees for the effectiveness of the project plan.

 

· Software project tracking and monitoring (SPTO)

The software project tracking and monitoring KPA in CMM involves three keywords: visibility, checkpoint, and revision plan. By setting checkpoints during the project process, you can view the visibility of the project process, discover deficiencies, and then revise the plan.

Because a software project process is a combination of logical activities, it does not have the same visibility as a physical process. The purpose of software project tracking and monitoring is to provide full visibility into the project's actual process, so as to ensure effective solutions when the project executes a deviation from the project plan. Project tracking is based on plans, and appropriate checkpoints should be set for a project. Compare the execution results, execution status, and software project plans at the check point. If a large difference is found, take appropriate steps for adjustment. If necessary, the plan should also be modified and maintained. If the responsibility of some projects is changed during the change plan, these changes must be recognized by the responsible party.

 

· Subcontract Management (SSM)

Sub-contract management is important for financial institutions. As mentioned above, we have some large projects, for example, we outsource some plug-ins or some underlying platform development projects to software companies. The benefits of doing so can save the human and material resources that must be maintained by our Organization on a daily basis, and allow us to focus more on secondary development related to financial services. This also brings about the issue of sub-contract management. We mainly focus on two aspects of subcontract management: how to select Software contractors and how to monitor and manage contracted projects. We choose software contractors by measuring the capabilities of software companies. Of course, we also need to consider factors such as capital costs, which are generally done through bidding. For the monitoring and management of contracted projects, Party A and Party B should rely mainly on communication. Through continuous interaction, Party A can have a holistic understanding and grasp of the project progress. There are many communication methods, such as direct consultation, standardized documents, technical discussion meetings, and weekly project reports.

 

· Software Quality Assurance (SQA)

Software Quality Assurance is to ensure the quality of software from the perspective of project process management. Since the process used to develop software systems or software products is a key factor determining the success of the project, the work of software quality assurance is to review and audit software activities and software products. The review and audit are based on the procedures and standards that are provided for the project. Software Quality Assurance activities cannot be random and must be fully discussed and negotiated. Relevant organizations and individuals should understand the results of quality assurance activities and quality assurance activities. To resolve the disputes and differences between quality assurance organizations and development organizations regarding the evaluation of certain project development activities or products, enterprises must define a higher level of management organization, resolves these disputes and differences.

 

· Software Configuration Management (SCM)

The software has to go through multiple stages from Requirement Analysis to final product submission. Different Versions of work products in each stage are generated, the purpose of Software Configuration Management is to establish and maintain product integrity throughout the entire life cycle. The key process domain of CMM Software Configuration Management follows the concept of traditional Software Configuration Management. Its basic work is to identify software configuration items, establish a product baseline library, and systematically control the modification of configuration items.

 

Financial institutions have higher requirements on the quality of software projects than general software projects, and stricter requirements on operation and maintenance, we also need to increase the level 3 inter-group coordination, integrate software management, training outline KPA, and Level 4 software quality management to improve our software process.

 

The Application of CMM in the software development department of the bank can continuously improve the development efficiency of the Department, make the project progress more strict, ensure the quality, and manage more orderly, but the premise is to use it properly. It does not have a fixed pattern, nor a definite application framework, nor clearly guides us in how to implement it. Therefore, our science and technology department needs to crop it based on our actual situation, explore a set of software project processes for banks.

 

 

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.