Improving Wetware

Because technology is never the issue

Rejecting Software Engineering

Posted by Pete McBreen 28 Jun 2007 at 19:48

Eric Wise wants to become known as a software craftsman. His view is that craftsmen attempt to select tools, patterns, and practices and with them craft beautiful, working software.

His post has interesting parallels to the book Software Crafstmanship.

Hiring Good Developers

Posted by Pete McBreen 21 Jun 2007 at 19:47

Some thoughts on finding good developers to work on your projects.

To attract good developers you have to let them know what kind of application you are building, because there are two important questions that developers need to be answered about any development job - will this build my skills and reputation, and is this the kind of application I enjoy creating.

If you just list the technology in the project listing it is a negative because it implies you just want a coder to follow directions, so immediately you go to the bottom of the list of possible clients.

So to attract good developers, sell them on your idea of what you want to build. Specify the technology if you must, but that will cut down the number of people who will be interested in doing the work. You will also have to find some way of signaling that you have the budget to afford the type of people you want. It would also help if you could let people know the timeline and commitment involved - is it a small part-time task or full time total involvement year long task.

Craftsmanship and Certification

Posted by Pete McBreen 06 Jun 2007 at 19:40

It seems that once again some people are pushing to create a certification program for software developers.

This time they are promoting the idea that prefessionalism requires a certifying body with recognized certifications just like accountants etc. Luckily the author of the article is alert ot the problems of credentialism, so maybe the movement will be stillborn, but we need to stay vigilant to ensure that our craft does not get stuck in teh stone age due to some corporate welfare scam of IT credentials mandating that everyone who wants to work in It needs to know about mainframe JCL.

Uncertainty in Software Development

Posted by Pete McBreen 20 Apr 2007 at 19:45

I never cease to be amazed by project managers who give lip service to the idea that there are some unknowns in their project plan and then give precise estimates for their schedule.

It seems as if intellectually we can see that there are unknowns, but when it comes to our projects we think we are special and we can precisely predict how long our project will take.

Sometimes I forget that I like Ruby

Posted by Pete McBreen 12 Mar 2007 at 12:25

Had a fun experience today

irb(main):001:0> 7.7
=> 7.7
irb(main):002:0> 7.8
=> 7.8
irb(main):003:0> 7.7-7.8
=> -0.0999999999999996

Yes I know it is a Float, but everything else just works so I was lulled into a false sense of security, after all the other two bits worked OK

irb(main):006:0> 7.7 + 0.1
=> 7.8
irb(main):007:0> 7.8 - 0.1
=> 7.7

But that 7.8 - 7.7 just did not want to play nice.

Backup script for typo blogs

Posted by Pete McBreen 14 Feb 2007 at 08:42

Ruby script for backing up blogs is here. Feedback from testers is appreciated.

Your blog is saved into a YAML file and can either be uploaded back to the original blog or a different one.

Backup or Restore the content of a blog to/from YAML whose host server supports the MetaWebLog API. (Currently supports typo|wordpress|blogger)

Script was originally created by Derek Mahar for migrating posts between blogs and then changed extensively to serve as a backup/restore utility by Pete McBreen

Sample command lines (program prompts for blog password)

ruby backup\_blog.rb username backup.yaml 25 typo backup

ruby backup\_blog.rb username backup.yaml num\_posts typo restore

(the num_posts argument is unused on restore)

Note: typo has bug whereby it ignores createdDate when creating URL, but does show correctly posted x days ago. Clicking on the link on the home page fails but it generates feed OK — puzzling — not fixed yet.

Code uses the metaweblog API

source_posts =

and then saves the posts to a YAML file

f =, "w")
f.puts source_posts.to_yaml

Tools are interesting, important, and irrelevant

Posted by Pete McBreen 08 Feb 2007 at 12:52

My interview for the Sticky Toolkit with Joey McAllister is now online.

The best question was when I was asked about changes I have seen in development over the past few years. This was mainly because One change I have seen for the worse is the habit of producing ravioli documentation… [that just repeats] what the parameters to the method are and what it returns.

Doesn't everyone think about testing like this?

Posted by Pete McBreen 04 Feb 2007 at 02:05

Michael Bolton recently pointed out on an agile testing list that few people think of
Testing as questioning the product in order to evaluate it or Testing as an empirical, technical investigation of the product, done on behalf of stakeholders, with the intention of revealing quality-related information of the kind that they seek.

This is interesting to me because the Testing as finding defects is not very high value and test driven development is a technique to allow developers to think through issues, rather than something that protects the stakeholders interests.

Yes Testing-as-design and Testing-as-confirmation are interesting, but they are not typically the things that make or break a project.

Professionalism and Engineering

Posted by Pete McBreen 19 Jan 2007 at 02:46

Been thinking about how craftsmanship interacts with professionalism and engineering. Real engineers seem to have professionalism sorted, in that they have personal accountability and responisibility for their work.

Software developers do not have that yet because we know that our stuff may/will crash. Indeed most software licences state that there is no guaranteee that the sofwtare will even work.

Reality vs. Theory

Posted by Pete McBreen 14 Jan 2007 at 10:58

In software development, the reality about what is happeing often disagrees with theory as Michael Riddle points out.

Philosophy of Testing

Posted by Pete McBreen 22 Dec 2006 at 11:44

A really great article by by James Bach Philosophers of Testing that explains how philosophy is closely related to the art of testing.

The quote at the end really sums it up That’s how I became a philosopher: My father believes that I must think for myself, and I always agree with my father.

A classic quote

Posted by Pete McBreen 08 Dec 2006 at 11:27

The Bjarne Stroustrup interview continues with a great quote.

The idea of programming as a semiskilled task, practiced by people with a few months’ training, is dangerous. I couldn’t agree more.

Bjarne goes on to say We wouldn’t tolerate plumbers or accountants that poorly educated. We don’t have as an aim that architecture (of buildings) and engineering (of bridges and trains) should become more accessible to people with progressively less training. Indeed, one serious problem is that currently, too many software developers are undereducated and undertrained.

In praise of C++

Posted by Pete McBreen 02 Dec 2006 at 07:29

Saw a good interview of Bjarne Stroustrup recently, including a wonderful soundbite There are just two kinds of languages: the ones everybody complains about and the ones nobody uses.

Bjarne made a great understaement the average Bell Labs programmer was significantly more able than most people’s notion of an “average programmer.” Well that could explain why C++ is expert friendly.

But on that point Bjarne is clear that C++ has indeed become too “expert friendly” at a time where the degree of effective formal education of the average software developer has declined. However, the solution is not to dumb down the programming languages but to use a variety of programming languages and educate more experts.

I disagree that more formal education is needed, but we do need to develop more expertise in software development. Personally I have used C++ a lot in the past and was always impressed by the systems that we built using it.

Everyday Scripting in Ruby

Posted by Pete McBreen 30 Nov 2006 at 10:47

Brian Marick has finally finished his scripting for testers book now called Everyday Scripting in Ruby. A part of the Pragmatic Bookshelf the book should be a great introduction to the art of scripting tasks to avoid drudgery ;-)

Does SOX solve the problem?

Posted by Pete McBreen 23 Nov 2006 at 10:45

It is interesting to see that there are starting to be articles critical of SOX. Yes, there were issues to be addressed, but putting a massive layer of beaurocracy on top of already stressed corporations was possibly not the best option.

Wading through code

Posted by Pete McBreen 18 Nov 2006 at 10:39

There are no shortcuts to becoming a better developer as Uncle Bob talks about in Wading Through Code. Like it or not, becoming a good developer requires a lot of work.

Agile requires discipline

Posted by Pete McBreen 12 Oct 2006 at 11:50

Brian Marick shares his thoughts about the value of clean code. He supports the idea that the Agile approches require a lot of discipline Agile depends critically on programmers keeping the code clean.

What evidence do we have that Agile works?

Posted by Pete McBreen 10 Oct 2006 at 11:51

Steve Yegge has some good questions about how good is Agile development and how do we know for sure about how good it is. He sees quite a lot of religion in the Agile approaches, something I noticed a lot of while writing Questioning Extreme Programming.

To date we have not done any really good experiments to validate whether the claims of the Agile approaches are credible, sure we have lots of anecdotes, but no evidence either way.

An interesting design failure

Posted by Pete McBreen 09 Oct 2006 at 12:48

Bruce Schneier poinmted to an interesting failure mode for ATMs. Given that the ATM is a case study in the Use Case Course this is one failure mode we did not consider.

  • The man then punched a series of numbers on the machine’s keypad, breaking the security code. The ATM was programmed to disburse $20 bills. The man reprogrammed the machine so it recorded each $20 bill as a $5 debit to his account.

It seems thatthere is a default password to allow the installers to program the machines.

I thought by now we would have learned NOT to have default passwords on systems.

Guess my answer to this

Posted by Pete McBreen 08 Oct 2006 at 11:55

Over on Coding Horror, Jeff Atwood asked Is Software Development Like Manufacturing?