Hacker News new | ask | show | jobs
by carlmr 2380 days ago
Not OP, but to me this is the Unix philosophy of having many small tools that work well and interact well.

Even if your modules are very separated, if you can't individually use and play around with them they become a part of a big blob of software. Services may be products, but only if they're idependently usable.

If you have a small product that's useful in and of itself (e.g. git) you can much more easily make it work well and then integrate with other good tools and replace those if necessary (e.g. if you have problems with Bitbucket/Jira/Confluence, you can switch them out for other solutions, e.g. Gitea).

But if you have a huge clomplex product then at some point it becomes organizationally impossible to move away from it.

2 comments

The Unix philosophy is all well and good, but it's very limiting. There are major types of valuable software products that simply can't be built out of small tools or services.
While there are certainly many ways to build complex software, I haven't found composing a complex system from many simple and independent parts limiting.
Exactly. It's just one way of doing things, and I definitely admit that some very good things have come from much more complex systems.

However, bug control is absolutely vital with these systems, and you definitely need some kind of quality-assurance system, or you will be hatin' life.

Care to site some examples?
Anything performance related I'd say, e.g. stuff like games.

There are some overheads involved, and you lose optimisation possibilities.

Exactly.