Software Design vs Physical Product Design

Architecturedesign

I got a bunch of questions to answer to prepare for an exam and this one I'm actually not sure what's the clear difference :

"Explain the difference between designing software and designing physical products"

I have an opinion on this, but the more I think about it the more it feels like there's no real difference except that the tools and formula's used when making physical items has been established hundreds of years ago and the heuristics/models have been in place since forever.

I also thought that, once you design a spoon and make it, it doesn't evolve with time, it fulfills it's requirements and that's that, while for software new requirements come in all the time so you have to consider certain quality attributes in that regard.

This is from my software architecture class if you guys need a context.

What are the differences between software design and physical design, and am I off the mark with my answer?

Best Answer

No real difference? The differences are enormous.

The main aspect is that software has essentially no manufacturing costs to it. The marginal cost of software production is quite nearly nothing, with virtually all the cost going to by design work.

When designing physical process, a lot of your design constraints are dominated by difficulties in actually producing your design. The process of taking a design and planning out how to actually manufacture it is an engineering discipline all by itself, and the costs of manufacturing can often exceed design costs. And because physical devices have to exist in the real world, and be constructed out of real materials, differences in design can result in greatly increased manufactured costs. If you can design your part to be made from stamped sheet metal instead of requiring a machinist to mill it, you can slice the cost per part from several dollars to a few cents.

When you are making copies of software, it is trivial to make copies. You want to fill your hard drive with several billion copies of some software? No problem, and each one will be a perfect copy. But you want to make a billion copies of a physical good? That isn't so easy, even if you have the material laying around. Every single one of those produced parts is going to be slightly different.

In the realm of physical products, there are no exact dimensions, everything has tolerances, everything has elements of variability that must be accounted for. If you are making a software product, you can test your software, and then you can copy it as many times as you want. When we make physical products, we not only have to test some design-representative parts to verify our design, but we have to test each and every single device that rolls off the factory floor.

When you buy a car, something like 1/4 of the cost of the car is represented by the cost to actually produce the raw materials of the car, and the rest is the cost of producing the tooling. If an automobile maker could remove a single screw from an engine design, they would save enough in manufacturing costs that they could pay two engineers for an entire year just to do that.

A cheap injection mold for plastic parts can cost $50,000. Imagine how much different software development would be if it cost $50 grand every time you hit F5 in your IDE to try and run your software.

Read more in From Craft to Science

Related Topic