2

Technical Debt

Posted September 11th, 2010 in Uncategorized by Richard

I gave a talk on September 7, 2010, at the Neon Guild meeting.

http://www.neonguild.org/

I spoke about Ward Cunningham’s concept of technical debt, weaving in some ideas I got from Alistair Cockburn about the cost of making changes to software and practices such as refactoring and automated testing as a way to reduce ‘debt’.

The key idea is that software change becomes increasingly costly (exponentially as the number of changes).  I related technical debt to a buildup of complexity and confusion in the software design over time.  And I spoke of ‘building knowledge in’ as a way to reduce this problem.  Building knowledge in means improving the design, as new understanding is acquired.  New understand always occurs, but it is not always built back into the software, and thus risks getting lost in documents and in the heads of people who leave the project.  Knowledge is built in by continually improving the design, as well as adding automated tests.  The activities for doing this are paid back in cost savings over time.

Here’s a link to a PDF of the slides I used in the talk.

Technical_Debt

0

Restlet

Posted July 25th, 2010 in Uncategorized by Richard

I’ve started working with Restlet, a Java API supporting the REST protocol.  It seems to be a well-developed and supported framework and I look forward to digging deeper.

http://www.restlet.org/about/

0

Principles of Product Development Flow

Posted June 16th, 2010 in Uncategorized by Richard

I am reading this excellent book by Donald G. Reinertsen.  I found this blog post that gives a good introduction to it.

http://www.startuplessonslearned.com/2009/07/principles-of-product-development-flow.html

0

SEMAT

Posted June 2nd, 2010 in Uncategorized by Richard

http://www.semat.org/bin/view

I found out about this from Martin Fowler’s Bliki post:

http://www.martinfowler.com/bliki/Semat.html

Both he and Alistair Cockburn looked at the SEMAT effort and walked away.

http://alistair.cockburn.us/Why+I+withdrew+from+SEMAT

What is interesting is that there seem to be two very different camps on software methodology.  In my view the one exemplified by the SEMAT camp is rooted in nineteenth century scientific philosophy, while the other is influenced by twentieth century existential philosophy.  They fight a never-ending war over what is ‘real’.  It goes much deeper than either side suspects.  I take the side of the twentieth century thought, because in my view it developed because of real problems in the older ways of thinking, problems that science as a whole has yet to come to grips with after more than 100 years.  Two twentieth century philosophers who were colleagues, Bertrand Russell and Ludwig Wittgenstein, represented different sides of this dispute.  It’s not by chance that Cockburn’s book includes Pelle Ehn’s essay that refers to Wittgenstein.  I’ve always felt that SEMAT-type people – and many scientists in general – lack a background in the history of philosophy, to their detriment.

0

Sonar

Posted May 22nd, 2010 in Uncategorized by Richard

I’ve been kicking the tires on Sonar.

http://www.sonarsource.org/

I’ve used code analyzers, Checkstyle, PMD, Findbugs, Cobertura, for a number of years, and looked at Sonar a while ago.  But now revisiting it, Sonar seems to be the way to go to integrate all of these open source tools.  Sonar is a Java-based web application that runs out of the box in a Jetty server with a Derby file-based data store.  For industrial use you deploy it to Tomcat with a MySQL or Oracle database behind it.  The UI is astounding!  And the Nemo site is a showcase for Sonar.

http://nemo.sonarsource.org/

The Nemo site is Sonar.  You can browse through many open source projects there and see how it works without having to download or install anything.  Sonar itself is included in the projects analyzed!

1

A Dream of Software Quality

Posted May 9th, 2010 in Uncategorized by Richard

I had an amazing dream last night.  It is the only dream I’ve had where in the dream itself I remember having a dream and then I tell other people in the dream about it.

The dream in the dream went like this.  I was a software developer who was given a new software tool by my employer, a tool that measures the quality of some other software.  I loaded up the tool and fed it the software I was developing, but something went wrong.  It all crashed!  It being my job to find out what went wrong, I debugged it and discovered that the tool took too much memory!  The tool needed more resources than we had available.

The next scene in my dream was the next day at work, where I told the dream about the software quality tool to two of my colleagues, named Jeff and John.  I explained that my interpretation of the dream was that our company was being asked to use a system for compliance with software quality that would take up so many resources of people and time that it would not work.

Then I actually did wake up.  I told my wife that I had a dream in a dream and told people about the dream in the dream.  And she agreed that it was one of those significant dreams that tell you some truth about your life.

0

Why ISO9000?

Posted May 9th, 2010 in Uncategorized by Richard

Why did ISO9000 come about?  I think it addresses a problem of lack of trust in the corporate world.  Its main purpose is to raise (someone’s) confidence in the ability of an organization of human beings to deliver value to some other organization.  Such confidence is needed prior to entry into formal agreements and commitments to allay fears.  It is a problem of scale, as well.  If I need a licensed plumber, I might ask my neighbor for a recommendation, because I trust my neighbor to give me an honest opinion.  If I have a small company, as I grow I can get more customers by using existing customers as references.  But suppose I am a large corporation with government contracts requiring high levels of security and privacy?  How do I get new customers?  I have to develop marketing and public relations, since customer references are no longer useful.

ISO9000 is a form of marketing.  It is a strategy for building confidence in one otherwise unknown party by another.  It may succeed at some level at that goal.  But it is a goal of manipulating perceptions, not one of producing good products.  Good products still have to be produced, even where there is ISO9000.  And good products can be produced where there is no ISO9000.  ISO9000 is primarily about creating the perception of the ability to produce goods, not about actually doing this.  It is about creating a feeling of trust, prior to the existence of any material basis for it, just like my feeling of trusting the new plumber before he or she does the job for me.

Another dimension of trust, or lack thereof, comes from managerial culture.  Managers by definition do not produce the goods.  Workers do that.  Unless managers know what their workers do, i.e. have direct experience of quality work done in the past, they have no basis for trust of their workers, other than the standard credentials of education and experience, the basis on which workers are hired.  ISO9000 can thus be wielded as a weapon of command and control.  In place of trust, managers can impose “processes” on workers with the premiss that rules, if followed, will lead to a good product.  Instead of trusting workers, the managers can get a similar  feeling of confidence that the customers get from having ISO9000 in place.

To summarize:  ISO9000 arose to address some of the lack of trust issues inherent in the contexts of inter-corporate and intra-corporate social structures.  It presupposes lack of trust and substitutes feelings of confidence that can only be confirmed (or not) at the end of the product delivery cycle with the establishment of trust based on history.

The important point is not to confuse a feeling of trust based on a marketing strategy with trust based on outcomes.  Yes, ISO9000 purports to measure the outcomes.  But how well does it succeed at that measurement and how well can that measurement be trusted?  Some people easily believe whatever they are told.  Others need to be convinced by experience.  Which type of person are you?

For an overview of ISO9000 try Wikipedia

http://en.wikipedia.org/wiki/ISO_9000#Contents_of_ISO_9001

Whenever I want to learn about some philosophy, such as ISO9000, I make a point of finding some credentialed critics of it.  The British author, John Seddon is a noted critic of ISO9000.  You can read a summary here.

http://www.systemsthinking.co.uk/6-22.asp

His book “Freedom From Command and Control” is available on Amazon:

http://www.amazon.com/Freedom-Command-Control-Rethinking-Management/dp/1563273276