Speaker 1: Welcome in everyone to our deep dive this time into
Speaker 1: software craftsmanship.
Speaker 2: Oh interesting.
Speaker 1: Yeah, and our main source material today is going to
Speaker 1: be selections from Sandral Mancuso's book The Software Craftsman, right,
Speaker 1: which came out you know, almost ten years ago now,
Speaker 1: back in twenty fourteen, wow, but still really relevant today.
Speaker 1: And you know it's part manifesto per practical guide. Yeah,
Speaker 1: for developers really anyone involved in software projects. And you
Speaker 1: know Macuzo himself, he's been in the industry for decades,
Speaker 1: all the way back to the nineties, kind of that
Speaker 1: you know, wild West days of software.
Speaker 2: Development, Wild West days.
Speaker 1: I love that and yees. So he's seen it all.
Speaker 1: He's seen the rise of agile, he's seen you know,
Speaker 1: all these different trends come and go.
Speaker 2: Yeah.
Speaker 1: And he's not author, he's also a practitioner. He co
Speaker 1: founded a software craftsmanship consultancy and the London software craftsmanship community.
Speaker 2: That's great.
Speaker 1: So he's really you know, putting these ideas into practice. Yeah.
Speaker 1: So I'm really excited to dive into this book with
Speaker 1: you and yeah, me too, see what we can kind
Speaker 1: of extract in terms of the key principles of software
Speaker 1: craftsman show and what it really means to be a
Speaker 1: software craftsman today in twenty.
Speaker 2: Twenty four you know, in the modern world.
Speaker 1: In the modern world, Yeah, because I think things have
Speaker 1: changed quite a bit even since twenty fourteen.
Speaker 2: Yeah, definitely.
Speaker 1: So one of the things that really jumped out of
Speaker 1: me reading through this was Mancuso's description of the early
Speaker 1: days of his career in the nineties, where he talks
Speaker 1: about how, you know, back then, seniority was often measured
Speaker 1: by how complex and how difficult to understand your code was.
Speaker 2: Oh wow, so.
Speaker 1: It's almost like, you know, job security through obfuscation. Really
Speaker 1: kind of a crazy concept when you think about it,
Speaker 1: it's wild, but that was kind of the mentality back then.
Speaker 1: And he tells this story about working on this project
Speaker 1: where there was this one senior developer who wrote this
Speaker 1: incredibly complex piece of code that no one else could understand,
Speaker 1: and he was like the hero, you know, because he
Speaker 1: was the only one who could fix it.
Speaker 2: Oh, so he was the only one who could maintain
Speaker 2: it exactly.
Speaker 1: He was the only one who could maintain it, and
Speaker 1: so he had all this power and everyone kind of
Speaker 1: looked up to him. But Mancuso realized that that was
Speaker 1: actually a really unsustainable way to build software.
Speaker 2: Yeah, I can imagine, because.
Speaker 1: What happens when that person leaves or it gets hit
Speaker 1: by a bus, Like, look, what do you do? The
Speaker 1: whole project falls apart. Yeah, So that was kind of
Speaker 1: a turning point for him, I think, in terms of
Speaker 1: realizing that there had to be a better way.
Speaker 2: So how did he start to see things differently? What
Speaker 2: was that turning point?
Speaker 1: Well, I think he started to realize that software development
Speaker 1: is not just about writing code. It's about building software
Speaker 1: that is maintainable and understandable and that could be worked
Speaker 1: on by a team of people. Right.
Speaker 2: It's a collaborative process exactly.
Speaker 1: And it's about, you know, delivering value to the client,
Speaker 1: not just impressing your colleagues with your cleverness.
Speaker 2: Yeah, that makes a lot of sense.
Speaker 1: So it's about shifting the focus from individual ego to
Speaker 1: the collective good of the project and ultimately the client. Right.
Speaker 2: So it's not about being a hero developer, it's about
Speaker 2: being a team player.
Speaker 1: Yeah, exactly. I like that, and I think that's really
Speaker 1: at the heart of software craftsmanship, is this idea of
Speaker 1: being a professional, okay, and taking pride in your work
Speaker 1: and really caring about the quality of the software that
Speaker 1: you produce.
Speaker 2: And seeing yourself as a craftsman as opposed to just
Speaker 2: like a code monkey exactly.
Speaker 1: And I think that's a really important distinction because I
Speaker 1: think for a long time, software development was seen as
Speaker 1: this kind of you know, geeky, hobbyist kind of thing.
Speaker 2: Yeah, just something that people did in their basement.
Speaker 1: Yeah, but I think in recent years there's been a
Speaker 1: real shift towards recognizing it as a profession, a true profession, yeah,
Speaker 1: with its own set of ethical standards and best practices, right.
Speaker 1: And I think software craftsmanship is a big part of
Speaker 1: that movement.
Speaker 2: Okay, so it's not just about the technical skills, it's
Speaker 2: about the mindset, the attitude.
Speaker 1: Absolutely, Yeah, It's about how you approach your work and
Speaker 1: how you interact with your colleagues and your clients, right.
Speaker 2: Like a true prof I like it. So it sounds
Speaker 2: like software craftsmanship is really about raising the bar for
Speaker 2: the entire software development industry.
Speaker 1: Yeah. I think that's a great way to put it.
Speaker 1: It's about saying, you know, we're not just hackers, we're
Speaker 1: not just code monkeys. We're professionals, and we're going to
Speaker 1: take pride in our work. And we're going to build
Speaker 1: software that is high quality and that meets the needs
Speaker 1: of our clients.
Speaker 2: That's a great goal to strive for.
Speaker 1: Yeah, and I think it's a really important goal because
Speaker 1: you know, software is everywhere these days.
Speaker 2: It runs the world.
Speaker 1: Yeah, it runs the world. It's in our phones, it's
Speaker 1: in our cars, it's in our homes, it's everywhere. Yeah,
Speaker 1: and so the quality of that software really matters.
Speaker 2: It affects all of us.
Speaker 1: Yeah, it affects all of us. It affects our lives,
Speaker 1: it affects our safety, affects our privacy.
Speaker 2: Absolutely.
Speaker 1: So I think it's really important that we as software
Speaker 1: developers take that responsibility seriously. I agree, and I think
Speaker 1: software craftsmanship is a great framework for doing that.
Speaker 2: Okay, So I'm curious about this idea of the agile
Speaker 2: hangover that you mentioned earlier.
Speaker 1: Right, Yeah, that's a really interesting concept.
Speaker 2: What is that exactly?
Speaker 1: So Mancuso talks about how a lot of companies adopted
Speaker 1: agile methodologies, but maybe you didn't fully embrace the underlying
Speaker 1: principles I see of quality and craftsmanship.
Speaker 2: So they got the process, but not necessarily the substance exactly.
Speaker 1: They were going through the motions of agile, but they
Speaker 1: weren't really changing the way they built software.
Speaker 2: So what were they missing.
Speaker 1: I think they were missing that focus on technical excellence,
Speaker 1: on building software that is well designed and maintainable, right,
Speaker 1: And I think that's where software craftsmanship comes in. It's
Speaker 1: about filling that gap.
Speaker 2: So it's not agile versus software craftsmanship. They actually work
Speaker 2: together exactly.
Speaker 1: They complement each other.
Speaker 2: Okay.
Speaker 1: Agile focus is on the process on delivering software incrementally
Speaker 1: getting feedback from the client, but software craftsmanship focuses on
Speaker 1: the craft of building software that is high quality.
Speaker 2: So it's like having a great engine in a race car.
Speaker 2: You need both to win.
Speaker 1: That's a great analogy.
Speaker 2: You need the speed and the reliability exactly.
Speaker 1: You need both agile to he help you deliver software quickly,
Speaker 1: and you need software craftsmanship to help you build software
Speaker 1: that is well built and that will last.
Speaker 2: So it's about building software that's not just functional but
Speaker 2: also beautiful.
Speaker 1: I love that. Yeah, I think that's a really important point.
Speaker 1: It's not just about making it work, it's about making
Speaker 1: it work well, yeah, and making it something that you
Speaker 1: can be proud of.
Speaker 2: It's about craftsmanship exactly. So how does this all tie
Speaker 2: into the Software Craftsmanship Manifesto, Right.
Speaker 1: So the Manifesto is kind of like a set of
Speaker 1: guiding principles for software craftsmen. Okay, and it lays out
Speaker 1: four key values and we're going to dive into those
Speaker 1: in just a bit. But before we do that, I
Speaker 1: just want to kind of set the stage a little bit, sure,
Speaker 1: because I think it's important to understand where these values
Speaker 1: are coming from. Okay, And I think you're really coming
Speaker 1: from this idea that software development is a craft and
Speaker 1: that we as software developers are craftsmen, and that we
Speaker 1: should take pride in our work and strive to build
Speaker 1: software is high quality.
Speaker 2: I like that. So it's about raising the level of
Speaker 2: professionalism in the software development industry exactly. I'm on board
Speaker 2: of that.
Speaker 1: All right. So let's dive into those four key values
Speaker 1: of the Software Craftsmanship Manifesto.
Speaker 2: Okay, let's do it.
Speaker 1: So the first one is not just working software, but
Speaker 1: well crafted software.
Speaker 2: Okay, well crafted software? What does that mean?
Speaker 1: Exactly? So it's about building software that is not just functional,
Speaker 1: but also well designed, easy to understand, easy to change,
Speaker 1: and build.
Speaker 2: A last, so it's not just about getting it to work,
Speaker 2: it's about making it work.
Speaker 1: Well exactly, and making it something that can be easily
Speaker 1: maintained and extended over time.
Speaker 2: Right, because software always changes, exactly. Requirements change, technology changes,
Speaker 2: everything changes, so.
Speaker 1: We need to build software that can adapt to those changes.
Speaker 2: That makes a lot of sense.
Speaker 1: Yeah, so well crafted software is about building software that
Speaker 1: is flexible and resilient that can stand the test of time.
Speaker 2: Okay, I like that.
Speaker 1: So the second value the manifesto is not just responding
Speaker 1: to change, but steadily adding value.
Speaker 2: Okay. So it's not just about keeping up with the changes.
Speaker 2: It's about making things better exactly.
Speaker 1: It's about delivering value to the client with every iteration.
Speaker 2: So it's about focusing on the outcomes, not just the
Speaker 2: outputs exactly.
Speaker 1: And it's about thinking long term about the sustainability of
Speaker 1: the software that we're building.
Speaker 2: Right because sometimes a quick fix can create more problems
Speaker 2: down the road.
Speaker 1: Absolutely.
Speaker 2: So it's about making sure that every change we make
Speaker 2: is actually adding value to the product exactly.
Speaker 1: And that's not always easy, No, it's not. Sometimes it's
Speaker 1: tempting to just hack something together to get it working.
Speaker 2: Yeah, I've been there.
Speaker 1: But a software craftsman resists that temptation.
Speaker 2: We take the time to do it right exactly.
Speaker 1: They invest in quality even if it takes a little longer.
Speaker 2: Because they know that it will pay off in the
Speaker 2: long run.
Speaker 1: Exactly. Okay, I like that. So what's the third value?
Speaker 2: So the third value is not just individuals and interactions,
Speaker 2: but a community of professionals.
Speaker 1: Okay, So it's about working together exactly.
Speaker 2: It's about recognizing that software development is not a solitary pursuit.
Speaker 2: It's a team sport.
Speaker 1: Yeah, it takes a village exactly.
Speaker 2: And it's about sharing knowledge and learning from each other
Speaker 2: and raising the bar for the entire profession. So it's
Speaker 2: about mentorship and collaboration.
Speaker 1: Absolutely, And it's about building a community of practice where
Speaker 1: we can all support each other and grow together. I
Speaker 1: like that. Yeah. So it's not just about you know,
Speaker 1: me writing my code in my little silo. It's about
Speaker 1: us working together to build something great.
Speaker 2: It's about the collective good exactly. Right. So what's the
Speaker 2: fourth and final value?
Speaker 1: So the fourth value is not just customer collaboration, but
Speaker 1: productive partnerships.
Speaker 2: Okay. So it's about more than just getting requirements from
Speaker 2: the client.
Speaker 1: Right, It's about building a relationship with the client based
Speaker 1: on trust and respect, and mutual understanding.
Speaker 2: So it's about working with the client, not just for
Speaker 2: the client exactly.
Speaker 1: It's about seeing the client as a partner in the
Speaker 1: software development.
Speaker 2: Process and under standing their business goals.
Speaker 1: Absolutely and working together to find the best solutions.
Speaker 2: So it's a much more collaborative approach.
Speaker 1: Exactly.
Speaker 2: I like that.
Speaker 1: Yeah. So those are the four key values of the
Speaker 1: Software Craftsmanship Manifesto.
Speaker 2: Well crafted software, steadily adding value, a community of professionals,
Speaker 2: and productive partnerships.
Speaker 1: Exactly.
Speaker 2: Those are some great principles to guide our work.
Speaker 1: Yeah, I think so, and I think they're really relevant today,
Speaker 1: even more so than they were back in twenty fourteen
Speaker 1: when the book was first published.
Speaker 2: Yeah, I agree. So how do we actually put these
Speaker 2: values into practice? What are some of the specific practices
Speaker 2: that Mankus advocates for.
Speaker 1: Right, Well, that's a great question, and that's what we're
Speaker 1: going to dive into in our next segment.
Speaker 2: Awesome, I'm looking forward to it me too.
Speaker 1: Okay, so we've talked about the technical side. You know,
Speaker 1: the practice is the principles, right, But what about that mindset?
Speaker 1: What makes a software developer a true craftsman beyond just
Speaker 1: writing clean code?
Speaker 2: Well, you know, I think it's about approaching your work
Speaker 2: with a certain level of intentionality and ownership. You know,
Speaker 2: a true software raftsmen sees themselves as a professional, not
Speaker 2: just a code monkey.
Speaker 1: Right.
Speaker 2: They take pride in their work. They strive to constantly
Speaker 2: improve their skills.
Speaker 1: It's interesting you say that because Mancuso talks about this
Speaker 1: idea of owning your career and it's not just about
Speaker 1: you know, keeping up with the latest JavaScript frame, right.
Speaker 1: It's about taking control of your professional development and constantly
Speaker 1: seeking out opportunities to learn and grow.
Speaker 2: It's about recognizing that your career is your responsibility, not
Speaker 2: your employers. It's about setting your own goals, seeking out mentors,
Speaker 2: building a network of peers who can support you along
Speaker 2: the way.
Speaker 1: And he even shares his own story, right yeah, about
Speaker 1: wanting to work in London and how he had to
Speaker 1: adapt and teach himself new skills. Wow, to make that happen.
Speaker 1: That's impressive and it really highlights I think the importance
Speaker 1: of being proactive and taking ownership of your career path.
Speaker 2: Absolutely, and that actually ties into another key aspect of
Speaker 2: the craftsman's mindset, which is embracing a culture of learning.
Speaker 2: It's about being curious, constantly asking questions, and actively seeking
Speaker 2: out knowledge.
Speaker 1: He talks about you know, blogs, conferences, open source projects,
Speaker 1: even just like informal conversations. Yeah, with other developers.
Speaker 2: It's all about learning.
Speaker 1: It's all part of that that learning process.
Speaker 2: Yeah. And you know, it's interesting to think about how
Speaker 2: this connects to the bigger picture. You know, by sharing
Speaker 2: our knowledge and experiences, we all benefit and the craft
Speaker 2: of software development as a whole continues to evolve.
Speaker 1: It raises the tide for everyone exactly. One thing that
Speaker 1: really struck me was Mancuso's emphasis on finding purpose and
Speaker 1: meaning in your work. It's not just about you know,
Speaker 1: punching the clock and collecting a paycheck. It's about feeling
Speaker 1: like your work has a real impact.
Speaker 2: Absolutely, a true craftsman sees their work as more than
Speaker 2: just writing code. They understand how their work fits into
Speaker 2: the bigger picture, okay, and how it contributes to the
Speaker 2: success of the client and the end us.
Speaker 1: And he even talks about, you know, having the courage
Speaker 1: to say no, oh, yeah, which I think can be
Speaker 1: really difficult for.
Speaker 2: Developers, especially early in their careers.
Speaker 1: Especially early in their careers.
Speaker 2: Yeah, yeah, you want to please everyone.
Speaker 1: You want to please everyone. You want to take on
Speaker 1: every project you want to You want to prove yourself,
Speaker 1: prove yourself exactly.
Speaker 2: But sometimes saying no is the most professional thing you
Speaker 2: can do.
Speaker 1: He makes a really good point there.
Speaker 2: Yeah, a software craftsman understands that taking on too much
Speaker 2: work or agreeing to unrealistic deadlines can ultimately compromise the
Speaker 2: quality of the software, right and damage their reputation in
Speaker 2: the long run.
Speaker 1: So it's about being honest with yourself and your clients, yes,
Speaker 1: about what you can realistically achieve.
Speaker 2: Exactly, And it's about having the courage to stand up
Speaker 2: for what you believe in.
Speaker 1: Okay, So all of this sounds great in theory, right,
Speaker 1: but how does this whole translate to the real world
Speaker 1: of software development? Let's face it, you know, we're not
Speaker 1: all working on greenfield projects, yeah, with unlimited budgets.
Speaker 2: And right, the real world is messy.
Speaker 1: The real world is messy, it is. So how does
Speaker 1: software craftsmanship help us deal with the messy realities of
Speaker 1: legacy code, tight deadlines and demanding stakeholders.
Speaker 2: Well, that's where the rubber meets the road, right, Yeah,
Speaker 2: and Mancuso doesn't shy away from these challenges. In fact,
Speaker 2: he offers some really practical advice for navigating those choppy waters.
Speaker 1: So let's start with legacy code. Okay, I think most
Speaker 1: developers have had to deal with that beast at some
Speaker 1: point in their careers.
Speaker 2: Oh yeah, for sure.
Speaker 1: How does software craftsmanship help us approach that challenge?
Speaker 2: Well, Mancuso encourages us to see legacy code as an
Speaker 2: opportunity for growth, not just a burden.
Speaker 1: Okay.
Speaker 2: He says working with legacy code can be a great
Speaker 2: way to hone your skills in refactoring, testing, design.
Speaker 1: He doesn't sugarcoat it, though, No, he doesn't. He acknowledges
Speaker 1: that it could be incredibly frustrating, time consuming.
Speaker 2: Of course, but he argues that by approaching legacy code
Speaker 2: with a craftsman's mindset, we can slowly but surely make
Speaker 2: it better.
Speaker 1: Okay.
Speaker 2: It's about making small, incremental improvements over time, rather than
Speaker 2: trying to boil the ocean.
Speaker 1: So it's about pragmatism as well. Yes, absolutely, it's not
Speaker 1: always about achieving perfect code, but about making things better
Speaker 1: within the constraints of the project.
Speaker 2: Exactly. You have to balance your desire for clean code
Speaker 2: with the practical realities of the project. Sometimes you have
Speaker 2: to make compromises, but you should always strive to leave
Speaker 2: the code base better than you found it.
Speaker 1: He gives the example of working on a startup where
Speaker 1: the business needs are constantly changing. In that context, it
Speaker 1: might make sense to build a thin slice of functionality
Speaker 1: first to get feedback quickly, and then add more robust
Speaker 1: testing and structure as the requirement solidify.
Speaker 2: Exactly, It's about adapting your approach to fit the context,
Speaker 2: and sometimes that means being pragmatic and making trade offs.
Speaker 1: Another challenge that Mancusu addresses is the issue of low morale.
Speaker 2: Oh yeah, that's a big one.
Speaker 1: He uses the term agile hangover to describe the disillusionment
Speaker 1: that some companies experience after adopting agile methodologies.
Speaker 2: So it's not all sunshine and rainbows with agile, not
Speaker 2: always no, So what are some of the causes of
Speaker 2: this agile hangover?
Speaker 1: Well, he argues that low morale is often a symptom
Speaker 1: of a deeper problem. Okay, a lack of autonomy, mastery,
Speaker 1: and purpose in the work.
Speaker 2: I see.
Speaker 1: Developers can feel like cogs in a.
Speaker 2: Machine, yeah, just churning out code.
Speaker 1: Rather than valued professionals who are making a real.
Speaker 2: Contribution, right, they lose that sense of ownership and that
Speaker 2: can be really demotivating.
Speaker 1: He shares a story about joining a team where the
Speaker 1: project was in chaos, deadlines were looming okay, and the
Speaker 1: developers were completely demotivated.
Speaker 2: That sounds like a nightmare, it does. Yeah, So how
Speaker 2: did he turn things around?
Speaker 1: Well, what's interesting is that he didn't come in and
Speaker 1: try to impose his ideas on the team, okay. Instead,
Speaker 1: he focused on building relationships, fostering a culture of collaboration,
Speaker 1: and empowering the developers to take ownership of the project.
Speaker 2: So he gave them back that sense of ownership.
Speaker 1: Exactly, And that seemed to be the key. Right. By
Speaker 1: giving the developers more autonomy and a sense of ownership,
Speaker 1: their morale improved and they started to care about the
Speaker 1: quality of their work against is they.
Speaker 2: Felt valued exactly, And that's so important.
Speaker 1: And this is where I think software craftsmanship can be
Speaker 1: a really powerful antidote to low morale.
Speaker 2: Okay.
Speaker 1: I see that by focusing on the craft of software development,
Speaker 1: fostering a culture of learning, and giving developers a sense
Speaker 1: of ownership, right, we can create a work environment where
Speaker 1: people are not just coding Okay, they're crafting.
Speaker 2: I love that analogy.
Speaker 1: It's about taking pride in your work, Yeah, and seeing
Speaker 1: yourself as a craftsman.
Speaker 2: So this all sounds great, but how do we actually
Speaker 2: bring about this kind of change in our own teams
Speaker 2: and organizations? Right, especially when you consider that not everyone
Speaker 2: is going to be on board with this software craftsmanship
Speaker 2: thing right out of the gate.
Speaker 1: Yeah, that's the million dollar question, isn't it?
Speaker 2: It is?
Speaker 1: How do we actually drive change and create a culture
Speaker 1: of craftsmanship in our organization?
Speaker 2: That's the challenge.
Speaker 1: It's definitely not easy, but Mancuso offers some practical advice. Okay,
Speaker 1: good on how to approach this challenge.
Speaker 2: Well, let's dive into that in our next segment.
Speaker 1: So we've talked about, you know, the challenges, the mindset,
Speaker 1: the practices, but how do we actually bring about change
Speaker 1: within our teams and organizations?
Speaker 2: Right? It's one thing to read about these ideas, but
Speaker 2: it's another thing entirely to actually implement them exactly.
Speaker 1: Yeah, how do we convince our colleagues, our managers, maybe
Speaker 1: even ourselves that this software craftsmanship approach is worth pursuing.
Speaker 2: Yeah, it's a valid question, and Mancuso acknowledges that. Okay,
Speaker 2: you know there will be resistance, right, You won't win
Speaker 2: everyone over immediately, of course not. He even breaks down
Speaker 2: the types of skeptics to encounter.
Speaker 1: All right, let's hear about these skeptics.
Speaker 2: Which I found incredibly helpful.
Speaker 1: Who are we dealing with here?
Speaker 2: So he talks about the uninformed? Okay, these are folks
Speaker 2: who simply aren't aware of the benefits of practices like
Speaker 2: TDD or pair programming.
Speaker 1: Okay.
Speaker 2: Then you have the burned who've tried some of these
Speaker 2: things in the past but had negative experiences, maybe due
Speaker 2: to poor implementation or a lack of support.
Speaker 1: I've been there.
Speaker 2: And then there's the time crunched who feel like they
Speaker 2: don't have time for anything beyond just getting the code
Speaker 2: out the door.
Speaker 1: We've all worked with that person, and.
Speaker 2: Of course we can't forget the cynic Oh.
Speaker 1: Yeah, who believes that nothing will ever change right, and
Speaker 1: that we're all doomed to a life of spaghetti code
Speaker 1: and endless bug fixes.
Speaker 2: It's not going to get any better.
Speaker 1: He even mentions the Ivory Tower architect, Okay, who's more
Speaker 1: interested in abstract designs and buzzwords than the practical realities
Speaker 1: of building maintainable software.
Speaker 2: Sounds like we've got a whole prast of characters to
Speaker 2: contend with here, we do. So how do we approach
Speaker 2: these skeptics? Do we just like bombard them with articles
Speaker 2: and conference talks about the virtues of software craftsmanship.
Speaker 1: Well Mancuso suggests a much more subtle and effective approach.
Speaker 2: Okay.
Speaker 1: He emphasizes the importance of leading by example. Okay, instead
Speaker 1: of just talking about the benefits of TDD, actually do
Speaker 1: TDD in your own work, right, Let the results speak
Speaker 1: for themselves, don't tell exactly, and be patient. Change takes time,
Speaker 1: especially within organizations. Yeah, start small, focus on building trust,
Speaker 1: and gradually introduce new practices and ideas.
Speaker 2: So it's a marathon, not a sprint, exactly.
Speaker 1: Don't try to force it on anyone. And he also
Speaker 1: talks about choosing your battles wisely.
Speaker 2: Right, Absolutely, you don't have to win every argument.
Speaker 1: Yeah, sometimes it's better to just let it go.
Speaker 2: Focus your energy on the changes that will have the
Speaker 2: biggest impact. Okay, and don't get bogged down in debates
Speaker 2: about minor details. Right, Sometimes it's better to pick your
Speaker 2: battles and focus on making incremental progress now.
Speaker 1: And Kuso also talks about technical leadership, yes, and how
Speaker 1: it plays a crucial role in driving change. What are
Speaker 1: some of the key takeaways for those in leadership positions
Speaker 1: who want to foster a culture of software craftsmanship.
Speaker 2: Well, he makes a distinction between being a boss and
Speaker 2: being a leader. Okay, a boss might dictate solutions and
Speaker 2: micromanage every detail, while a leader focuses on empowering their team. Okay,
Speaker 2: it's about guiding the team toward a shared understanding and
Speaker 2: enabling them to make their own decisions.
Speaker 1: He also stresses the importance of communication right.
Speaker 2: Absolutely, It's not enough to be a technical whiz.
Speaker 1: Right.
Speaker 2: You also need to be able to communicate your ideas
Speaker 2: clearly and persuasively to your team, to your stakeholders, even
Speaker 2: to those skeptical colleagues we talked about earlier.
Speaker 1: So it's about being able to articulate the why.
Speaker 2: Behind the what exactly. And he also talks about humility okay,
Speaker 2: which I think is often overlooked in technical leadership.
Speaker 1: Right.
Speaker 2: Humility is crucial. It's about recognizing that you don't have
Speaker 2: all the answers and being open to learning from others,
Speaker 2: including those who might be less experienced than you.
Speaker 1: Now before we wrap up, I want to circle back
Speaker 1: to something we touched on earlier, this idea of the
Speaker 1: software craftsman as a role model. What does that actually
Speaker 1: look like in practice?
Speaker 2: Well, it goes beyond just writing clean code. It's about
Speaker 2: embodying the values of software craftsmanship in everything you do,
Speaker 2: from how you approach your work to how you interact
Speaker 2: with your colleagues and clients. It's about integrity, honesty, and
Speaker 2: a commitment to excellence. It's about setting a high bar
Speaker 2: for yourself and inspiring others to do the same.
Speaker 1: Menkuso uses this really powerful phrase. He says, a craftsman
Speaker 1: is never missed for the wrong reasons. What does that
Speaker 1: mean to you?
Speaker 2: It means that true craftsmen leave a positive legacy. Okay,
Speaker 2: they are not missed because they were bottlenecks, hoarding knowledge
Speaker 2: or creating mountains of technical debt. They are missed because
Speaker 2: they made a real difference. They elevated the craft, and
Speaker 2: they helped others to grow and develop their skills.
Speaker 1: That's a beautiful way to put.
Speaker 2: It, and it's something we should all aspire to.
Speaker 1: So as we wrap up this deep dive into the
Speaker 1: world of software craftsmanship, what are the key to acoways,
Speaker 1: you hope our listeners are walking away with.
Speaker 2: Well, I hope they're walking away with a deeper understanding
Speaker 2: of what software craftsmanship is all about. It's not just
Speaker 2: about writing clean code. It's about approaching software development with
Speaker 2: a certain level of intentionality, professionalism, and a commitment to
Speaker 2: continuous improvement.
Speaker 1: It's about elevating software development from a job to a craft,
Speaker 1: and it's about realizing that we as developers have a
Speaker 1: responsibility to ourselves, to our clients, and to the world
Speaker 1: to create software that is not just functional, but also
Speaker 1: well crafted, maintainable, and truly valuable.
Speaker 2: It's about taking pride in our work and striving to
Speaker 2: leave a positive legacy behind. It's about being more than
Speaker 2: just coders. It's about being craftsmen.
Speaker 1: What a fantastic note to end on. Thank you so
Speaker 1: much for joining us on this deep dive into software craftsmanship.
Speaker 1: We hope this has inspired you to continue exploring this
Speaker 1: fascinating philosophy and to keep honing your craft. And remember,
Speaker 1: a craftsman has never missed for the wrong reasons.