This content originally appeared on DEV Community and was authored by Yusuke Shimizu
Introduction
When our team first introduced AWS CDK, we faced a significant challenge. The team as a whole lacked sufficient CDK knowledge, making it difficult to effectively build and manage infrastructure. To address this issue, we leveraged the SECI model and incorporated automatic checking tools like cdk-nag and cfn-lint into our CI/CD process. As a result, the team's overall CDK knowledge improved dramatically, enabling more efficient and secure infrastructure management.
What is the SECI Model?
The SECI model is a theory that explains the knowledge creation process in four steps:
- Socialization
- Externalization
- Combination
- Internalization
These steps progress through the mutual conversion of tacit and explicit knowledge.
Tacit and Explicit Knowledge
- Tacit Knowledge: Knowledge based on individual experiences, intuitions, and insights that is difficult to verbalize or document.
- Explicit Knowledge: Knowledge that is clearly documented as text or data and easily shared with others.
Steps of the SECI Model
-
Socialization: Tacit → Tacit
- Example: Sharing experiences and know-how directly through on-the-job training.
-
Externalization: Tacit → Explicit
- Example: Verbalizing tacit knowledge and making it explicit through documentation or oral explanations.
-
Combination: Explicit → Explicit
- Example: Creating new knowledge by integrating multiple documents or data.
-
Internalization: Explicit → Tacit
- Example: Absorbing documented knowledge through practice as personal experience.
Applying the SECI Model to Enhance CDK Knowledge
1. Socialization: Sharing Tacit Knowledge
Challenge: There were few CDK experts in the team, and knowledge sharing was not progressing.
Solution:
- Regularly conducted pair programming sessions led by experienced members
- Introduced pair reviews based on cdk-nag results, creating opportunities for direct knowledge sharing
Effect: CDK tacit knowledge was shared among team members, improving basic skill levels.
2. Externalization: Converting Tacit Knowledge to Explicit Knowledge
Challenge: CDK knowledge was dependent on individuals and not in a form that could be shared across the team.
Solution:
- Created best practice guides based on cdk-nag and cfn-lint results
- Documented common mistakes and points to note during PR reviews
Effect: CDK knowledge within the team was documented, improving learning efficiency for new members.
3. Combination: Combining Explicit Knowledge
Challenge: Although we had fragmented CDK knowledge, we couldn't combine it for efficient infrastructure construction.
Solution:
- Developed a strategy for appropriate stack division based on documented knowledge
- Designed frequently used stacks in a reusable form across projects
Effect: Efficient CDK utilization tailored to team-specific requirements became possible, promoting knowledge and implementation sharing across projects.
4. Internalization: Absorbing Explicit Knowledge as Tacit Knowledge
Challenge: We couldn't effectively put documented knowledge into practice. In particular, we needed a way for new members to efficiently acquire CDK knowledge.
Solution:
- Established hands-on CDK learning content for new members, implemented upon joining
- Actively applied CDK to new projects and refactoring of existing projects
- Created opportunities for team members to gain broad experience by rotating different CDK tasks
Effect:
- New members quickly mastered CDK basics and integrated into the team faster
- All team members became able to intuitively use CDK and developed practical skills to handle various situations
- Overall project quality and efficiency improved
Results
Through our efforts to improve and share CDK knowledge using the SECI model, we achieved the following results:
- The team's overall understanding of CDK significantly improved, enabling the design and implementation of more complex infrastructure.
- The infrastructure construction process became more efficient, reducing the time required to launch new projects.
- Code quality improved, enabling early detection and response to security risks.
- Collaboration among team members became more active, promoting knowledge sharing.
- The learning curve for new members became gentler, making team integration smoother.
- The use of reusable components across projects increased, improving development efficiency.
These improvements enhanced the overall productivity and code quality of the team, realizing safer and more efficient infrastructure management.
Lessons Learned and Future Outlook
Through this experience, we reaffirmed the importance of organizational knowledge sharing and learning. We found that by consciously applying the SECI model, we could convert individual knowledge into an asset for the entire team. In the future, we plan to consider introducing AI-powered knowledge sharing tools for further efficiency.
Advice for Developers
- Don't be afraid of knowledge gaps within the team; actively create opportunities for knowledge sharing.
- Utilize automation tools to promote the accumulation and sharing of explicit knowledge.
- Be mindful of each step of the SECI model and aim for continuous knowledge circulation.
The introduction of CDK is not just a change in technology, but an excellent opportunity to enhance the knowledge and capabilities of the entire team. By leveraging the SECI model, you can more effectively manage this process and accelerate team growth.
This content originally appeared on DEV Community and was authored by Yusuke Shimizu
Yusuke Shimizu | Sciencx (2024-09-13T11:26:07+00:00) CDK Mastery: Team Evolution. Retrieved from https://www.scien.cx/2024/09/13/cdk-mastery-team-evolution/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.