Software Engineering is a Restaurant!

A common misconception even among new members of the software engineering community is that software engineering is the same as programming. To explain the difference between programming and software engineering I will use the cooking vs. restaurant metaphor. For some reason all my examples and metaphors are food related, but that’s not central to our topic today.

We can say that programming is like cooking, it involves following organized steps to move from ingredients (input) to a finished product/meal (output). On the other hand, software engineering is like a restaurant, of course it involves cooking but it is much more. A restaurant involves customers, workers, tools, resources, and it delivers a product on a much bigger scale. Therefore, software engineering involves organizing people and resources to produce a quality product within budget and on time to match the expectations and needs of the customer. Keep in mind that both programming and software engineering give us software as an outcome, but the scale, processes, and tools used are very different.

This post is short because I need to go eat something…