I'm not sure about you, but the more experienced I am, as a developer or "builder", the smaller things I end up making.
For instance, I launched a bunch of games that are, frankly, more fun to watch, than to play (e.g. an All-hands meeting simulator: https://rafsters.itch.io/all-hands) or
little tools this one https://sonnet.io/posts/reactive-hole/ (it's stupid, completely replaceable, but somewhat adorable).
I come from a family with 4 generations of carpenters. It's a profession more similar to software engineering that most engineering jobs I can think of. The main difference is that in our domain so often the results of our work just don't feel real.
If you're in this situation and this frustrates you, either build something small that people would use OR go ahead build something useless, but intentionally.
> I come from a family with 4 generations of carpenters. It's a profession more similar to software engineering that most engineering jobs I can think of. The main difference is that in our domain so often the results of our work just don't feel real.
That is the core issue I have with software development, it can feel ephemeral and extremely temporary.
My remediation for this is partially game development too, since the artifact you create is immersive and directly enjoyed by others, it can make you feel surprisingly connected to the world.
It sucks how temporary software is, especially Web software. If you don’t pay the hosting bill it’s gone. If you don’t upgrade to 64 but it’s useless. Essentially it’s a plate spinning on a stick and it needs constant attention to survive.
Contrast that to a fine piece of furniture which barring fire or flood can just sit abandoned in a warehouse for 300 years and then be even more valuable than it was initially.
I dunno, as someone with a lot of antique furnishings in a 19th-century house, I'd say that there's quite a bit of ongoing maintenance to prevent the march of time and usual wear and tear from grinding everything to dust!
I met a traveller from an antique land,
Who said—“Two vast and trunkless legs of stone
Stand in the desert. . . . Near them, on the sand,
Half sunk a shattered visage lies, whose frown,
And wrinkled lip, and sneer of cold command,
Tell that its sculptor well those passions read
Which yet survive, stamped on these lifeless things,
The hand that mocked them, and the heart that fed;
And on the pedestal, these words appear:
My name is Ozymandias, King of Kings;
Look on my Works, ye Mighty, and despair!
Nothing beside remains. Round the decay
Of that colossal Wreck, boundless and bare
The lone and level sands stretch far away.”
The poem reminds me of the Coen Brothers movie "Ballad of Buster Scruggs", released on Netflix a few years ago, which presents four (or five) vignettes.
In one of these Harry Melling plays a handicapped performer of poems in the "wild west", and the segment starts with him reciting this poem. Liam Neeson plays his manager. The segment is one of the most Darwinian, cold things I've ever seen. The whole movie is great, but this vignette especially.
I can’t tell if you’re joking, half-joking, or serious, but in any case, bravo for this response.
On the other hand, some ephemera does stand the test of time pretty well, whether by being ensconced in an environmentally controlled room like a tomb (ie incorporated as part of a long lasting work) or via heavy replication and meme-worthiness, like the Odyssey, the Bible, or the works of Shakespeare.
I don't collect antique furniture, but I do cook with and maintain 100-year old cast iron and a very nice German chef's knife.
I think the biggest difference between software maintenance and maintenance of most physical objects is that physical maintenance is calming, tactile and pleasant.
Routine software maintenance, on the other hand, is hacky, frustrating and stressful.
I would much rather sharpen my knife on a whetstone than fix a dependency on a CI server or wrap my head around Apple's latest code signing bullshit.
> I think the biggest difference between software maintenance and maintenance of most physical objects is that physical maintenance is calming, tactile and pleasant.
A lot of folks don't think this way. I do, but I know many who don't so it's important to remember that, especially when trying to make systemic judgements on fields of industry.
Fair point. I've not met many people who are actually excited by this stuff, but that doesn't mean they don't exist.
I may be a little bit biased in this area as I had to spend a lot of time dealing with a build system that my company had rolled themselves, with one maintainer that spent his entire week just putting out fires, all while under high pressure from deadlines and also external pressure from home eviction, wedding, side businesses).
I just cannot relax or have fun when dealing with WiX or qmake failures or dependencies disappearing.
Right - whereas I find this the most exciting series of things I get to do, by far. It's always a game of hunt the wocket - especially when you're trying to not just hack a solution together.
I have had several existential crisis wondering *"what the fuck am I doing this for, we produce nothing."*
---
This happened to me at FB, SF, Lucas, Brocade...
I was like "yeah, im doing well professionally, making money - but at the end of the day, it was just "we produce nothing of intrinsic value"
I find it ironic that NFTs are now the version of creating something of digital content, but it has non-fungible (intrinsic value) and they are attempting to make a money laundering network out of NFTs (if you may not be aware, the art market is the largest money laundering scheme ever devised up until where we are at present.
I am currently going through a mid-life, as I can't stand tech at all - but its all I know, so I am attempting to just get into gardening and maybe work at a nursery...
> I was like "yeah, im doing well professionally, making money - but at the end of the day, it was just "we produce nothing of intrinsic value"
I think it depends on what you work on. For example, I once created a small program to split some file for my mother. She uses it every day at work and saves ~30 minutes of manual work. It's a source of pride for me. She can use that time to work on more substantial things, maybe come out of work earlier sometimes, and in general avoid some mind-numbing work. Many people use computers these days, and by being programmers we have a lot of power in our hands. You can reason that saving a bit of time will amount to nothing in the end, but it usually generates lots of positive feelings.
I'm a little younger than you, so I want to ask this:
If it were up to you, alone or with a team you're in charge of, do you think you could come up with a piece of software which would be less ephemeral and more lasting, perhaps being able to work unadministered or requiring minimum administration for a while, and be usable AND useful for years without any major changes?
What would it look like, and what would its pieces be made of?
> do you think you could come up with a piece of software which would be less ephemeral and more lasting
Take a look at the sort of old software people write emulators for.
There's an active scene that resurrects 70/80s video games - Space Invaders/Galaga/Defender et al have way way longer useful life than most of the software written in the subsequent ~40 years.
IBM maintain a VAX/VMS emulator, and there are various ports if it (including OpenVMS and an x86 version). This is mostly (I think?) used for "legacy apps" particularly finacuial/governemnt/adacemic/military software written in Cobol, Fortran, or Ada.
Looking at those sorts of software would be interesting in terms of knowing what sort of 40+ year old software people still care about...
I LOVE this challenging thought experiment. (I was on "commenting too fast" restrictions (Shakes fist @Dang)...
---
With that said - I love this question!
---
The premise, as interpreted:
**"A self-teaching application which can adjust behavior and performance with minimal input"**
---
Proposal A: [NMAP/PRISM/ETC for AI/ML systems] ((I'd be sure Palantir has this covered...))
This one will be long winded and off-the-cuff based on some work we did with tracking software in the past (people places, things, things-that-kill-people-places-and-things, etc)
I would like an AI awareness layer whereby an AI/ML system can locate adjacent 'other' systems and either silently learn - or actively map/learn etc...
We have had netmon tools for decades. I'd prefer a single firewall device;
I plug it in at home - and its my VPN/PROXY that ALL my familial devices run through. ALL.
So its just a simple VPN etc - all my mobile devices in the family of devices only route through my home device - which in-turn also keeps a small constellation of other nodes several hops out - such that BGP is sorta accomplished - cant get to primary node, go here instead.
I've designed SDNs on mass-fiber btwn HK, JP, Indonesia, Malaysia, etc...
Its doable (this is when Palo Alto Networks was just coming online with their product line...)
Doing this in a manner which utilized AI/ML/etc to more intelligently setup these systems...
Yes I could lead a team that does that....
Lets think this thing out into the zeitgeist and if its lame, then let it die - if it is not lame - then I will work with anyone who may want to explore it?
Network, storage, memory and compute (GPU is included in compute). Aside from any other mortar you may need which can be available as a service, that is the premise of all that we do with machines.
Honestly, its a straightforward concept - and products exist in the enterprise for just this: MDM (Mobile Device Management) -- you can deploy and manage (and monitor and spy on) any provisioned device through your ITMS...
There should be a product for homes that provides all that you said - with archive, backup, MDM, blogs, calendar, todo, etc...
I pitched this years ago "Facebook in a box for the home"
You were told "nobody will want that" by people who wouldn't want it to exist as it flies in the face of those walled gardens. I know plenty of people that want that now for sure, myself included. People are tired of their data being "owned" by these companies and subsequently having it lost or stolen. Something like this would be like mixing bitdefender box and a NAS with HumHub or some other open source social network software maybe?
Idk about that. You could say the same about a farmer or a banker or a teacher etc. Even the guys who build the Empire State building - there were probably hundreds of them, each only building a small part - and someday that will get lost in time also.
“Intrinsic value” is whatever you define it to be. I guess if you’re working for some ad-sales-management company making software for other big companies, then you probably don’t think you’re making much intrinsic value. But my philosophy is, just try to make the world a slightly better place to live in when you leave. And even a small library or project may help others working on bigger projects, which influence bigger projects, which cause real change.
> we produce nothing of intrinsic value
Idk about that. You could say the same about a farmer or a banker or a teacher etc.
Absolutely not. None of these professionals are ever working on superfluous projects of unknown worth to the society. In fact, their worth to the society is immediate and totally tangible: you couldn’t eat without the farmer’s work, you wouldn’t have a house without the banker, and you would be dumb without the teacher.
However for most software projects, you would have a hard time to define their positive contribution to the society. Not saying useful and positive software doesn’t exists : there are plenty of those. But they are a visible minority in a sea of unknown, buggy, driven by bankable MVPs rather than useful and well crafted user centered software.
"Wouldn't have a house without the banker". In some societies this is/was called usury - the opposite of intrinsic value. Banks leech value instead of creating any.
Someone who maintains an event space will find that they have to do the same tasks every day and that their hard-fought progress is often destroyed by the very events that they host; meanwhile, even their optimized routines will randomly become obsolete due to changing circumstance of construction, government, and behavior... and yet I don't think it would be fair that they are producing nothing of intrinsic value: the value of Facebook isn't the software you developed while working there, but (as they like to say) "the friends we made along the way".
Imagine your whole life has been spent flipping bits. Highly frustrating, I'm really happy that I also have some real world skills and I'm always wondering whether the buildings that I put up will outlive me.
Core idea is how can you design a software system that avoids the pitfalls of spinning plate on a stick that requires constant maintenance as the world shifts around it, 'the big ball of mud'.
One way to do this is to design a system where all events of the system can be replayed from start to finish in an immutable/repeatable way. Taking the advantages of state guarantees from functional language design and applying something similar to an entire OS.
You can design something that abstracts this general design away from specific implementations of pieces that interact with the underlying system today (*nix).
It's a little hard to summarize in a really short comment because there's a lot of new/first principles thinking that doesn't analogize super cleanly to the existing software stack people are familiar with (which is why it's interesting).
Yeah that's Curtis Yarvin, I think his neo-reactionary politics are wrong [0], but the design and ideas behind urbit are good (and he's no longer directly involved in the project).
Conjecture: the fundamental distinction between software engineering and other engineering disciplines is the lack of DEs.
Though calculus plays a role in information theory (and of course in some application domains such as computational fluid dynamics and machine learning).
Software engineering is more like a trade or craft, except that it's new and still evolving.
Software engineering seems like it might, eventually, become actual engineering when it matures a bit. Most other forms of engineering have had centuries or even longer to figure things out.
In software, we started with a programmable loom, stagnated for a few centuries, then all at once had tools and systems too complex to understand all of their implications.
It would be like taking apothecaries from the 1700s and putting them in the middle of a massive industrial chemical plant and hoping they make useful things that don't break easily or have design flaws.
I think this is related to why I got into stain glass window making as a pandemic hobby. As everything I was working on felt ephemeral and physically disconnecting, it was refreshing to take on something both creative and tangible.
That all-hands simulator is fantastic. We once worked together and have attended some of the same all-hands meetings. Your game is about as painful as the real thing, which makes it even more hilarious.
I wholeheartedly support this. These "useless" project rekindled my love for programming. They're the ones I enjoy working on, because I know from the start that they're only for fun.
Does anyone even own a printer these days? Who knows? Don't care! The feature's true purpose is to try and draw out a smile, and from there maybe a look. The fact it actually works is a nice side effect.
IMO making toys is the hardest thing of all designs... too long-shot/perspective to cover.. like while some adult may be able to tell what he likes/dislikes about a thing, it not so for kids.. esp. in long run.
it's a blessing that some (physical or not at all) toys still exist without being monetized.. although the trends with everything-being-appz might kill that some day
maybe OT, but some 10+y ago, i passed through few continents and cultures within 3-4 months, and while looking for toys for the kids to bring home from that journey, in plenty of places, i realized something.. the culture/society is somehow representable by what toys it makes for it's kids. Somewhat like the cultural dimensions thing, but in different aspects.. Like shallow vs deep, curiousness vs just-grinding, beautiful vs ugly, well crafted vs cheaply, etc. And funny, Rich/expensive as $$$ doesnot always correspond to richness of toy-experience/perception.
Of course it's rather subjective, YMMV
> the culture/society is somehow representable by what toys it makes for it's kids.
Can you give some examples?
I've spent the last 7 years doing a lot of travelling around Asia, India, and Europe. I've observed quite the opposite, so I'm curious to know what you've seen that I've missed.
Currently I live in Vietnam and I polled a couple of Vietnamese people who are sitting with me about what their children play with (it turned into a really interesting breakfast conversation, so thanks!).
Their answers:
Boys play with cars, water guns, toy soldiers, and such. Girls play with dolls, toy kitchens, toy houses. Both play with modeling clay, coloring pens etc. (or Lego if the parents are progressive). Boys role play as soldiers, girls as princesses. Both role play as things like shopkeepers. This also includes data from people's childhoods 30 year's ago so I don't think it's a sign of Westernization. The main difference over the past 30 years is more plastic (of course) and that many people are much richer now. The main difference I've seen is that electric bikes for older children/teens are very popular here (I think bikes are a tool rather than a toy though).
This seems very similar to what children in Europe play with, and ties in with my observations in other countries. But of course, even a lifetime of travel would only give me insight into a fraction of cultures so more info is welcome.
The big exception is in remote areas in the countryside where people are very poor and can't afford many toys.
Exactly. I have a lot of the same feelings, so 6 weeks ago I wrote a similar blog post, "Why I prefer making making useless stuff". I haven't quite figured out how to convert my "useless stuff" into a company yet though...
I loved that article!! Ever since then I've been playing with some techs that I've been curious since forever but without a "project" to try them I hadn't...
The notion of doing something for which I don't care about github stars or readability or even good programming practices (1000L files!) it's SO FREEING!
Thanks for that article, it has helped me found the joy I had when I was just poking around on the computer, which I've missed now that I'm a "professional"...
I noticed the same about myself but I still wonder if this isn't just a character weakness. Why exactly can't I be just as careless and free about a project that I'm serious about in the sense of its potential to make money if executed fully? I do think it's a weakness.
Interesting take. I used to think that but looking at psychology, things like the "flow" state or the book "Deep Work" there's something to be said about out enjoyment of something and the motivations for why we do them.
When my motivation to do something is money, even if I find whatever I do interesting, I'm only doing it for money. Looking at it differently, if I wouldn't do what I'm doing if I wasn't being paid for it there the motivation is not the activity itself but the result.
Doesn't "careless" and "serious" are opposite to each other? I find that when I'm working on a project that I'm "serious" about the focus/motivation/purpose is not the project but the result. The "serious about it" is usually something outside of the project.
You know, intrinsic vs extrinsic motivation.
On the other side, I'm right now working really hard to be careless an free about a new project that I'm actually serious about, even as I'm working for it to make money, but the only way that I can accomplish that for myself is by approaching the project as an experiment/adventure and after exploring the worst case scenario realizing that even if I lose $x finite amount, I'm fine with that.
It's quite hard for me tho, maybe you have stronger character than I!
You say "haven't quite figured out" - does that imply there are things you wanted to convert but didn't see the path for, or that the question hasn't truly come up?
While Aaron's essay approaches the analogy from the perspective of those building, the linked essay approaches it from the market's perspective. For builders, don't take yourself so seriously -- but on the flip side, don't be so quick to write new things off as silly.
Anki (the robotics toy company, not the flash cards) comes to mind. IIRC they had aspirations to build non-toy tech. It didn't work out, though, as they shut down last year.
It's unfortunate - I got one of their vector robots for cheap after they shut down and it's a fun little gadget.
I saw the Anki being demoed during WWDC 2013. At first, I was intrigued but the price turned me off. I couldn't find a justification in getting one especially when Oculuses were competing for my $$$. I generally agree that toys do have their purpose. Those who are involved in AWS DeepRacer competitions can probably attest to that.
now on topic.. quoting "Business is about making money and working with customers. These are very serious and scary things. Toys are for playing and trying new things. This isn’t serious at all":
Maybe the problem is that what is called/accepted as "serious" is the opposite of it? A toy for shapeing a mind (of kids) may be looooots more serious/important that some $$$$$ made per-day..
kind-a the 4th planet the little prince visited..
It's insane people automatically use the word "useless" for anything that cannot directly or indirectly turn into capital or material gain, a lot of cases it just brings happiness directly (which is the desired result of any capital and material gain).
The toys that you build not necessarily have to make the users happy, but it needs to connect at some emotional level. The more visceral the emotion, the better is the connection. For example, I'm never happy when I use blind in fact it mostly just makes me depressed. But it invokes a deep emotional reaction that I want to go back to using it time and again. Similarly, the echo chambers in social media don't make people happy but provide an emotional vent that makes these applications a huge success.
A friend of mine has spent a lot of time recently programming his own ray tracer in OpenGL. He has no intention of turning it into work, not in developing the skill into one that would change his career trajectory. He just thought it would be cool to learn how to make a ray-tracer.
I came across an article[1] recently that suggests that everything we do doesn’t have to turn into a business. I get why people want that, but my anxiety dropped a bit when I decided to just build the thing I wanted to.
I'm happy developers have the ability to build and work on things they love. And create something fun.
But, at the same time, endless warnings about the seriousness of toys becoming monster businesses would be more believable if aborting companies and anti-trust wasn't still a shitshow a century after the big trusts.
This isn't the author's fault, but mixing "Let's have a conversation on Big Tech." with warnings about havoc seems disingenuous at best.
We understand that organizations are these complex things that take over everything and shit everywhere. And at the same time build things that make you smile and facilitate community.
We don't as citizens have all the tools to manage that without drama.
I love this idea to get at least a pipeline of people to talk to in order to get closer to PMF. Sometimes its abysmally hard to even get people to get feedback from in the early days of a product it's like the great filter for pre-seed/early-seed startups are you actually building something someone, anyone, even just like one person wants to use? However, this could be a huge trap for founders or people with passion projects which they just want to be passion projects.
I guess the one thing I've realized is the problem with this is the one more feature trap. Sometimes those people who like your toy will never pay for it, which may be fine depending on your goals, but the issue is there just as relentlessly demanding as paying customers. It's demoralizing to have a side-hobby project which you don't want to monetize but still has all the demands from "adopters/customers" that a paid solution would. It just destroys your passion for that project because it ultimately it just becomes work.
Really charging for a product is great and I think hacker culture seems to dismiss it because its not in the ethos but if there's anything in retrospect I think I've learned so far with my many failed side-projects is charging for them is the best way to have a great personal experience and best experience for who your building that product for. Mostly because it aligns incentives appropriately.
As much as I've enjoyed some of my passion projects I can't think of one I ended up "finishing" which I wouldn't get some monetary gain from. Because let's be honest whose passionate about setting up a Jenkins server, or implementing git checks, writing unit tests or creating onboarding documentation for cranky free or OS users? At a certain point a successful side-project/product requires you to do things you wont enjoy doing, and honestly some of those things may be the most important things you do for the "success" of that side-project/product.
I'd rather be spending that time with loved ones, enjoying the sun, which is ultimately far more rewarding than a few git stars or upvotes for ego. With that being said I think if you utilize this approach which is basically just freemium for B2B like projects it could be a powerful step towards finding your ideal customer and getting paid users, but it has to be just that a step towards acquiring paid users.
I get disappointed when I see someone build something cool, but maybe not commercializable, and the comments come in asking: “yeah, but how are you planning to monetize it”.
90% of the side projects I embark in are likely to have no commercial value, but are pretty cool, at least I’d like to think.
Hell yeah. I literally can’t be bothered to “finish” something once I’ve solved the difficult parts. I’ve got quite a library now of software that’s 80-90% complete. Almost all of them die in the final “clean up styling,” and “adjust branding” phases because they’re so fucking boring to me. Is it a waste? Oooh hell no! It’s getting to the point where I’m searching my own fucking code for answers. It’s great. “Oh yeah, I totally did setup, configure, and deploy an custom search engine built on Lucene” or “oh yeah I totally spent four months researching encryption algos, which one was best for the time/CPU budget I have? Let me check.”
It’s nice to hear others are the same or at least enjoy the journey. Maybe this will be the motivation I need to starting releasing them “as-is” which is more of a “journey included, destination not determined” state...
It's more about the journey than the destination on most of my side projects. Yes, the end product is meant to be useable by me (hence me expending the effort). However, I tend to learn new build techniques or it's a chance to hone a skill. Do all of my solder joints look the same/consistent (hopefully good)? Did I really need to make a biscuit join? Could I have make a cleaner cut into this plastic using a hot knife vs a spinning blade?
There's also the counter-perspective of "wow, you must be rich" which is something I feel (but don't say) when someone has enough free time to build anything frivolous. I work full-time and freelance on the side because I have no financial support system and it's terrifying. I've burnt myself out a couple times and the only reason I kept going was the inevitability of financial ruin.
Airbnb looked like a doofy hipster thing to hotels for a very long time. And then, when it was too late, they realized that it wasn’t a toy at all.
I always thought Airbnb was an awful idea. I didn't pay attention to it for a long time, except to be surprised it was still around when I would see it mentioned. I'm sure the big hotel companies feel worse about that mentality than I do, though it's probably a good thing I'm not a venture capitalist.
For instance, I launched a bunch of games that are, frankly, more fun to watch, than to play (e.g. an All-hands meeting simulator: https://rafsters.itch.io/all-hands) or little tools this one https://sonnet.io/posts/reactive-hole/ (it's stupid, completely replaceable, but somewhat adorable).
I come from a family with 4 generations of carpenters. It's a profession more similar to software engineering that most engineering jobs I can think of. The main difference is that in our domain so often the results of our work just don't feel real.
If you're in this situation and this frustrates you, either build something small that people would use OR go ahead build something useless, but intentionally.