PODCAST · technology
Crafting Code Podcast
by Crafting Code Podcast
A podcast about crafting software where we discuss the importance of doing the right thing, at the right time, with the right tools.
Episodes
-
074 - Is Your Refrigerator Running?
Do you know how your system behaves in production? Can you tell what is normal and what is a problem? It can be all to easy to do a basic set up with a SaaS product and then stop thinking about what's happening in production, hoping that you'll be able to get to the data if there's a problem. In...
-
073 - Software Imitates Life
Biology has a lot to teach us about successful complex systems. As with other disciplines, we can adapt biological concepts to help us create better software — both in code and in how we work. In this episode, your hosts talk about how we can apply concepts from cells, genetics, and evolution to...
-
072 - Databases
Databases are key technology used in a large number of applications. There are different types and how we utilize them matters. In this episode, Dave and Allan talk about the changes we've observed in database patterns over time. We cover a variety of types of databases and give some suggestions...
-
071 - Mistakes and Experimentation
Mistakes and failures are a common part of software development. But the consequences depend greatly on whether the failure was part of an experiment or if it was a production incident. In this episode, Dave and Allan discuss how we approach failures and what we can do to help us prevent future...
-
070 - Volatility
Volatility means risk. We experience volatility in our companies and products. We experience it in our teams, our practices, and perhaps especially in code. In this episode, your hosts discuss the importance of recognizing volatility and discuss some ways to handle it.
-
069 - The Art of Code
In prior episodes we've mentioned that although code can be art of itself, we usually focus on the value provided by the functionality from executing the code. But crafting code in a way that creates said value in a sustainable way is difficult, and how you go about it constitutes an art form of...
-
068 - Wardley Mapping
While exploring the concept of business strategy, Simon Wardley came up with a mapping concept to visualize the space you are playing in. In this episode, Allan and Dave explore a subset of these ideas and discuss how we've found them helpful in software development. We cover the basic concepts…
more -
067 - Decision Delegation
Fear is the mind-killer, leaving us convinced that we cannot trust others to make decisions. But being the bottleneck for decision making only slows everything down. Delegating to other people helps them grow and be more fulfilled while also freeing up leaders to do more. In this episode, your...
-
066 - Job Searching
Finding your next job can be a difficult task. You need to know what you're looking for and how to sell yourself in your application and interviews. In this episode, Dave and Allan share what they've learned about job searching. We discuss networking, what to do and look for in interviews, and...
-
065 - Urgency
'We need to instill a sense of urgency.' This is something we've heard in a few variations at different companies. Is a sense of urgency even a good thing to have on your team, or is it just undue pressure and anxiety? In this episode, Dave and Allan find that they disagree strongly about the...
-
064 - Podcast Reflections
Sixty-four episodes is a significant milestone (in powers of two)! In commemoration, Dave and Allan reflect back on how this podcast got started and some of the changes we made along the way to keep it going. We also share a few details about how we record, edit and publish. Most of all, we hope...
-
063 - Craftsmanship vs. Engineering
When one of the hardest things in our industry is naming things, it is easy for us to disagree on what words mean as language changes over time and space. The terms 'craftsmanship' and 'engineering' are some that we struggle with and fight over. In this episode, Dave and Allan discuss the concept...
-
062 - Whole Team Solution Engineering
A cross-functional team is one that has all the necessary people to build and ship a product without having to wait on people outside of the team. But having those people on the team isn't the whole story; how the team works together (or not) matters. In this episode, your hosts discuss the…
more -
061 - AI and Modern Software Engineering Practices
Practices co-evolve with activities. As we (as in industry) increasingly use AI tools, how will this change our existing practices and what new ones will emerge? In this episode, Allan and Dave discuss practices that we've found valuable and what our experiences have been like incorporating AI…
more -
060 - Collaborative Coding
Most software engineers work on teams sharing their code with others. Yet significant portion of people in our industry never elevate their level of code collaboration beyond code reviews (often in the form of pull requests). Allan and Dave have mentioned pairing and mobbing many times, but in…
more -
059 - Software Patterns and Pattern Languages
Software patterns are sort of like recipes which offer solutions for particular problems. Familiarity with patterns allows you to speak at high levels of abstraction, communicating a lot of information without having to dive into specific details. In this episode, your hosts share a bunch of...
-
058 - Working On Cross-Functional Teams (Part 2)
In order to create really great software, we need more than just coding knowledge. This is why most teams are structured to include and benefit from people with other specialties. What do we expect from these other disciplines, and what should they expect from us? In part two of this two-part...
-
057 - Working On Cross-Functional Teams (Part 1)
In order to create really great software, we need more than just coding knowledge. This is why most teams are structured to include and benefit from people with other specialties. What do we expect from these other disciplines, and what should they expect from us? In part one of this two-part...
-
056 - Fast Feedback for Humans
Humans need feedback in order to do their jobs well. Unfortunately, because feedback can often feel negative, it can be difficult to both give and receive feedback. In this episode, Dave and Allan discuss the importance of feedback and share some concepts which have helped us improve. Hopefully...
-
055 - API Categorization
Knowing your audience is good advice for APIs, not just public speaking or selling your ideas. Providing separate APIs for different purposes can make each one much easier to manage, especially when it comes time to roll out updates. In this episode, your hosts discuss how we like to categorize…
more -
054 - Expertise and Collaboration
Utilizing the skill acquisition models from our previous episode, we can begin to explore how our level of expertise affects us when collaborating with others. Dave and Allan share the 'Dreyfus Squared' concept from Dan North and then expound on it to explore the troubles that novice developers…
more -
053 - Skill Acquisition Models
Learning and developing skills is vital in the software industry. But evaluating where you are at and how to take the next step can be difficult. In this episode, your hosts share two models for skill acquisition: Shuhari and the Dreyfus Model. These two models help us understand how we go from...
-
052 - SOLID Principles
Coupling and cohesion are fundamental design considerations, but when sitting down to build a system we often find we need additional guidance. SOLID is a mnemonic for five important principles which help us lower our coupling and improve cohesion, improving our software architectures. In this...
-
051 - Kanban
Kanban boards have appeared and settled in to the software development world over the last decade or so. And yet, many people use them daily without ever having been exposed to the Lean concepts behind them. In this episode, we discuss the importance of making work visible so that you can have a...
-
050 - Lean Software Development
Lean teaches us that there are two distinct types of efficiency: resource (being busy) and flow (delivering value). Unfortunately, many organizations are so focused on staying busy that they don't have any capacity to improve flow. In this episode, we discuss how Lean can be applied to software...
-
049 - Software Costs
How much does software cost? How do you know if you can afford to build what you want to build? In this episode, Dave and Allan discuss how to figure out your fully burdened cost and then use that rate as a way to judge costs. Not just money, but money over time, which becomes critical in a…
more -
048 - Premature Optimization
Optimization is a word that sounds so good. Sometimes we get an idea which we believe will be an improvement to the code and want to just go ahead and implement it. But often these are premature optimizations; changes that may not be needed and in some cases can even make things worse. In this...
-
047 - Commitments
Part of being a professional coder is being aware of the commitments you make and then keeping them. But the nature of software development often makes it difficult to know how long something will take. In this episode, Dave and Allan discuss how to say yes and no to requests, deadlines, and...
-
046 - Open Space Technology
Have you ever been to a conference where you felt like the most useful part was the 'hallway track' where you got to talk with other people between sessions? Open Space Technology builds on this idea, providing the scaffolding needed for attendees to create a custom event. Special guests Mike...
-
045 - Event-Based Strategies
Following on to our previous discussion about event-based systems, in this episode Allan and Dave share some of the strategies they've used utilize events successfully. We cover naming strategies, sources of truth in a system, bounded contexts, anti-fragility, and delivery guarantees. And just...
-
044 - Event-Based Systems
Although event-based systems are nothing new, they remain underutilized across our industry and therefore can still feel foreign. In this episode, your hosts talk about why you might want to adopt events into your code. We talk about orchestration versus choreography, temporal decoupling, and...
-
043 - Trunk-Based Development
Working independently on your own source code branch seems like a great idea until you have to merge it to the mainline. Just like with parallel processing, the bottleneck often comes when you try to combine results. Trunk-Based Development revolves on a simple idea: always commit your changes to...
-
042 - Skill and Experience Biases
At any given point in our careers, the skills we have developed and the experiences we have gained (or the lack thereof) can influence how we think about our work and how we make decisions. In this episode, your hosts discuss how we can identify and deal with these biases. From Dunning-Kruger to...
-
041 - Code Design
Should code design be something we should have in mind when starting, or should we allow it to emerge from a test-driven design process? How much mileage can we get by getting better the up front design process before we run into a Design Quality Paradox? Can coupling and cohesion guide us to how...
-
040 - Prioritizing Learning
The need to learn is taken as a necessity in our industry. And yet, most who write code spend almost all their time in performance mode and very little in learning mode. We are delighted to have special guest Steven Diamante join us to talk about this topic. We discuss the importance of learning…
more -
039 - Book Recommendations
The effort required to author a good book can lead to a depth of understanding that doesn't come as readily to other mediums. And when a good book stands the test of time, it's worth sharing. In this episode, Dave and Allan share our recommendations for books we think are worth reading if you are...
-
038 - Culture & Architecture
Applying Conway's famous Law tells us that software architecture and culture are intertwined. How people communicate affects how they architect their software. And the reverse is also true: being intentional about an architecture can change how people behave. In this episode, your hosts discuss...
-
037 - Company Culture
The culture of your company has a big influence on how much you enjoy your job. Unfortunately, finding one that fits just right for your unique combination of people is hard. On top of that, there are inevitably subcultures within the larger organization. In this episode, Dave and Allan discuss...
-
036 - Work Is Work
We often hear stories from successful companies shared across the industry, but usually what they did to succeed doesn't work for us. Are there principles that are independent of the organizations that we work at? Coda Hale thinks there are. In this episode we review the article, 'Work is Work'...
-
035 - Asking Questions
Why is asking questions such an important soft skill for software developers? Is a mindset of inquiry a way to learn more and engage in better, open communication? How can we utilize questions during retrospectives and blameless postmortems? Can questions be an important teaching tool? Will you...
-
034 - Context Is King
In the physical world we readily intuit how context matters in decision making. For example, a compact car is a perfectly fine vehicle, but may not be suitable for hauling a large load. Context informing software decisions may be even more important, since it isn't as obvious. In this episode…
more -
033 - Impact On Our Careers
In episode 29 we discussed ways that a software developer can make an impact in their job. In this episode, we reflect on what things have made the most impact on Dave and Allan as software developers. We share experiences, books, presentations, people, and practices which have made a significant...
-
032 - AI
AI is a hot topic in tech these days, and usually people are talking about LLMs. Are they really going to be replacing programmers? Or are they just the latest fad in a long line of promises to replace those pesky coders? In this episode, Allan and Dave talk about out experiences with AI code...
-
031 - Clean Code
The concept of clean code is one that Dave and Allan feel is very important. But sometimes we hear or read of people saying it is unimportant or unnecessary in some cases. In this episode, we explain what we mean by 'clean code' and why we think it really matters. After all, it's exponentially...
-
030 - Architecture Tools
What does a software architect actually do? The answer will vary widely depending on the company you work at. But generally speaking, we've found that there are two main things every architect is expected to do: make decisions and draw diagrams. So in this episode, your hosts discuss tools and...
-
029 - Creating Impact
How can I make a difference? What should I be doing in my role? These are pretty common questions software developers ask themselves, even after many years of experience. In this episode, we discuss how to make a difference (and some of the struggles we encounter) at various sizes of business. We...
-
028 - Technical Health
The change of perspective which comes from reframing a problem can often yield fresh insights or improve our outlook. Discussing the state of a technical system in terms of health may be preferable to the oft-used debt metaphor. In this episode, your hosts discuss how this shift in thinking can...
-
027 - 10x Systems
Is the mythical 10x developer real? We think so... at least inasmuch as some people regularly improve the systems they work in until they (and often their team) are far more productive. We've definitely experienced 10x systems. So join Allan and Dave in the search for this cryptid through the...
-
026 - Constraints
Constraints make great engineering. They aren't always a bad thing, and understanding them can help you make better coding decisions. In this episode, Dave and Allan discuss many different common constraints. Some are more obvious like technology, time, and budget. Others are easily missed but...
-
025 - Code Rot
Bits do not rot when left alone, but the world around the code changes. Over time, although the code itself has not changed, the value provided by it will effectively rot away. In this episode, your hosts talk explore this topic; from video games and antiquated coding paradigms to the Red Queen...
We're indexing this podcast's transcripts for the first time — this can take a minute or two. We'll show results as soon as they're ready.
No matches for "" in this podcast's transcripts.
No topics indexed yet for this podcast.
Loading reviews...
ABOUT THIS SHOW
A podcast about crafting software where we discuss the importance of doing the right thing, at the right time, with the right tools.
HOSTED BY
Crafting Code Podcast
CATEGORIES
Loading similar podcasts...