No matter which team wants to become a team with strong technical strength, building such a team is also one of the responsibilities of every team leader, Technical Director, and architect. Ask how to build it, there will be a lot of answers. Some people say they raise their salaries, some say they engage in performance, some say they have more dinners, some say they are traveling ...... Which of the following methods can improve the technical capabilities of the team at a low cost and high returns?
Of course, the answer is definitely not the only one. This answer will change with the enterprise culture and the manager style. However, I believe that technical training is preferred for improving the team's technical strength.
Obviously, the improvement of technical strength depends on the technical capabilities of team members. Therefore, it is particularly important to improve the technical strength of each member. In this article, we will not discuss the importance of technical training, but focus on how to conduct technical training.
I. training objectives
In an ideal software team, technical strength can be roughly divided into three types: one is basic technical ability, which can be considered as the knowledge and skills that a junior software engineer should possess; the second is the intermediate technical capability, which can be considered as a certain degree of analytical design capability; the third is the advanced technical capability, which can be considered as the capability to undertake the global design or architecture of the software.
For example, a mobile phone software team is usually engaged in coding for Android, IOS, and other platforms. This part of engineers are familiar with the API interfaces and platform features of a platform, it can implement the code of a given class, have certain knowledge about the network and ui, and can implement specified functions. This can be considered as a basic technical capability. A small number of people undertake more complex and more granular module development. They can design complex functions and break them into smaller units to guide other members in development, it can be seen that the code is inappropriate and reconstructed, which can be considered as intermediate technical capability. One or more persons are responsible for the overall structure design and quality assurance of the software, and have the ability to ensure the quality attributes of the software, which can be considered as high-level skills.
Through such decomposition, you can set targeted training objectives. If there are many low-level bugs in the software and the availability is reduced, the basic skills may need to be enhanced. You can consider sharing experiences with experienced developers or analyzing the features and problems, to improve basic skills. If the implementation of complex functions is not smooth enough, the reliability is reduced, and the flexibility is reduced, you can find out whether the function design is inappropriate, the category structure is unreasonable, and whether the coupling degree is too high, and conduct targeted intermediate skills training. Of course, if you want to improve the architecture and other capabilities, you can perform advanced skills training.
Ii. Training Cycle
I have mentioned a lot in the training objectives, but it is too important. Training with incorrect or no goals is just a waste of time. After clarifying the purpose of the training, you need to set the training frequency. This is relatively easy, and the frequency of basic skills training can be higher, for example, once a week, the frequency of intermediate skills training can be slightly lower, for example, once a week or even longer, of course, it can take a longer period for advanced users. In addition, you do not have to stick to a fixed cycle, but a fixed cycle can often make training become a habit. Therefore, we recommend that you do this.
Iii. Training Content
The training content should be selected based on your actual situation. For example, the Android platform development team can perform training on the Android platform, you can also conduct training on Java language capabilities, OO design, refactoring, and design patterns. These must be analyzed by specific teams and targeted, rather than blindly following the crowd. Otherwise, you may be suspected of being laborious and thankless, results in poor results.
Iv. Training Instructors
The trainer's choice is best generated internally, so that the design content is more targeted, and even can be directly demonstrated through the project code, often get twice the result with half the effort. This focuses on content design. It is not only difficult, but more important, it is targeted, not empty, not general. If you are interested in sharing some knowledge, you can also arrange time for lecturers to form a good communication atmosphere. Remember, this is internal training, and the form is not so important. What is important is efficient knowledge communication. Even if you are an external trainer, you must set the content properly.
5. Participants
The trainees can be either designated or voluntarily selected by members. Of course, they can also be combined. It is important not to omit the target audience. For those who are unwilling to participate, you can invite them through suggestions. In this process, the technical orientation of members can be found, and the weak knowledge links of some Members can be supplemented, which is conducive to the integrity of the knowledge system.
6. training feedback
Training result feedback is the most easily overlooked part. It often ends after training, but this is the most important step. Result feedback does not fill out a questionnaire. Instead, it provides a one-to-one discussion and result feedback to each member who participates in the training, asking for comments and suggestions, instruct him to use his knowledge in practical work and look for expectations for subsequent content. This kind of feedback may not be carried out every time, but it must be carried out, and the training results should be evaluated by observing the long-term bug quantity and other indicators.
I believe that through the above descriptions, I can demonstrate the main links and implementation methods of technical training in general. These content can be flexibly handled based on the characteristics of the enterprise or team, but no matter what, as an important part of team building, training is a low-cost and high-income task. It is also a responsibility of the team leader or technical leader. It is also an important way for members to gain team identity and improve technical capabilities, long-term persistence is required. In a subtle way, the team already has a strong technical strength.
-- Welcome to reprint, please indicate the source of http://blog.csdn.net/caowenbin --