31
Jul 06

My Apologies…

…to anybody working in Marketing or Sales:

I bonked too hard. We just got a new sales guy.


24
Jul 06

Ignoring the competition

Creating Passionate Users on ignoring the competition.


21
Jul 06

12 Benefits of Test Driven Development

J. Timothy Kingblogs about 12 Benefits of Test Driven Development:

The first thing you ask is not “What code will I write?” The first thing you ask is “How will I know that I’ve solved the problem?”.

(Via MemoRanda.)


19
Jul 06

Test-Driven Development

Oren Ellenbogen started a great series of posts on Test-Driven Development. Well worth following:
* Preface
* NameResolver – Part 1

(Via ISerializable.)


19
Jul 06

Getting Answers

Mike Ash on getting answers (to programming questions via IRC). Good stuff.
Some of his advice applies to old-fashioned e-mail questions, too.


18
Jul 06

Phone Whores & Phone Assholes

Scott Adams on the difference between Phone Whores and Phone Assholes.
Hilarious.


18
Jul 06

Activity-Centered Design

Excellent read: Logic Versus Usage: The Case for Activity-Centered Design.


13
Jul 06

Programming & Typing

Keith Ray and Chris Hanson (and others, I bet) have commented on Bruce Eckels post “Programming as Typing“.
I would like to take this (wrong – as those fine gentleman have proven) analogy and add a slightly different twist to it – and thus prove that, if viewed from a totally different angle – the analogy works just fine.
(For the sake of simplicity, let’s assume that “typing” means “typing & clicking”).
If you’re not typing, you’re not programming – If you’re not typing, you’re not making any progress. Sounds rather obvious, doesn’t it? It’s not.
I’ve seen it over and over (both by observing others and – in rare moments – myself) that a software developer who doesn’t type, but sits in front of his computer thinking about the problem at hand for more than 2:30min (I made this number up at this very moment :-) is not actively developing software.
He is stuck.
* Because he’s not typing, he is not using all the feedback the code can give him on how the problem should be solved.
* Because he is not typing, he is not actively playing with different approaches to the solution – he is just thinking about the different approaches. He’s making up a mental model of the code – and more often than not, this mental model is rather different from what the code does (This happens to the best of us, doesn’t it?).
* Because he’s not typing, he is not using the feedback which comes from writing & running a simple test. He is not trying to solve a small chunk of the problem to get a deeper understanding of the larger problem.
Typing is more closely related to software development than you think.
(There may be others who frantically scribble boxes on a sheet of paper for more than 2:30min – those are stuck too, not as stuck as those just mediating, but still stuck)
(Of course, this doesn’t apply to you if your belonging to the elite group of geniuses – but that’s only about 0.0001% of the software developers out there)


11
Jul 06

Why Salespeople are needed…

Seth Godin on a hard sell at the farmer’s market.


06
Jul 06

Closed-Source Cocoa

Andy Dent asks: Closed-Source Cocoa – Arrogance, Empowerment or Commercial Necessity?
Cocoa (and its predecessor NeXTStep) never shipped with source code. I remember seeing one of the early (very impressive) demonstrations of NeXTStep back in the late ’80s and the source was closed right from the start. I brought up the question about availability of the source code (I was a MacApp developer back then, a Object Pascal/C++ framework which shipped with source code). The NeXT engineers said that there’s plenty of documentation available and if they would make source code available, developers might rely on certain, undocumented behavior which is only revealed by looking at the source code.
So I guess it’s just paranoia – which I consider unfortunate. Despite a great community, excellent documentation and superior technical support the availability of source code is extremely import for solving problems efficiently when developing with a framework.