One of the readings that is required as part of the apprenticeship program at Greater Sum is the Software Craftsmanship Manifesto. Here are the reflections of our current apprentices on what it means to them and their careers.
[I]t is hard to argue against the Craftsmanship manifesto principles.
I have known about the Software Craftsmanship Manifesto for a couple of years now but its principles are only recently beginning to be something I could hope to implement. I have only been developing software for a few months now and am still ecstatic to get working software. My favorite part of the Agile Manifesto is having it as a resource to help guide team decisions and you don’t really get that with the Craftsmanship Manifesto, it something you hang up at home to motivate you as an individual to strive for better. Lastly, and this is something that Sandro Mancuso brought up, it is hard to argue against the Craftsmanship manifesto principles. Some people like processes over interactions but I don’t think anyone would prefer working software over well-crafted software.
Craftsmen don’t hoard knowledge, they share it.
Software Craftsmanship is about raising the standard of professionalism in the software development industry. This takes actively practicing, improving and focusing on providing value in quality software. What stood out to me, about the manifesto, is that it also takes helping others learn the craft in a professional manner. Craftsmen don’t hoard knowledge, they share it. In doing so, they build a community of professionals committed to improving themselves and the industry as a whole.
I have the opportunity to grow and those I am teaching have an opportunity to grow.
The Manifesto for Software Craftsmanship packs a large amount of valuable thought-provoking ideas in a small concise package. In just 88 words, the authors have captured the ideas encompassing software development, identified what is important, and acknowledged what is even more valuable than those important things.
Helping others learn the craft is an easy way for me to help grow craftsmen. Consciously or not, I will be teaching the same principles by which I am striving to guide my work. As this happens, I have the opportunity to grow and those I am teaching have an opportunity to grow.
I really like the idea of well-crafted software. With my background of working on cars, it is easy for me to find a like example in the automotive realm. I liken the comparison to an entry level car of almost any make and an auto hand built by craftsmen, like a Bently. The differences are many and some of them are easily observable to the average observer. On the outside, panel gaps will be minimal and even throughout their length. Inside, components fit together and flow in a way that makes them seem to have been purposefully grown in that configuration. Both vehicles work. They both get you from point to point, but there is a distinct difference in the quality and execution.
I can attest to how much interacting with others accelerated my growth as a software craftsman.
To break an already small thing into even smaller chunks, I see the Software Craftsmanship Manifesto to encompass two main concepts.
First, that we focus on creating ‘well-crafted’ software. This includes not only the software itself, but the processes used the create the software. We need to steadily add value to our product and improve our processes while we deliver that value.
Second, that the community and partnership based approach is needed in order to practice and foster this ‘raising of the bar’ for Software Craftsmen. This to me is one of the most important aspects of becoming a software craftsmen. Partnering and connecting with customers and developers is key to growing and learning. As someone who spent a year learning computer science and programming on the internet with very minimal interacting with others in the field, I can attest to how much interacting with others accelerated my growth as a software craftsman. I wouldn’t even understand the idea of a software craftsmen if it weren’t for these new connections. I not only continue to learn and grow from the connections I make, but I relish those opportunities where I can provide the help and guidance that I received when I just started out. The more we are able to foster this community of software craftsmen, the faster we all move towards becoming ‘Masters’.
It is going that extra step or two. It is like the way an artist or athlete is constantly improving and helping others improve.
The Software Craftsmanship Manifesto encourages and instills the concept that building great software is more than just programming or being a developer. It is going that extra step or two. It is like the way an artist or athlete is constantly improving and helping others improve. Always working on new ideas as well as constantly practicing the basics to set a good foundation. As a community we should always be moving forward and improving, creating well-crafted software by always learning. This is what excited me about working at Greater Sum, the ability to learn as well as be part of the community.
[P]atching things together I will make faster progress initially, but eventually I will pay for my mistakes.
I really like how the Software Craftsmanship Manifesto added on to the Agile Manifesto. My favorite line of this was the distinction between well crafted software and working software. Software should work of course, but being well crafted brings it to the next level and ensures it is easier to work with and build upon in the future. I like that this point is being brought up in so many places. It applies to many areas of life, and it is no different in software. There are fast, sloppy ways to go about tasks – and then there are perhaps longer, or more tedious ways that ultimately produce better results. In my experience, cutting corners does not produce the best results. Often times in these cases of patching things together I will make faster progress initially, but eventually I will pay for my mistakes, taking longer to fix what I could have just done a better job at in the first place.