I have about 4 years work experience in software, during which time I have been exposed to a number of different programming environments. Currently I work as a software developer, developing/maintaining/supporting an in-house developed data warehouse/reporting system, utilizing various technologies, such as *nix scripts, pl/sql, java, c#, perl.
What Does Software Craftsmanship Mean To Me?
The below won't be specific to software, but more about craftsmanship itself, or at least of my interpretation.The topics do overlap, but would make good bullet points on a slide..
Quality over quantity
Even with the best quality assurance program in place, due law of big numbers, defects could slip through. If we focus on few artifacts, with attention to detail/quality, it is more likely that less defects slip.
As a craftsman, my credibility/reputation is closely related to the products/artifacts I made. I cannot hide behind some impersonal organization. My reputation is the guarantee of my success/failure.
I want to be proud of my work. I want to get recognition. Personally. I want people who see what I created to nod approvingly.
Fitting custom needs
One size does not fit all. Nor do five sizes. No manufactured suit is going to fit me as well as one tailored to me.I don't need to solve all problems, I just have to solve those specific problems of my clients/customers. As a craftsman, I can afford to focus on the very needs of my customer, and don't dismiss them, since I have thousand other ones.
As a factory worker, one could get away and fulfill the job with just enough to know how to perform a certain thing. As a craftsman, I have to know/understand the product I am working on, to know what is possible, how, and if not, why.
I should know the principles, so a change in technology does not put me out of business. I am still so grateful that my first IT teacher took special care to teach us word processing concepts, and not Microsoft Word usage.
This has been part of all the above, but worth special mentioning. I could get to know my client, their needs. I can accept responsibility, acknowledge mistakes I might have made; no need to check with my supervisor.
I most likely have learned from an elder craftsman, by working for her. I will take my own apprentices, and pass my knowledge over to them.