Tuesday, February 1, 2011

Software Craftsmanship Manifesto


Interesting article on the never ending theme of what is the profession of programming.

Couple of thoughts:

A professional body is, no matter how named, a guild. Its purpose is to prevent undue competition and promote the interests of its members over the interests of non-members and prevent said non-members from becoming members. Look at all the professional bodies that exist today.

Issues of product risk, liability and statutory rights have not been dealt with. I have always thought that the biggest value of a professional body is to prune-the-tree. Remove the poorly performing members as they are identified via professional misconduct hearings. The problem is that most professionals are uneasy about making a peer unemployed, so the system ceases to function if its run as a self-governing body.

As a standards organisation, it becomes a tick the box game. You can create some software, in budget, that meets all the standards and still does not work. The trap is trying to write a blank cheque clause in the standards about the product being fit for purpose or something similar as its then up to the client to write what the fitness should be.... and that's an endless series of half described ideas that evolves every time you have the discussion.

Trying to find a definition (or box) to put programming in, such as a craft, art, trade, profession etc is just too abstract and silly. No one cares. The end result is the bit that people start to care about. Where the work you do meets the money they either spend or make.  At that point they start thinking about risk, liability, cost, resources, profit etc.

One of the biggest issues is measurement, and specifically quality measurement.  "Good enough" is a measure in the same vein as "Fit-for-purpose". Having someone certified as a professional and competent to practice does not place any standard of measurement upon their performance.

Another issue is that of professional ethics.  This is something else that never seems to get a mention. Ethics is essential in many occupations but seems to be a non-starter in programming. It just doesn't get mentioned.

Must rant on this topic more later....

No comments:

Post a Comment