Why Practicing Software Craftsmanship Makes You a Better Developer
The article explores how deliberate practice, shared values, and a craft‑oriented mindset empower programmers to continuously improve their skills, adopt solid engineering practices, and evolve from apprentices to true software artisans.
Software craft activities emphasize practice as a way to develop programming skills and become a software artisan, highlighting the importance of technical practice for becoming better programmers.
As software craftsmen, we continuously improve professional development through practice and share the following values: Not only must software work, but it must be refined. We must respond to change while steadily adding value. Beyond individuals and interactions, we need a community of professionals. Collaboration with customers should evolve into effective partnerships. Thus, the left‑hand goals are worthwhile, and the right‑hand ones are equally essential.
Chris ODell’s blog post “the codesmith” defines a craftsman as someone who infuses personal quality into their work, creating high‑quality products whose methods can be passed on.
He coined the term “code smith” to describe the progression from apprentice to master, and later wrote “Anyone Can Be a Code Smith,” explaining how self‑improvement leads to becoming a code giant.
“The threshold to become a code smith should be low. Anyone who writes code can be called a code smith. We should pursue ideal craftsmanship with pragmatic realism, spend time learning skills, and practice to become good coders.”
Earlier this year, proponents of the craft movement stressed the importance of technical practice:
Matt Badgley: “We need to reaffirm the importance of good agile engineering practices and embrace the craft concept—without it, agility is impossible.” Robert Martin: “If you don’t use the 13 practices of extreme programming, you should adopt other good practices. Your practices define your culture and values.” Ruud Wijnands: “Many companies that adopt valuable, proven technical practices succeed; those that don’t rarely succeed.”
John Sonmez, in “Why I Don’t Use Coding Tricks,” argues that repeatedly solving the same problems does not improve skills; developers must continuously learn and increase difficulty.
Repeating the same coding tasks yields only marginal learning unless new constraints introduce fresh challenges; mere repetition is insufficient for excellence.
John emphasizes that hands‑on practice is essential for skill growth, urging programmers to write code to become software craftsmen.
He receives many emails asking for the best way to learn programming or improve skills, especially Android development. His reply: “Build Android apps. No need for books—just generate ideas, implement them, and learn by solving problems.”
Steve Ropa, in “Cultivating Software Craftsmen,” argues that university theory must be complemented with real‑world experience and apprenticeship programs.
He suggests turning workspaces into workshops, training craftsmen, and using apprenticeship models to prepare for future careers.
Steve outlines five key aspects for progressing from software apprentice to craftsman:
Code craft – using one or more programming languages to create clear, well‑structured code.
Practical principles – understanding and applying principles such as SOLID.
Technology and tools – mastering refactoring techniques and selecting appropriate tools for tasks.
Work habits – developing muscle memory for activities like TDD and continuous integration.
Soft skills – learning teamwork, communication, and other interpersonal abilities often overlooked in traditional education.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
21CTO
21CTO (21CTO.com) offers developers community, training, and services, making it your go‑to learning and service platform.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
