Software craftsmanship is hot topic which has been on the rise for quite some time. As it often goes new things are full of buzz and hype. As with all hypes people start to attach wild images and stereotypes on them. Fortunately there are smart people out there shedding some light upon software craftsmanship.

Dan North wrote an excellent blog addressing the issues that the software craftsmanship movement has and will generate if we are not careful. I do not share Dan’s fears though that the software craftsmanship movement will fill up with wannabe‘s and primadonnas. In any case they will be weeded out very fast. Wishing¬† to be good takes you only so far and when you have to deliver according to your promises, well…

Jason Gorman, in his blog, provides another view upon software craftsmanship. His ideas are more close to the idea that I have about the software craftsmanship and the software craftsmanship movement. An integral part of it is to satisfy the customer. To me software craftsmanship is simply a synonym for “do what you promised in a way that makes you proud “. It implicitly also means that I am always on a journey to become better. I want to become better so that I can make better software. Continuous improvement gives the tools to meet customer needs with a level of quality that satisfies myself and allows me to be proud of my work. Without continuous improvement you can’t be a craftsman. It also means that in order to be good I have to deliver the right thing. Not just excellent code but the right code. But this is nothing new, to quote Jason GormanSoftware craftsmanship’s not the “next big thing”. It’s an attempt to articulate what the “thing” always was“.

As I see it, software craftsmanship requires at least the following:

  • Continuously cultivated skills
    • achievable only with continuous improvement(Jason Yip put it nicely “Talent doesn’t determine how fast you get good; how much and how well you practice determines that“)
  • A positive attitude towards work
    • don’t just criticize, offer alternative solutions
    • do the boring jobs also with 100% effort
  • Humility
    • humble attitude is a must, we create software for others
    • we can’t ignore our customers, instead we must cherish them

Now, it is up to you to decide whether working from 9 to 17¬† as a generic programmer is enough for you or is there more to it… Just remember that there are no shortcuts nor 2-day courses to get a certificate. It is a lifelong journey.

I already made my choice, I want to be a software craftsman.

ps. get more of software craftsmanship @ Scandinavian Agile Conference 2011!

Software craftsmanship is hot topic which has been on the rise for quite some time.
As it often goes new things are labelled quite quickly. People form stereotypes and this
leads to conflicts as the meaning of the language differs.

Dan North wrote an excellent blog addressing the issues that the term software craftsmanship
has and will generate if we are not careful. Jason Gorman, in his blog, provides another
view upon software craftsmanship. They complement each other, giving you ideas to think
through.

To me software craftsmanship is simply a synonym for “do what you promised in a way that
you can be proud of your work”. It also means that I am always on a journey to become better.
Continuous improvement gives you the tools to meet customer needs with a level quality that
satisfies myself and allows me to show my work with pride.

software craftsmanship requires the following

* technical excellence
** achievable only with continuous improvement of one self
* a positive attitude towards your work, think carpenters for exanmple
* the will to always do your best

To quote Jason Gorman “” software craftsmanship is an old thing in new clothes. Still,
does not get enough attention in companies that make software. Agile world and software craftsmanship
walk hand-in-hand and support each other. They complement each other perfectly.

ps. get on with software craftsmanship @ Scandinavian Agile Conference 2011

Post filed under Software Craftsmanship and tagged , .

4 Comments

  1. If a key are in software craftmanship is satisfying customers, end-users and business in general I would very much like to see some emphasis put on skills that would serve those goals.

    Solid tech skills and good design eye are important, but they are only a part of the cake.

  2. You are absolutely correct. Everyone involved in writing software should attend customer service training (preferrably in school already) and find the inner customer care personality within. If nothing else we always have internal customers whose needs we have to fulfill.

    Customers give us the reason to write software. What would we do without them?

  3. That is a start, but only a scratch on the surface of what I am looking for. I would really like to break developers out of their silos, and get some proper experience outside of development. Attitude is insufficient, I want proper understanding that best comes from experience.

    Start with participating in designing a new business case with business development.

    Design some business processes and participate in some good analysis and design, six months of PO work might do it.

    Join a startup. Invent a new product. Sell it.

    Add a year of business studies to engineering degrees.

    Add a year of user experience design to engineering degrees.

    Don’t call anyone a software craftsman if their limit of experience is in software development only.

    Too radical?

  4. Not radical, ambitious maybe. But I can definitely hear you and feel the need.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>