4 ms·
> That's a whole book on manufacturing snap fits! I said that there's nothing like that in software: we talk about specific tools, but never about specific doma
by jl6 3y ago
> That's a whole book on manufacturing snap fits! I said that there's nothing like that in software: we talk about specific tools, but never about specific domains. What if we had a book on how to do versioning, or how to make a good plugin system! That'd go a long way to improving the state of our field.
I suspect one key difference between software engineering and physical engineering is that with software, you hit “it depends” sooner. The way you design and build a software system is extremely sensitive to the precise details of the problem you are trying to solve. There aren’t a lot of domains where there is One True Way to do something. The job of the software engineer is perhaps less about building the perfect “snap fit” (although it is at least a bit about that), and more about selecting from the vast array of “snap fits” that exist, and matching them to the specific problem.
- zaphar 3y agoI'm not sure thats true for most of the development people work on. Most line of business apps are pretty much the same for the most part. The specific domain may differ a bit but the domain doesn't seem to impact the design of the system that much in practice. It's only when you find yourself working at a Google, Facebook, or Netflix that you really start hitting it depends style questions.
- Scarblac 3y agoBut isn't that exactly why a whole book on a small subject would make sense? It would be able to show that whole vast array of options, and when to use one over the other.
- generalizations 3y ago> The job of the software engineer is perhaps less about building the perfect “snap fit” (although it is at least a bit about that), and more about selecting from the vast array of “snap fits” that exist, and matching them to the specific problem. Except, that's exactly what a whole book on manufacturing snap fits is about. Physical engineering is nothing but tradeoffs and 'it-depends' and that's why you end up with reference manuals on things like snap fits, where the point is twofold: an encyclopedia of the range of possible snap fits and how they can each be used; and some theory to help figure out the appropriate tradeoff.
- dexwiz 3y agoI think that is exactly what physical engineering largely consists of, selecting the correct material, process, or part. The reason they don’t print these for software is because the numbers changes too fast. The physical properties of steel are relatively constant. Sure, you can invent new types, but 1080 steel has about the same properties as when it was invented. Software numbers change too quick. The amount of CPUs in a system, the network speed, storage, etc. Why write guides on what tech to choose when the numbers changes so fast? I think it’s also a sign of our professions immaturity that we don’t write more books like that. We don’t even have good dimensions defined on which to compare approaches.
- darkerside 3y agoMore than that, the software itself changes. You can determine what you want the properties of the steel to be, so there are no hard constraints to dictate your decision making. You need to make up your own, and if you pick the wrong ones, you get ruthlessly outcompeted.