Soft Audit overview・Target 4: Auditing design / implementation capabilities (1/2) 

08/01/2021Audit for soft-Develop..

4. Development technology / design and implementation capabilities first confirm information sharing with technical and process teams

In the articles so far, we have introduced the requirements that are the entrance to the development contractor and the test that is the exit from the development contractor regarding the audit target of the software development audit. Next is the introduction of the audit target, which is the technical ability related to software design and implementation , which connects the entrance and exit of the actual software opening .

Regarding the technical capabilities of design and implementation, Father Gutara confirmed the following two areas.

  • Ability of software development leader
  • Technical capabilities of the software development organization as an organization

The ability of the first software development leader is also introduced in the article for the purpose of overview and audit, so please refer to that. Here, I would like to introduce the technical capabilities of the second organization in a little more detail.

You don’t know what the technical capabilities of an organization are, what kind of organizational system is used for software development? What kind of mechanism is there to support the development work?  That’s it. How complete is the system to support the development work of team leaders and software development, who are the main players in software development? In other words. Specifically, in the software development audit, we confirmed the status of the development contractor’s organization for the following items.

  • Presence or absence of technical espart team
  • Existence of software development process improvement team
  • Existence of in-house technical information / bug information sharing system
  • Checklist for design reviews and code reviews
  • Status of static / dynamic analysis tools for source code
  • How automated testing works and how to use it

Let’s introduce these in order.

With or without a team of technical experts

Various technologies are required for software development . Technology related to the hardware to be adopted, technology related to the software library to be used, technology related to the application to be developed, technology related to the site where the application is used. It would be nice if the development team had all the software engineers with the necessary technology, but such an ideal development project is rare.

When there is a shortage of software engineers who know a certain technology with only the members of the development team, it would be helpful if the software engineers who know the technology well can support from outside the team . However, if the software engineer also belongs to another development team and the work of his own development team is busy, he will not be able to support him as much as he wants.

Therefore, we gather expert engineers who are familiar with technology to form a special team , and that team does not work as a development team for specific software, but supports design and implementation reviews at the request of other development teams. to perform only such technical assistance as the company might well have a special team like that.

The name of the special team varies from expert team to architect team , but in short , it is a group of engineers who are familiar with technology, and it is a team that provides technical support in the form of reviews as needed. If you have a team like this, you can think of it as having a high level of organizational technical skills.

Existence of software development process improvement team

The software development process improvement team, which is often called SEPG (Software Engineering Process Group), is the team responsible for promoting the construction and improvement of the software development process . You are reading this article. Does your company have a SEPG organization or team?

To develop good software, you need two things: high technical ability related to software and high ability related to software development process. Simply put, if you have the technical ability and the development procedure is good, you can make good software , so it’s actually a very simple story. And while the technical expert team introduced in the previous chapter is a team for high technical ability, the software development process improvement team is a team for a good development process.

Whether or not this software development process improvement team (SEPG) exists in the development organization as a team independent of the normal software development team will greatly change the ability to design and implement software. Its suitable for product build a company-wide standard of software development process work and to, the development team to select the required points from the company-wide standard development process in a separate development project tailor to a dedicated software development process , etc., soft This is the activity of the development process improvement team.

Since the results of these activities are not directly related to the functions and performance realized as the final software, the activity results of the software process improvement team are often invisible, but software development as an organization. It greatly contributes to ability.

Is the person in charge of the software development process improvement team clear?

Another thing that needs to be confirmed in relation to the Software Development Improvement Team (SEPG) is whether a top engineer has been selected as the person in charge of SEPG . That is. Dr. Humphrey, who is said to be the creator of CMM, raised the following four qualities necessary for the person in charge of SEPG.

  • The responsible person must be enthusiastic about guiding the change process.
  • The responsible person must have the ability to understand and solve problems both technically and politically.
  • The responsible person must be respected by the parties involved.
  • Responsible person must get the support of the manager

If all of this can be met, I think that the person on that day will be able to manage the actual software development team as a top engineer. For the company, I would like such people to demonstrate their abilities in the actual software development field. However, by assigning such excellent human resources to the person in charge of SEPG who does not directly develop software, the enthusiasm of top management to improve the software development process will be conveyed to the whole company, and the company as a whole will move in a good direction. I think that is what Dr. Free teaches.

Is there an in-house time information / bug information sharing system?

There are various in-house technical information / bug information sharing systems, but for example, it is a database that collects the following information.

  • Technical database of specifications, reference materials, sample code, etc. related to a certain technology
  • A test database that classifies the contents of system tests of our products by function
  • A bug database that categorizes bugs found in the development of in-house products and how to fix them by function

In short, the technique surgery information and test cases and experienced so far bug information about, can be extracted easily from the past of the development example of a house is a database, such as. It can be said that it is a database for reusing past development assets, which wants to start with information that can be used as a reference in the past, rather than starting design from scratch in software development .

If the scale of the software development organization is small and there are only three software engineers in total, there is no need to create a database. Just ask the person next to you and you’re good to go. However, if there are more than 30 software engineers and they have been developing various software for more than 10 years, the accumulated technical information will be large, so it is difficult to retrieve it unless it is in the database. not.

It takes a certain amount of man-hours to create a database and maintain its contents, but it can be expected to be more effective than the cost, so I sometimes see companies that create such databases. However, in the case of overseas, the technology belongs to the individual, and each engineer will change jobs to a company with high income by using his own technology as a weapon, so the idea is to disclose the technology that each person has free of charge. Please note that many countries do not have it.

In any case, the organization that maintains such a database can be considered to have high organizational technical capabilities.