Archive for November, 2007

Nov 19 2007

What are you trying to prove?

Published by Brian under Uncategorized

Reg Braithwaite been after me to stop going on about static typing and say something deep about programming. I’ve been trying, really I have. But then he has to go and post something like like this, which then forces me to stay up late and respond to him, as it’s obvious he hasn’t gotten what I’ve been trying to say. Which makes me cranky.

And while Reg may try to cop a plea by saying:

I am not saying that strong typing or provability, iterative development or BDD, or anything else is necessarily better or worse in this respect.

Unfortunately, the original posting was very much about, and very much anti, static typing:

This is somewhat more obvious with an example. Suppose I asked you to write a program that could break a CAPTCHA. Writing the program is very time consuming and difficult. But first, before you write the program, what if I asked you to write some tests for the program you will write. That’s trivially easy, isn’t it? You just feed in some CAPTCHA images and then check that the program spits out the correct value. How do you know your tests are correct? You apply the red-green-refactor cycle along with the principle of triangulation. ;)

As we see, testing is easy. So how do you prove its correctness? Is it as easy as testing it?

OK. Now go and write a test suite that demonstrates your program doesn’t have any race conditions. I’ll wait.

The thing is that there are two meanings for a program being “correct”- and both Reg and Phil Haack are confusing the two. There is the definition that a program is correct when it does what we (or the customer) need it to do, and there is the definition that a program is correct when it does what we the programmers meant it to do. The second meaning is a significantly weaker proposition, no argument- it is possible to write a perfect, bug free program that simply doesn’t solve the problem, or any problem.

All static typing- and unit testing, for that matter- do is help ensure the program does when I mean. That’s all. But that’s important, because the more time we the programmers have to spend making sure the program does what we mean, the less time we have to spend on figuring out what it is we want the computer to do. What means we’re more likely to get to the “does what we want (and what we mean)” nirvana, and more likely to get there faster.

This is the point where Reg will hopefully go “hmm”, and wander off to think about what I’ve said. Me, I’m off to bed. Good night.

Popularity: 21% [?]

11 responses so far

Nov 12 2007

New Music Podcast: Acapodcast

Published by Robert Fischer under Uncategorized

I just added The Acapodcast to my podcast page. I was turned onto that podcast by Coverville #373.

Popularity: 4% [?]

No responses yet

Nov 08 2007

Ron Paul’s Money Bomb

Published by Robert Fischer under Uncategorized

In case you missed it, Ron Paul just set a bunch of fundraising records. In one day, it broke the best single-day internet fundraising by 4 PM, and ended besting any single-day fundraising effort: $4.2 million went to American freedom in one day. It was called a “money bomb” and made a bunch of headlines.

But, the pundits are saying: so what? “It’s just a stunt,” some might say.

Check this out:
Money Bomb Demonstration

That is the money bomb. Suddenly, people want to know who this guy is. That money bomb bought a lot of free news coverage and interest for the candidate for peace, for the low low cost of strengthening that campaign.

Popularity: 4% [?]

No responses yet

Nov 07 2007

The Loophole: Volunteering, The Fountain of Youth?

Published by Robert Fischer under Uncategorized

The LoopHole: Volunteering, The Fountain of Youth?

Check out the links off of this post. It’s interesting how much good volunteering does for a person.

Popularity: 3% [?]

No responses yet

Nov 07 2007

37Signals Comes Down on Personas

Published by Robert Fischer under Uncategorized

Ask 37Signals: Personas?

Every product we build is a product we build for ourselves to solve our own problems. We recognize our problems aren’t unique. In fact, our problems are probably a lot like your problems. So we bundle up the solutions to our problems in the form of web-based software and offer them for sale.
[...]
I’ve never been a big believer in personas. They’re artificial, abstract, and fictitious. I don’t think you can build a great product for a person that doesn’t exist. And I definitely don’t think you can build a great product based on a composite sketch of 10 different people all rolled into one (or two or three).

My experience has been that personas aren’t terribly useful. They usually just expose the biases, ignorances, and bigotry of the people involved in coming up with the personas. What’s a cashier at your retail store like? What’s a project manager like? What’s a freelance developer like? The very ways these questions are asked leads towards a biased answer. And anyone who has ever paid attention while working with customers/clients knows well how surprising those client’s needs and wants can be: we all bring in our own knowledge, understanding, tastes, and biases. It’s hard enough to come to understand that position, and basically impossible to shift to adopting someone else’s paradigm. This is why Agile development has the rapid feedback, cooperative evolutionary approach.

Now, the one way that I have heard which might be a good fit for personas — and this was recommended by David Hussman of DevJam — was to pull in the real people represented by personas, and have them build the persona. Then the name attached to the persona is really simply a short-hand for that kind of customer polling.

But, even better is if you take the Henry Ford approach, and build software with your own business as its target customers. That’s the approach that 37Signals is advocating.

Popularity: 3% [?]

No responses yet

« Prev - Next »

Green Web Hosting! This site hosted by DreamHost.