background preloader

Craftsmanship

Facebook Twitter

Craft and Software Engineering. Programming is not a craft « DanNorth.net. Software Craftsmanship risks putting the software at the centre rather than the benefit the software is supposed to deliver, mostly because we are romantics with big egos.

Programming is not a craft « DanNorth.net

Programming is about automating work like crunching data, processing and presenting information, or controlling and automating machines. Non-programmers don’t care about the aesthetics of software in the same way non-plumbers don’t care about the aesthetics of plumbing – they just want their information in the right place or their hot water to work. (Although it’s fair to say they appreciate decent boiler controls.) Motivation for software craftsmanship It would be great if programming were a proper profession, but it isn’t. Conversely there is no minimum entry requirement for programming. To illustrate how low the bar can be, the mission statement of Visual Basic (whether explicit or not) was to democratize programming.

The IT industry is relatively young – only a couple of generations old in fact. So what now? Heuristic Outcomes by Ade Oshineye: Software Craftsmanship: More than just a manifesto. TL;DR Ill-informed proponents of Software Craftsmanship tend to make the following mistakes:they don't read anything except the manifesto and a smattering of blog posts.they overlook books like Software Craftsmanship, Apprenticeship Patterns (which has dozens of references in the appendix looking at the nature of expertise and the mechanisms for the acquisition, transfer and enhancement of skill ) and The Craftsman.they don't define terms like craft or art so they end up thinking Software Craftsmanship is some code-obsessed mishmash of martial arts and carpentry or plumbing.they focus on how Software Craftsmanship can benefit masters rather than apprentices.they think that signing the manifesto is the most important part of becoming a software craftsman.

Heuristic Outcomes by Ade Oshineye: Software Craftsmanship: More than just a manifesto

Sadly Dan's blog post makes the same mistakes. Dan could provide some really valuable insights if he'd take the time to do some background reading. If the manifesto was the only artefact we had then many of his points would be valid. Manifestos. Managing software debt. Agile Craftsmanship. Manifesto for Agile Software Development. Manifesto for Software Craftsmanship. Robert Cecil Martin. Robert Cecil Martin (born 5 December 1952[1][2]), known colloquially as "Uncle Bob",[3] is an American software consultant and author.

Robert Cecil Martin

Martin has been a software professional since 1970 and an international software consultant since 1990. In 2001, he initiated the meeting of the group that created agile software development from extreme programming techniques.[4] He is also a leading member of the software craftsmanship movement. From 1996 to 1999 he was the editor-in-chief of the C++ Report. In 2002 he wrote Agile Software Development: Principles, Patterns, and Practices, which gives pragmatic advice on object-oriented design and development in an agile team. He has also published a number of popular books and articles on programming and software methodologies. Bibliography[edit] Designing Object-Oriented C++ Applications using the Booch Method.

See also[edit] References[edit] External links[edit] Agile Manifesto Signatories Personal Sites Talks Clean Coder. Software Craftsmanship. So what is software craftsmanship?

Software Craftsmanship

A better metaphor: In a very simplistic way, we can say that software craftsmanship is a better metaphor for software development than software engineering, as I wrote in a previous post. Software craftsmanship sees software as a craft and compares software developers to the medieval blacksmiths. Apprentices would work with more experienced blacksmiths, travelling from place to place, working with and for different masters, learning different tools and techniques, improving their craft until the point they were good enough to become master themselves. (There is more to it, but let's keep it simple for now). Wikipedia Definition: is an approach to software development that emphasizes the coding skills of the software developers themselves. I personally don't like too much the Wikipedia's definition. A more personal definition: Software craftsmanship is a long journey to mastery.

The Software Craftsmanship Movement Working code is not good enough.