Laws of Computer Programming
Computer Programming Quotes
SOLID Development Principles
Bug fixing and reparations
Eight Tips on How to Manage Feature Creep
Avoid Scope Creep in Enterprise Software Implementation
Top 16 Things That absolutely Annoy Programmers
Universal methods of reducing complexity
SW Craftmenship Video
SW Craftmenship Definition
IBM Cloud
Managing Project Creep  
SW Craftmenship
on Fri, Mar 4, 2011 at 10:14 PM, Bobby Johnson wrote


SW Craftmenship
Software Craftsmanship is a developer movement that is somewhat in response to what Agile has become in the last few years. Agile as a brand has pretty much abandoned the developer practices from XP that agile grew out of and now puts a heavy focus on business process. Thus you get Agile shops who practice Scrum, but don't do unit testing or continuous integration which are fundamental practices that enable rapid evolution of code required by agile projects.

SC is trying to put the developers focus back on writing quality sustainable code. And offering the idea that a programmer is a professional in the same vein as a structural engineer. A engineer will not sacrifice load bearing walls to save time or because the customer insists it be done that way. The engineer bears a responsibility to prevent dangerous situations. This view is somewhat controversial in the software development community, the idea that a programmer should resist or even refuse to do silly things because the customer tells you to.

The other facet of SC is on continuous learning. A craftsman practices their craft, learns from others and teaches the next generation of craftsman. Some craftsmanship shops out in Chicago have started apprenticeship programs where they will bring on a novice developer and invest the time to train them. They see it as an altruistic endeavor, giving someone the opportunity to break into a career and they are constantly grooming their own talent pool in the process. 8)

You can read the manifesto here, which is additive to the agile manifesto. And you can read more about the movement here. Also read the writings of Jason Gorman, Corey Haines and Dave Hoover. They are my biggest influences from SC, short of Uncle Bob, Kent Beck and Michael Feathers who transcend movements.


The author, Pete McBreen, presents a method to nurture mastery in the programmer, develop creative collaboration in small developer teams, and enhance communications with the customer.
By recognizing that software development is not a mechanical task, you can create better applications.
Today’s software development projects are often based on the traditional software engineering model, which was created to develop large-scale defense projects. Projects that use this antiquated industrial model tend to take longer, promise more, and deliver less.
As the demand for software has exploded, the software engineering establishment has attempted to adapt to the changing times with short training programs that teach the syntax of coding languages. But writing code is no longer the hard part of development; the hard part is figuring out what to write. This kind of know-how demands a skilled craftsman, not someone who knows only how to pass a certification course.
Software Craftsmanship presents an alternative—a craft model that focuses on the people involved in commercial software development. This book illustrates that it is imperative to turn from the technology-for-its-own-sake model to one that is grounded in delivering value to customers. The end result—skilled developers who can create, extend, and enhance robust applications.
This book addresses the following topics, among others:
Understanding customer requirements
Identifying when a project may go off track
Selecting software craftsmen for a particular project
Designing goals for application development
Managing software craftsmen
Software Craftsmanship is written for programmers who want to become exceptional at their craft and for the project manager who wants to hire them.