#152 - Craft Your Code with Software Craftsmanship - Srihari Sridharan
Oct 16, 2023
auto_awesome
Srihari Sridharan, author of "Craft Your Code", discusses software craftsmanship and improving code quality. Topics include coding standards, code readability, code review, managing technical debt, creating high-performing teams, and the importance of understanding different architectural styles and domain knowledge.
Software craftsmanship is crucial for improving code quality and passing on knowledge to the next generation.
Establishing coding standards, enhancing code readability, and conducting effective code reviews are key practices for improving code quality.
Creating a psychologically safe environment and fostering trust among team members are vital for building high-performing teams.
Deep dives
The Importance of Software Craftsmanship
Software craftsmanship is essential for individuals to improve the quality of their work and pass on their knowledge to the next generation. By continuously raising the bar and focusing on delivering high-quality code, software engineers can make a significant impact in their organizations.
Practices for Improving Code Quality
Improving code quality involves establishing coding standards, enhancing code readability, conducting effective code reviews, and managing technical debt. Understanding different architectural styles and having domain knowledge are also important for software engineers.
Creating High Performing Teams
Creating high performing teams involves establishing psychological safety and trust among team members. Collaboration and open communication play crucial roles in fostering an environment where team members can learn from each other and work towards achieving excellence.
Managing Technical Debt
Managing technical debt requires identifying and prioritizing technical debt items, capturing them as backlog items, and integrating them into the development process to ensure timely repayment. The buy-in from organizational leadership and convincing them of the value of addressing technical debt is crucial.
Importance of Psychological Safety and Transparency in Teams
Creating a psychologically safe environment for developers is crucial in building a strong team. Transparency and openness allow for effective communication and problem-solving. Leaders should prioritize mental health and create an environment where developers feel safe to share their challenges and issues. Trust is built over time and is essential for team performance. By focusing on psychological safety and transparency first, the team can transition from a detached or anxious zone to a learning zone, where high performance and accountability are achieved.
Understanding Architectural Styles and Domain-Driven Design
Different architectural styles exist, such as layered architecture, microservices, and service-oriented architecture. Each style has its own advantages and should be chosen based on the problem domain. No architecture style is superior or inferior; it depends on the specific needs of the project. Domain-Driven Design (DDD) plays a significant role in software craftsmanship, as it helps identify the core domain and supporting domains. By strategically assigning the best minds to solve the complex core problems while leveraging external solutions for generic domains, organizations can build high-quality software. Leaders should read about DDD to understand its strategic and tactical patterns and connect them with architectural styles.
“We need to change our ways of working to give importance to the work quality that we deliver, ensure we keep raising our bar, and pass it on to the next generation of developers."
Srihari Sridharan is a software architect and the author of “Craft Your Code”. In this episode, we discussed software craftsmanship and how to become better software engineers. Srihari first began by sharing the relationship between software craftsmanship and high-quality code. He described some practices for improving code quality, such as establishing coding standards, improving code readability, doing effective code review, and managing technical debt. He also explained the importance of software engineers understanding different architectural styles and domain knowledge. Srihari also shared strategies for creating high-performing teams by establishing psychological safety and trust.
Listen out for:
Career Journey - [00:03:08]
Bridging the Students Gap with Industry - [00:06:11]
Writing “Craft Your Code” - [00:09:36]
Software Craftsmanship and High Quality Code - [00:12:18]
Root Causes of Low Quality Code - [00:15:26]
Coding Standards - [00:20:15]
Code Aesthetics - [00:24:17]
Code Readability - [00:28:09]
Tabs vs Spaces - [00:32:31]
Code Review - [00:34:12]
Managing Technical Debt - [00:39:36]
Psychological Safety & Trust - [00:46:23]
Mind Maps - [00:52:09]
Architecture & Domain Knowledge - [00:54:00]
3 Tech Lead Wisdom - [01:02:33]
_____
Srihari Sridharan’s Bio Srihari Sridharan is a Software Architect and Engineer with a hands-on approach. He is a speaker, conducting courses and delivering talks on software craftsmanship and writing clean code. Srihari’s areas of expertise encompass refactoring, design patterns, enterprise application architectural patterns, integration patterns, and cloud-native design patterns.
Srihari is also a reviewer and a senior technical proof-reader for Manning Publications Co, and he serves as a member of the ‘Board of Studies - Department of Information Technology’ at B.S Abdur Rahman Crescent Institute of Science & Technology. Residing in Chennai with his wife Swathy and son Advaith, Srihari enjoys spending quality time with his family. In his leisure time, he loves playing cricket, writing blogs, reading books, and cooking.
Miro is your team's visual workspace to connect, collaborate, and create innovations together, from anywhere. Sign up today at miro.com/podcast and get your first 3 Miro boards free forever.
Like this episode?
Show notes & transcript: techleadjournal.dev/episodes/152
Follow @techleadjournal on LinkedIn, Twitter, and Instagram.
Buy me a coffee or become a patron.
Remember Everything You Learn from Podcasts
Save insights instantly, chat with episodes, and build lasting knowledge - all powered by AI.