HN user

virtualized

280 karma
Posts0
Comments104
View on HN
No posts found.

What I read between the lines: “I have such a fragile ego that I feel offended when a tool points out a mistake I made. I feel intellectually rewarded by doing the same busywork over and over again. I don’t want to change the way I do my work at all. I feel left behind when people other than me have great ideas about language design.”

Another way to put it: If you know how long something will take in advance, you have a solution in mind. It is unlikely that this solution is (A) the best one and (B) the one you will actually implement. It would be stupid to ignore information you learned along the way. If you could actually predict the future you should invest in the lottery, not in software.

EDIT: Of course there are projects where you actually know exactly what to do. Happens a lot in consulting. That has nothing to do with Agile though.

In Defense of YAML 7 years ago

It's weird how languages like YAML, XML and JSON are very much designed for communication between machines, but are still the default choice for human input. Actual programming languages - designed for use by people - are rarely considered for high level configuration.

I have actually seen something similar to this happen:

1. We just need a few configuration options. Let's add an XML configuration file.

2. Keeping all the configuration files in sync for different environments is a lot of work and really error-prone. Let's generate all the configuration files. What about an XML meta-configuration file?

3. Some things are different between environments. We need conditionals in our XML meta-configuration language.

4. There is a lot of repetitive configuration. It would be more maintainable if we had loops, variables, integers, string interpolation, functions, ... in our XML meta-configuration language.

Great, now we invented our own awful programming language that lacks any tooling, documentation or libraries and isn't compatible with anything else.

Pharo 7.0 released 8 years ago

I looked for any useful documentation for a few minutes and just gave up. I don't want to read a book. I don't want to watch a video. This is not my first programming language, thank you. I just want a "hello world" example to get an idea what I am actually dealing with. How do I run a "hello world" program from the command line? How can I deploy that to another machine that doesn't necessarily have a GUI?

It's the worst mistake because it made you believe that its atrocious ergonomics are actually superior to more sensible solutions. Implicit nullability doesn't really save you any null checks. It just makes it possible to forget necessary checks.

It was fine to design a language with nullable pointers in the 70s. It's unacceptable nowadays. nil in Go is a major mistake.

I always wonder why Linux doesn't seem to have any kind of tests. How can they afford not to have regression tests for bugs they fixed? How do they know that this bug fix didn't break anything? What does "never break userspace" even mean if there is no way to check whether userspace has been broken?

IMO it goes more like this: Music makes you happy, being happy makes you more productive. Don't overthink this too much.

I think the argument is that if it's so hard for most people to see the difference between "Agile" and "not Agile", maybe Agile is unsuitable for most.

In my experience barely anyone who claims to work Agile ever looks at the values or principles, or reflects about their own work in a systematic way. Scheduling Scrum meetings is easy. Applying Agile principles to your actual work is difficult, especially if you are already overwhelmed by Scrum.

People like Scrum because it distracts from Agile and doesn't interfere with your work much. You can serve time in Scrum meetings, then return to your actual work. Scrum fills a void, but doesn't ask any hard questions. Don't think about what you are doing, just show up to the meeting and go through the motions.

People like to follow pre-made structures like Scrum. They don't like to define or change them. You could potentially insult someone. "The Scrum Guide says so" is less personal than "it makes more sense to do X". Clinging to a fixed process like Scrum inhibits being actually Agile because Agile is all about changes. Change requires courage. Most employees don't feel like courage will be rewarded. In our culture, courage is reserved for big companies or top-level management.

In short, that's why "Agile doesn't work".

So peace is bad because the world fails to implement that?

It's not black and white. Organizations can still benefit from discussion and reflection even if they can't fully be Agile.

Yes, the values are too vague. The twelve principles are better for conveying what Agile is trying to be.

The "responding to change" point means in practice that it's better to deviate from a plan than to not have any plan to deviate from. The plan has to be adjusted all the time. For that to be possible, there has to be a plan.

The twelve principles are very basic, common sense. Common sense is not common though.

Apparently you can try that game in the browser for free, but you have to create an account first. And they wonder why they don't sell any licenses! If someone manages to shoot themselves in the foot in such an epic way I am not surprised they never sold anything.

So if you give money to the Foundation, the Corporation has to give less to the Foundation to keep it funded. You could as well have given money directly to the Corporation.