Hacker News new | ask | show | jobs
by dgb23 1472 days ago
> Great programmers want to create. They won't be satisfied with just maintaining a successful product.

What about Linux kernel or SQLite maintainers? Aren't those great programmers? Also if the software "they" created is so great, why wouldn't they want to maintain and extend it?

As far as I know, programmers love maintaining great software, but maintenance doesn't mean "bloat it with unnecessary features" or similar. Optimizing performance, make it more reliable, improve the tooling, cutting out the fat and similar are things that are challenging and engaging.

I think programmers want freedom, agency and ownership of something great. Yes, part of that has to be tinkering and writing new prototypes of things that might or might not go somewhere, but it can't be all of it for everyone right?

4 comments

Honestly, there may be great programmers amongst the kernel and SQLite maintainers, but they may stay around for other reasons. Some great programmers like working on a particular piece of tooling.

But many companies don't really allow "maintenance" of software as you describe it - the heady early days where anything goes are pretty free-form, but once you get into the normal business cycle it's just adding features and keeping it from exploding. The problem really becomes apparent when the company has a culture of promoting/rewarding the programmers who do create and ignoring or ostracizing the ones that maintain.

> Optimizing performance, make it more reliable, improve the tooling, cutting out the fat and similar are things that are challenging and engaging.

That's not maintenance. That's later stage creation process. Maintenance is stuff like "make an adapter for foo" or "deal with the format change" or "the new version of windows exposess this bug, fix it".

> Maintenance is stuff like "make an adapter for foo" or "deal with the format change" or "the new version of windows exposess this bug, fix it".

This can nevertheless be quite challenging and exciting: such new requirements often lead to a revision of the assumptions underlying the architecture of the software and thus - in the long term - lead to lots of small improvements in the software architecture that add uo.

The problem rather is that such maintenance tasks are often not very esteemed (both to managers and other programmers).

I agree a lot with your comment. I do think adding new features is exciting, but if a project is technically interesting (like a kernel is), then there can be great satisfaction in maintaining, as that maintenance can be technically interesting itself.

This is not the case if the software is boring from a purely technical standpoint, e.g. some CRUD sales app.

I lean towards agreeing with you, but both Linux and SQLite do regularly add new features, however incrementally.
Possibly the 2 most popular softwares in the world I’d claim