Hacker News new | ask | show | jobs
by lifeisstillgood 4677 days ago
I am going to get my drum out and bang on it again.

Software is a form of literacy - and we measure literacy completely differently. In fact we measure it like we measure science - you are not a scientist unless other scientists agree you are, and you are not a coder unless other coders say you are.

What Fowler wants to measure is not the top echelons of productivity but the lower bounds - presumably to winnow out the unproductive ones.

But that is not how we conduct ourselves in literacy or science. We educate and train people for a very long time, so that the lower bound of productivity is still going to add value to human society - and the upper bounds are limitless.

What Fowler is asking for is a profession.

6 comments

> you are not a scientist unless other scientists agree you are

Science requires one thing: making and testing falsifiable hypotheses. A priest is able to determine whether or not you are doing that. If anything, it's philosophers who decide what science is, e.g. Karl Popper.

Ludwig Boltzmann was a very important scientist (or perhaps I should say that his scientific contributions were significant). However, if I recall correctly, his peers didn't agree with his theories and, I would assume, they wouldn't have called his theories scientific -seeing how they basically assumed atoms in a time when that was controversial.

So, I too consider that agreement from others isn't a prerequisite for being a scientist. I also agree that "making and testing falsifiable hypotheses" definitely qualifies as doing science.

However, perhaps that's not the only way to do science. In general, there is that whole set of criticisms on the limits of falsifiability (with Kuhn et al). In particular, I'm thinking of cases where arguably the technology isn't sufficiently advanced to perform the measurements necessary to directly test the hypotheses (e.g., how quantum physics progressed). Arguably those doing all the thought experiments, modeling, thinking through consequences of those hypotheses and comparing with what they could measure were doing science -though those weren't falsifiable hypotheses at the time.

So what I'm saying is that your requisite is sufficient but perhaps isn't necessary either.

Oh, I think it's okay if the hypotheses are falsifiable in the future, as long as the models are not presented as experimentally verified.
Doing science does not make you a scientist.
Can you elaborate on why you believe this to be the case? Saying that a scientist is one who does science seems like a truism bordering on being tautological. I'm curious why you disagree.
Does knowing a bit of physics make you a physicist? Does praying make you a monk? Does mixing a few chemicals make you a chemist? Does having some theories about people's motivations make you a behavioural psychologist? Does balancing a budget make you an accountant?

"Scientist" implies a certain amount of knowledge, training, discipline, etc. I'm not implying that every scientist needs to have undergone academic training - there are other ways - but merely doing a scientific experiment is not enough to call yourself a scientist.

A scientist is one who "does science" with some knowledge, consistency and perseverance.

"Scientist" is a fluffy title like "Doctor" or "Professor", conveyed by other people or authorities for classification in a hierarchical/segmented society. As a researcher, I wear many hats doing design, coding, science, writing, etc..., but my title is just "researcher" because of the role I fill professionally.
I guess you'd better edit Wikipedia:

> In a more restricted sense, a scientist is an individual who uses the scientific method. [...] This article focuses on the more restricted use of the word.

https://en.wikipedia.org/wiki/Scientist

Wikipedia is not the ultimate repository of human knowledge, particularly when it comes to more tricky questions like "what is a scientist?"...

If we're going to throw definitions around, how about dictionary.com: http://dictionary.reference.com/browse/scientist?s=t

> an expert in science, especially one of the physical or natural sciences.

I'd say doing science requires a specific mindset. Using amount of knowledge as a criterion seems wrong - how did the first scientists come about, presumably they didn't know anything at all yet?
Your last sentence is exactly right. There are significant benefits to building a profession that is predictable and well-defined. Ensuring a reasonable lower bound reduces the risk of failure significantly.

The open questions are 1) whether it's possible to do that, and 2) whether it's possible to do that without inadvertently imposing an upper bound. Common wisdom among software developers is that it is not possible and even if it was it would impose a very tight upper bound. But as far as I know, that common wisdom is just guess work. No one has found a good solution yet, but there's also no proof that there is not one. That's why so many people continue to try.

I agree with what you're saying, but I feel that it's exactly what Fowler is saying too. The article is called "cannot measure productivity", after all.

What parts of what he writes do you disagree with?

Fairy Nuff

I suppose he ends with throwing his hands in the air and saying we cannot do it. Well actually we can achieve a measure of literacy, just not perhaps fluency.

We know if a child can read and read well. It's possible to take their written work and assess or mark it. We can (and do in code reviews) do the same for code written by adults.

The problem he is stating is IMO in two parts - measuring basic competence (is a person of net benefit, can they write competent code, are they literate?) which is possible, and how good are they compared to their peers, which is much more subjective and based on taste as much as anything.

So I agree we should not try to measure productivity, I disagree that that's the end of the conversation, mostly because I disagree that productivity is one thing - I see it as more Hygiene/Motivator

you are not a coder unless other coders say you are

Not everybody needs the approval of an external entity. I couldn't care less what other coders think of me. What I ship speaks for itself. What I write speaks for itself. What studies scientists publish speak for themselves. The rest is politics.

Scientists must pass peer review to publish, and peer review can be very harsh. Double blind helps winnow out political bias.

Coders must get jobs to continue coding if they are not independently wealthy. Bias abounds in this case, as other coders with influence must vouch for you, and...in this case your projects can influence their opinion of you.

We are social creatures: we don't live as hermits (most of us anyways).

It was still an inflammatory thing to say, given that there's nothing stopping a person who does live as a hermit from learning to write working code.

In the days before the Web, I created two good-sized adventure games without ever having interacted with another programmer (save maybe 2 book authors). Nobody vetted me. I just made and released them. The lone wolf programmer has always been a thing.

I think there is a confusion between trying to define the line between scientist / non-scientist or coder / Non-coder (Which is difficult to the point of impossible) and the ability for someone who is already a scientist to look at the work of another and decide if it is the work of a scientist

This is why I use the term software literacy. My son is learning to read. He can write is own name and letters, read some words phonetically. All of those things are necessary but not sufficient. But he is not (yet :-) literate. Will it be at ten words ? A hundred? A thousand? Those are silly arbitrary cut offs.

Anyone of us here can tell the difference between literate and illiterate because we have passed through that gateway.

The same goes for scientist or programmer.

But actually trying to write down the exact definition, the point one passes from being able to write a line of executable code and becomes a real programmer? Becomes software literate? Can't do it. Which is also why you can't measure productivity (plus all the reasons Robert Austin has)

I think you are talking about something different. I can practice basic medicine, but no one would call me a doctor. And, no person would accept me calling myself a doctor without some form of external validation that they believed was valid. I can build software, but being a programmer for someone else requires being validated, even minimally, by something external to myself. Even if the validating entity and the person looking to validate me are the same.
100 years ago, in many places on this earth, you could very well have passed yourself off as a doctor. The reason you can't now is because other doctors and governments decided to enforce a minimum standard.

100 years from now, perhaps there will be "Licensed Professional Programmer" certifications. Until then, you're a professional programmer if someone pays you. Even if that someone is yourself.

But if you are working alone as a hermit, why do titles even matter? Titles are just something someone uses to classify you, and in isolation mean nothing (unless you have split personalities; joking, schizophrenia is a serious subject).
The psychiatric definition of schizophrenia doesn't have anything to do with split or multiple personalities. That's actually more like dissociative identity disorder. I know this is a widespread misconception, I used to think the same thing.
> The rest is politics.

Really. No reality check? Spinning a wheel doesn't cause anything in particular, unless it meets the road.

Now I am not saying what you are saying is totally false. The truth is more nuanced, or say, more qualified.

The qualification comes from achieving something in the real world. If you can achieve something by talking to someone instead of writing code to work around it, both are equally valid.

I think of it like this. A pure function does not do any real work. The real work comes from the side effect it causes, the global variable it sets, the file it writes to, the program it talks to on the other end.

So yeah. You can cocoon yourself saying lalalalala, but you don't want to be the thread that spawned, did something to its local variables and exited. Whats the point of such a life anyways?

You need to stop putting words in my mouth.

The context of my statement is in regards to self identification vs community identification. I write code, I release apps and I get paid. Why do I need a community to call me a coder before I can be considered one? What other people think of me, what image I put forth, etc is all marketing and politics. The only real evidence of me as the coder is what I ship. Does it scale? Does it have bugs? Does it work? That's the reality check, not whether Steve from SuperFrog Backup Solutions saw my code on github and thinks I write an elegant monad.

If you can achieve something by talking to someone instead of writing code to work around it, both are equally valid.

Nothing I wrote disputes that.

So yeah. You can cocoon yourself saying lalalalala, but you don't want to be the thread that spawned, did something to its local variables and exited. Whats the point of such a life anyways?

Consider this: a man spends a lifetime writing novels. He thinks of himself as a writer, he identifies himself as a writer and he introduces himself as a writer. He never publishes, but he's always producing. One day, his house burns down, killing him and destroying everything he's ever written. Do you think his life was wasted? Do you think he thought his life was wasted?

I agree with the sentiment of your last paragraph, though in fairness Fowler seemed to end his piece saying that measurement was seductive and likely to make things worse.

Still, I can't help cringe at some of the ideas posited -- for one, the idea that more features == a better product.

Or that profit is a measure of engineering productivity. As if it's that uncommon for great products to be badly marketed.

I think Fowler was just reaching for a stick to beat the metric he was deconstructing - "look Joe writes only 10K lines but makes ten times the profit - that means LoC is not a good metric."

However I do think that (free) market success is a reasonable measure of value / worth - backed up by my favourite quote for which I can find no author:

"Many books are unfairly forgotten, but none are unfairly remembered."

Measuring value (profit) isn't going to be a reliable indicator of how well something was engineered. There's too many badly engineered products that make tons of money, and too many brilliantly engineered products that are commercial flops. So many other elements are involved -- finding the right audience, marketing correctly to them, luck, etc.
This. A million times this.