The Free Dictionary defines a craftsman as; “someone who practises a craft with great skill“. A craft is defined as; “skill in doing or making something…“. I see two types of crafts-people in the software field today; tool creators and product creators. In carpentry, a carpenter uses a range of different tools to create furnitures for you and I, rarely does the carpenter create the tools she uses today, however if one traces back to the beginning, the carpenter did create her own tools before the industrial revolution and thankfully now, she can just focus her craft towards serving the customer’s vision.
Tool creators in the software field are the developers (usually hackers) that create the languages, development environments, protocols, etc. Product creators use the tools created, to make different web, GUI, mobile apps, etc that we all use to make our lives better. The beauty of the software industry is that, most at times, developers start as product creators and grow into tool creators because they might have an itch that current tools don’t scratch well or other reasons personal to them.
The plethora of tools available in the software field today is overwhelming. Personally, I enjoy writing software, specifically product based software, were problems for non-technical users are solved using the proper toolset. My current favourite are ruby, the rails framework and its surrounding stack for building web based applications. The intention is to really understand my current toolset at a higher level, in order to solve problems for users that meet specifications with the codebase remaining easy to maintain by other developers. I don’t have a need to create any tools, there are way too many that solve a huge amount of problems. Thank you all tool and product creators, your hard work have made the software industry a much better place today, I do hope someday, user’s I create for, will say the same thing.