
Think before you code (2007) - s-phi-nl
http://www.daemonology.net/blog/2007-06-21-think-before-coding.html
======
jgg
This is why I love Haskell. Dealing with the type system and purely functional
style forces you to think about the problem at hand before you do anything.

~~~
lsb
Haskell's type system is both expressive and flexible enough to allow most of
the benefits of polymorphism, via type classes, while being rigid enough to
both catch coarse-grained logic errors and enable efficient compilation. And
the syntax is gorgeous! I only sketch type signatures out in Haskell syntax.

------
lsb
There was some Mixergy interview where the guy at IMVU or somewhere was saying
that it was trendy to measure progress the Agile way, by lines of code
written, whereas it was more accurate a metric to measure progress by
learning.

~~~
dmoney
I used to work at a company where they did Scrum. We never measured progress
by lines of code. The way they measured progress was:

1\. Start with "User Stories", or things you want the software to do for your
users.

2\. Assign each story a difficulty ("Story Points").

3\. Work in iterations ("Sprints") of two weeks or so.

4\. Your total accomplishment is the Story Points of the User Stories you
complete, and your productivity ("Velocity") is story points completed per
sprint.

I didn't think this was a good system, as difficulty varies with experience
and tools, and so if you're more productive new stories will be assigned
smaller story point values. So you're really only measuring how hard you work,
rather than the value you create.

Maybe they use lines of code in other forms of agile.

------
gfodor
Great post, resonates with my reply here:

<http://news.ycombinator.com/item?id=1334915>

------
weixiyen
How do you know when to stop thinking though?

~~~
pmccool
Personally, when I start going round in circles that's a hint to start coding.
Also, if I start speculating about performance, I like to get some actual
measurements, which means writing code.

------
badave
Depends on what you are coding. Sometimes when I'm coding for fun I don't want
to think.

------
cema
Yes. Also while and after.

