Hacker News new | ask | show | jobs
by solarmist 1907 days ago
I’m sad this is an April fools joke because a lot of the sentiment rings true and I love the slogan “move slow and make things.”

Artisans make beautiful things and software artisans make beautiful software, but it’s hard to do it and still be a viable business.

And artisans moving slowly isn’t arbitrary. They move slow on the things that matter. The things that shine when attention was paid to the details.

10 comments

One of my favourite articles on the internet is "an app can be a home-cooked meal". It's something you can make for your own enjoyment, with no plans for scaling on monetisation.

I have started making this sort of software, and I thoroughly enjoy it. I target the platform I use, I solve the problems I have, and my only metric is pleasure.

I wish we all had more of such projects.

This is the entire premise of Ruby, with Matz openly claiming that it being pleasurable to anyone else but him is a happy side-effect. Part jest, but also very core to it.

I wouldn't have been able to put so much work in maintaining ArchMac for so long without going completely bonkers had I not taken it this way either.

So it’s entirely possible to build large scale projects this way, and I’m wondering how we could make companies work that way too. At the very least it should be part of any employee sustainability plan.

One of the reasons I left software development as a career was I couldn't bear to keep shitting out products that were just barely good enough that the customer wouldn't return it. That's the quality bar in commercial software and I hated having my name on it. I'm more into refactoring it 20 times in order to get the perfect architecture, fix every last bug, find every performance improvement, make it not just work but make the code itself beautiful. Like the Steve Jobs quote:

“When you’re a carpenter making a beautiful chest of drawers, you’re not going to use a piece of plywood on the back, even though it faces the wall and nobody will ever see it. You’ll know it’s there, so you’re going to use a beautiful piece of wood on the back. For you to sleep well at night, the aesthetic, the quality, has to be carried all the way through.”

Obviously, this is totally incompatible with how most software is made in the industry, so I just do it as a hobby instead.

You will like this presentation by Jonathan Blow [1], I feel the same. I am in grad school, but since my bachelor, I felt more like a craftsman than a student, I always spend more time in order to make my code 'look' beautiful to me, and be performant. I would like to work somewhere that puts emphasis on writing good software instead of chasing feature after feature. Speaking of which, speed is an oft ignored feature [2]. It is really frustrating to have sluggish apps and I often end up avoiding them altogether.

[1] https://www.youtube.com/watch?v=ZSRHeXYDLko

[2] https://www.enchant.com/speed-is-a-feature

Watched the Jonathan Blow presentation and agree completely. There was just another thread[1] yesterday about developers always reaching for the most complicated tools they possibly can, to the detriment of our industry I'd argue.

1: https://news.ycombinator.com/item?id=26662972

I think the condition for having this sort of software is that people do it on purpose. The condition for having jobs where people are paid to make such software is that companies focus on areas without competition (otherwise the whole blitzscaling thing applies and they will go out of business). Competition is for losers, right?

What's missing from my extremely simplified model?

If you like this sentiment, read "The Forever Project": https://heredragonsabound.blogspot.com/2020/02/the-forever-p...
Same here. The only thing I still crave is user feedback and I have a hard time attracting users without what I feel is sleazy marketing.
The best jokes carry a message and use humour as a vessel, challenging preconceptions in a lighthearted way.

I chose to take this April’s fool that way.

Thank you for this.

I "move slow and make things" in some sense. I will endeavor to use this as a jumping off point for something constructive rather than leaving a pointless whiney comment about how the world will never understand or appreciate me.

Same feeling here - instead of laughing I was disappointed when the second paragraph laid out the April fools joke.

I would love to see “small batch data science” where people actually understand the results. Black box recommendations never feel really right.

It's called statistics, to be fair.

In general, if your DS's can't explain the model then something has gone horribly wrong.

People usually just call it AI then and pretend that it's not a problem.

For example, there's been plenty of issues like racial bias with the computer vision algorithms that police uses, which effectively is data science on pictures. But nobody knows why the issue occurs and nobody can specifically fix it without the risk of breaking a thousand unrelated other things.

> But nobody knows why the issue occurs

Sure we do. Photography itself has a racial bias. [0] Different skin tones produce different levels of detail, and it has been an uphill battle to be able to capture those details since the advent of photography.

So long as facial recognition relies on photography, and photography is flawed, then every dataset is biased. Which will exacerbate the bias of the AI, which already has its own set of problems from where those datasets are formed.

[0] https://www.nytimes.com/2019/04/25/lens/sarah-lewis-racial-b...

> But nobody knows why the issue occurs

They do know why that occurs. It's because the data set is biased.

No, you don't "know" that your dataset is biased until you perform the statistic analysis explicitly. It might be that your neural net has a non-uniform weight distribution in some dimension (e.g. in time, or in the ordering of the training data), so dismissing any unwanted results by claiming "your dataset is biased" is a form of appeal to (artificial) authority.
It's not an appeal to artificial authority. It's a very likely root cause and comes with a solution even: get a different data set or adjust your existing data set. Your response rings of No true Scotsman to me since you can argue any analysis is not rigorous enough or doesn't cover all potential issues.

edit: And a statistical analysis isn't some sort of magic data genie. Statistics can give rigorous results because it makes strong assumptions. If those assumptions don't hold then the results aren't rigorous anymore. A trillion parameters model can pull interactions out of your data that almost no statistical analysis of the data would identify ahead of time. So what you need to analyze is the model and try to infer why it's predicting different certain results and then work backwards from there.

Is it a case of BAME have less stable families, are poorer, commit more crimes and therefore are more represented in the data which lead to even more incarcerations?
First: I don't think you can claim that without also doing some very rigorous statistics. I'm not asking you to, but if you're going to base policy on that statement rather than merely arguing on the internet, you'd need to.

Second: even if you do, you're going to have a hard time controlling for the fact that the police and criminal justice system has a long history of disproportionately enforcing the law against people of color. The base data about who commits crimes, gets convicted, etc. for well over a hundred years is going to reflect this bias.

I'm not claiming to have done my homework here either, same disclaimer applies. I suspect you could find somebody who does study this if you wanted to look.

All of the above assumes we're discussing the US, btw.

Funny, I remember thinking the questions were biased, every time they weren't the ones I studied to answer in my exam preparations.

Too bad I wasn't a data scientist or else I could just get a passing grade by claiming the questions were chosen from a biased data set, or retake the exam until the data set matched the questions I studied for, at which point the data set would no longer be biased, lol.

Funny line of work, this data 'science' where you only use the results that fit the narrative you wanted in the first place.

We're in full doublethink mode, just keep repeating data 'science', 'science', 'science'. :)

I did a geography O-level (the UK exams for 16-year olds at the time) which included a map-reading exercise. It just so happened to be a couple of miles from where I lived, and I knew it well. Still only got a B though.
>In general, if your DS's can't explain the model then something has gone horribly wrong.

With modern ML models data scientists can generally explain why the model should work but not exactly how it gives any specific prediction. Explaining how a model with a trillion parameters comes up with an answer is not a trivial task.

> modern ML models

As an aside, this is a hilarious phrasing. What are we going to call these methods in a decade? You'd probably be better off phrasing it as deep neural networks.

Anyway, this is not really true. There are methods (for lots see: https://christophm.github.io/interpretable-ml-book/) and the DeepDream paper came out in 2015, so it's possible.

It's computationally expensive, and a lot of people don't see the value, but my argument is that if you want to use the model in the real world, and have non-technical stakeholders then you'll need to do this, and in general, I've found it to be the best way to actually improve a model.

And to be fair, if you just need to see how the predictions vary as a function of the inputs, you can again hold all but one constant and run a bunch of different values through the model.

Again, this can all be done, but I think it's more a question of will than capability (and hence the context of my original commment).

>You'd probably be better off phrasing it as deep neural networks.

I phrased it the way I did for a reason. Large Random Forrest models are also not easily interpretable. Even large logistic regression models with feature interactions and feature hashing aren't easily interpretable. It's not a question of the model technique used but rather the amount of parameters and how many feature interactions are modeled.

>And to be fair, if you just need to see how the predictions vary as a function of the inputs, you can again hold all but one constant and run a bunch of different values through the model.

This only provides a partial view of the feature impact due to non-linear interactions.

I have been working on a spread sheet on and off for a few weeks. The data exists, but you can't google the answer(s) I want, so I have been painstakingly putting it together, a few minutes here and a few minutes there.

I've been calling it my "curiosity killed the cat" spreadsheet. Small batch data science sounds so much more respectable while meaning basically the same thing, I think.

I had a similar reaction. It's a nice April fool's joke, but I hoped for an actual counter-balance to "move fast and break things." The book that taught me the value of moving slow in programming was Test Driven Development by Kent Beck, who ironically spent several years at Facebook.
Better is “Be deliberate and make (beautiful) things”.
Same here. I was disappointed to realize this isn't a thing.
Maybe we will have a chance to move slow and make things one day, or in little moments, optimizing for the well-being of the creator etc. What rings true about it we can mull over in our heads at some point and try to implement in some parts of our lives, like hobbies, vacation, retirement, family time, etc. right?
I've wondered if the software space has been able to get away with "move fast and break things" because liability and regulation haven't caught up with it.

At some point, we started expecting civil and mechanical engineers to stop "moving fast and breaking things." If software engineers were similar licensed and on the hook for signing off on garbage, we'd see a dramatic slowdown of the pace of development, but likely an uptick in quality.

I could imagine it one day even being a bifurcation of the industry. You want to work on cat videos, you can be a non-licensed programmer. You want to work on medical devices or core financial-backbone things? Better be a full-certified Software Engineer.

The issue is that beautiful software is invisible except in open source projects (and even then few people look under the hood). So to an end user only the UI/UX/bugs matter while everything else doesn't.
> it’s hard to do it and still be a viable business

It's not that hard actually, but you must limit growth. You can easily be profitable and make an amazing product if your goal is not $1B in revenue, but just to be profitable at a small scale, which allows you to run things at your own pace.