Improving Wetware

Because technology is never the issue

Now using Tynt Insight

Posted by Pete McBreen 20 Jan 2010 at 20:02

Since I was on the team that developed it, thought it was about time to install Tynt Insight on this blog, so I can now see what gets copied and the links will be a bit different when you copy from the site.

Based on this trend we will probably reach 400ppm in April or May 2015.

Read more: http://www.improvingwetware.com/#ixzz0dDTBA0Gp

Under Creative Commons License: Attribution Share Alike

If Tynt Insight is working correctly, clicking on that link will take you to the CO2 blog post and highlight what was copies on that posting.

This link http://www.improvingwetware.com/2010/01/09/why-this-site-has-the-co2-badge#ixzz0dDTvtIq1 goes to the articles permanent page ans should always work even after there are more blog posts on the home page that have moved the CO2 article off the home page.

Good process vs. Bad process

Posted by Pete McBreen 17 Jan 2010 at 11:08

Interesting set on slideshare about the Netflix company culture. Process slide is number 61 - not quite figured out how to link directly to that slide - and the following slides…

Lesson: You don’t need detailed policies for everything

A tale of woe related to optimization

Posted by Pete McBreen 17 Jan 2010 at 08:52

In Optimised to fail the authors start with a great quote…

The late Roger Needham once remarked that ‘optimisation is the process of taking something that works and replacing it with something that almost works, but is cheaper’. [emphasis added]

Although the technical details of the protocol are not public, the authors seem to have managed to replicate what happens, but the key part of their paper are the vulnerabilities that they reveal. These vulnerabilities coupled with the transfer of liability for fraudulent transactions from the banks to the customers means that this protocol and the associated hardware and banking cards should be withdrawn from use.

Browser standards and slow progress

Posted by Pete McBreen 14 Jan 2010 at 11:13

Justin Etheredge has an interesting rant about browsers and the compatibility with standards. The paragraph below should have rounded corners from CSS, but as he says…

And how about this? If you’re looking at this in Safari, Opera, Firefox, or Chrome, then you are seeing nice rounded corners which are created using only CSS. Guess what you’ll see in IE8… nothing. A square box.

Looks like jQuery might be the way to go rather than trying to deal with these browser issues.

An interesting python project

Posted by Pete McBreen 13 Jan 2010 at 22:12

After all the fun and games in the press over the climate models, some developers decided to rewrite the climate models in python. So far their graphs seem to track pretty well to the fortran original code, but these are early days in this implementation of the code.

Looks like I’m going to have to update my python implementation as it is too old to run their code… I’m back at 2.5.1 and the code needs 2.5.4

Just because Zed is so awesome

Posted by Pete McBreen 13 Jan 2010 at 18:48

One of Zed’s earlier rants about why Programmers Need To Learn Statistics.

Finally, you should check out the R Project for the programming language used in this article. It is a great language for this, with some of the best plotting abilities in the world. Learning to use R will help you also learn statistics better.

Why this site has the CO2 badge

Posted by Pete McBreen 09 Jan 2010 at 18:39

Since the trends on global CO2 levels are not good, I decided that it would be useful to watch how they are changing, The historical trend has been that on average we are increasing CO2 levels by approx. 1.9ppm/year. Based on this trend we will probably reach 400ppm in April or May 2015.

But we will see fluctuations up and down over the course of the year

This is a feature of the way the climate relates to the overall earth systems, the CO2 level drops as vegetation grows in the northern hemisphere summer, and then rises during the northern hemisphere winter, peaking in the spring, and then starting to fall off again in June. On an annual basis this fluctuation is around 6 ppm, but year on year we are averaging nearly 2ppm higher - but this varies with the economy and the weather in any year, hot years tend to be associated with a higher rise.

Below is sample data extracted from CO2Now.org which is also the source of the badge.

YearJanFebMarAprMayJunJulAugSepOctNovDecAverage
1959315.62316.38316.71317.72318.29318.16316.55314.80313.84313.26314.80315.59315.98
1960316.43316.97317.58319.02320.02319.59318.18315.91314.16313.83315.00316.19316.91
2008385.42385.72385.96387.18388.50387.88386.38384.15383.07382.98384.11385.54385.57
2009386.92387.41388.77389.46390.18389.43387.74385.91384.77384.38385.99387.27387.35

Overall this is a large scale experiment

How much CO2 can humans add to the atmosphere without adversely affecting the climate systems that we depend on?

A defense of the GPL

Posted by Pete McBreen 08 Jan 2010 at 22:21

A historical look at what makes the GPL useful. Best quote

All you’re doing by whining about how the GPL makes it impossible to make money off of someone else’s work is to convince me that you’re…

Yes, it is a rant, but understandable in view of the rants and opinions raging about the GPL due to Oracle’s impending purchase of MySQL. For other views Groklaw explains The GPL Barter Cycle, Stallman on selling exceptions to the GPL - a follow up to the letter to the EU Commission, GPL Works No Matter Who Owns the Copyrights, Groklaw’s - Reasons I Believe the Community Should Support the Oracle-Sun Deal. In the end Groklaw comes out against the plan to make money from Open Source code by getting the EU Commission force it to go proprietary.

My personal take on the MySQL deal is that the time to have the concerns was when it was first sold to Sun, not afterwards by trying to revise the deal that Sun made when it first acquired MySQL.

For more background on Software, GPL and Patents there is always Groklaw’s GPL Resources and the amazingly detailed An Explanation of Computation Theory for Lawyers, and for the historically minded, the ongoing SCO GPL case.

Still Questioning Extreme Programming

Posted by Pete McBreen 03 Jan 2010 at 14:37

After reading Mark Wilden’s tale of Why he doesn’t like Pair Programming I have spent some time reconsidering my Questions about Extreme Programming.

In the book I let Pair Programming off lightly, not fully addressing the dark side of pair programming that Mark addressed. Yes, chapter 9 is called Working at this intensity is hard, but I did not point out that after a full day of pair programming most developers are not in a fit state to do more work. XP requires a 40 hour work week so that the developers can recover from the pair programming.

Other problems I have noticed with Pair Programming

  • Exploration of ideas is not encouraged, pairing makes a developer focus on writing the code, so unless there is time in the day for solo exploration the team gets a very superficial level of understanding of the code.
  • Developers can come to rely too much on the unit tests, assuming that if the tests pass then the code is OK. (This follows on from the lack of exploration.)
  • Corner cases and edge cases are not investigated in detail, especially if they are hard to write tests for.
  • Code that requires detail thinking about the design is hard to do when pairing unless one partner completely dominates the session. With the usual tradeoff between partners, it is hard to build technically complex designs unless they have been already been worked out in a solo session.
  • Personal styles matter when pairing, and not all pairings are as productive as others.
  • Pairs with different typing skills and proficiencies often result in the better typist doing all of the coding with the other partner being purely passive.

Having said all of that, pairing is still a good way to show someone else around a codebase, and pairing is definitely useful when debugging code - the second pair of eyes definitely helps.

Questions about Extreme Programming that are still open

Overall I still see XP as a fairly niche methodology, as there are few projects that it is really suited for. The constraints of XP are fairly rigid, and although many projects have tried to replace the onsite customer with systems analysts, the decision cycle is definitely longer when the analyst is in the loop.

The key problem that XP projects face is that there is no real compelling case for using XP. Yes, some developers like it, but more for the Unit Testing rather than any other part, and the testing aspects can be replicated in any other approach to software development. I still think that the most useful parts of XP can be applied in other contexts.

Overall, although my questioning of XP was not well received at the time, I think it has stood the test of time well in that eight years on,XP is approaching the status of a footnote in software development history. Yes, it helped to motivate the Agile Alliance, but these days I see more projects trying Scrum than XP, and while some of the XP practices are here to stay, it is hard to point to any software that was developed using XP and state that it will stand the test of time.

Yes, many of the tools that supported XP practices will stand the test of time, but most (all?) were not developed as part of an XP project, instead they were solo projects undertaken to assist an XP team in one way or another.

In summary, although Questioning Extreme Programming is now outdated in that it refers to an earlier incarnation of XP, I still stand behind the claim that while it was an interesting approach to software development, it is not applicable to many projects, and the current versions of XP have similar problems. The ultra-light weight approach to software development that tries to put developers first does not work all that well in a corporate or entrepreneurial setting.

Make Lists. Not Too Much. Mostly Do.

Posted by Pete McBreen 12 Dec 2009 at 09:59

Michael Pollan’s Eaters Manifesto - Eat food. Not too much. Mostly plants. has spawned another that looks at time management - Make lists. Not too much. Mostly do..

time managment is another totally overdone subject, wouldn’t it be great to have a similar credo to simplify all this hackneyed advice on to do lists, productivity, time management systems, and the like? Then, sent from the productivity heavens, it came to me:

Make lists. Not too much. Mostly do.

Nice parallels to software development here, planning is useful, but the key thing is actually crating the software.

An amusing speculation about the Waterfall

Posted by Pete McBreen 10 Dec 2009 at 20:36

Tarmo Toikkanen has an interesting speculation about Why people still believe in the Waterfall model, putting the blame on the Royce paper that was trying to say that waterfall was not the way to do software development.

OK, so why do people still advocate the waterfall? If you look at the scientific articles on software engineering that discuss the waterfall, they all cite Royce’s article. In other words, they’re saying something like “The waterfall is a proven method (Royce, 1970).” So they base their claims on an article that actually says the opposite: that the model does not work.

Tarmo was not the first to run across this idea, but the interpretation of the problem is different.

Don’t draw figures or diagrams of wrong models, because people will remember them. And in the worst case that could cause hundreds of thousands of failed projects and billions of euros and dollars wasted for nothing.

Other people has written about The Waterfall Accident and Waterfall Model; not what was intended.

Time to move beyond Agile?

Posted by Pete McBreen 29 Nov 2009 at 16:35

Just found a very interesting post from Luke Halliwell on The Agile Disease that looks at the fit between Scrum and the game industry, but many of his points are relevant to other development domains.

[Agile] was designed by consultants, aimed squarely at the world of in-house enterprise IT: a world where mediocre developers work for large corporations that don’t understand software development, but can afford to buy in expensive consultants to “save” their runaway projects.

Having daily stand-up meetings is ludicrous; it exists simply to protect against the dysfunction of team members that never talk to one another. … In anything resembling a normal, common-sense team, people will surely raise blockages with their manager as soon as they occur and not need to wait for a daily meeting!

After that rant Luke went on to describe what worked in his field, and even had a post after attending a Scrum Master course.

Amusing quote from an economist

Posted by Pete McBreen 25 Nov 2009 at 19:11

Talking about why things are a lot more complicated than we might otherwise think.

Books are thick cos things are hard – Richard Denniss

A comment towards the end of his talk: ENVS1001 - Resources, Environment and Society - 2009 audio podcast, Week 05 Panel B: Can Economics Save the World? Richard Denniss (Fenner School of Environment and Society, Australian National University on iTunesU)

Software development as a scientific activity

Posted by Pete McBreen 22 Nov 2009 at 22:21

Given that I do not agree with the characterization of software development as software engineering, it was somewhat of a surprise to find that there are a lot of parallels between software development and science.

Debugging and testing are probably the most scientific activities, in that developers have to make guesses about what is happening and then devise experiments to prove those guesses wrong. Developers also have to make predictions about how the systems they are developing will behave and then defend those predictions against speculations made by uniformed observers and occasionally defend against misinformation conveyed by financially interested parties.

One conclusion I could make from this is that the politics of software development are very similar to the politics of science. Practitioners try to pretend that there is no politics involved as it is all perfectly rational and understandable, but because people are involved it is all about politics. As soon as we start making predictions, then how we interpret those possible futures has a big effect on the actions we might take. This then becomes the realm of politics and it is that part that many software developers forget about (and many scientists as well) - Politics Matters.

We probably could have saved ourselves , but we were too damned lazy to try very hard … and too damned cheap. – Kurt Vonnegut

To celebrate the politics of science I’ve included a graphic reminder in the sidebar that small changes over a long period can result in a very interesting future.

Improving Documentation

Posted by Pete McBreen 11 Nov 2009 at 07:48

Seen a few useful blogs on documentation recently.

Jacob Kaplan-Moss has a good look at how the Django culture does documentation.

I especially liked this

Auto-generated documentation is almost worthless. At best it’s a slightly improved version of simply browsing through the source, but most of the time it’s easier just to read the source than to navigate the bullshit that these autodoc tools produce.

My take is that it is possible to produce readable and useful documentation using Rdoc or Javadoc, it is just that most projects do no take the time to produce good documentation. In many cases of Rdoc generated documentation all that is there is the signature to the method and a link to that excerpt of the code… not very useful.

Real Options

Posted by Pete McBreen 17 Oct 2009 at 20:44

I met Chris Matts a few years ago and his REal Options ideas stuck with me but I never remembered to link to him.

His Blog is called decision-coach, and he has a very interesting approach to copyright

Terms and Conditions for Copying, Distribution and Modification

  1. Do whatever you like.

Chris seems to be going to be using a cartoon approach that shows promise, though it looks as if the book will have professionally drawn cartoons - personally I’d miss the hand drawn versions. The idea of when to design tests is covered in the Information Arrival cartoon, which is a long but worthwhile read.

Uncle Bob on Test Driven Development

Posted by Pete McBreen 08 Oct 2009 at 11:28

Seems that there is still a lot of resistance to using TDD.

Uncle Bob explaining the role of TDD in developing Fitnesse makes for interesting reading.

The bottom line is that TDD is a design technique but should not be the sole design technique. All the old design rules and skills still apply; and TDD is a powerful way to inform and augment them.

Pseudo random links

Posted by Pete McBreen 07 Oct 2009 at 22:14

Queue of things to read

Paul Graham - startup school

Business models

Economics 1

Economics 2

Ruby, Unix and processes

Validators in Rails 3

Artisans and Handmade Software

Posted by Pete McBreen 07 Oct 2009 at 22:09

Not much time to post recently, but have to note an interesting post about Software Artisans and Handmade Software

Had to smile at the thought the calling yourself a Software Artisan was pretentious. If they think that is pretentious what would they think about calling yourself a Software Craftsman?

So Much For "Don't Be Evil"

Posted by Pete McBreen 03 Oct 2009 at 19:14

No Thanks Google

How Do I Disable Sidewiki?

Comments are deliberately turned off on this blog, but now Google wants to enable commenting via Sidewiki so that anyone can put comments directly in view while others browse what I have written.

NOT a good idea.

As Dave Winers says my Website Is My Space

Possible way to disable Sidewiki

Google site states “Sidewiki currently does not support comments over internal or SSL (https) encrypted pages.” So that might be a temporary fix - making the entire site SSL, but again there is the word “currently” which means that it might at some point allow for comments on SSL pages....