Maybe a dumb question, but how does a program go from being a program to being software?

Generally, a piece of software is complete when it provides all of the target features that you set out to provide, and without any critical or obvious bugs that impede utility. In the case of commercial software, it is the point at which you can release it onto the market.

In some cases, you can write it yourself. In other, complicated cases, the project will be written by a team (or even a community), and not a single person. Sometimes in business they talk about a minimum viable product - which is the basic idea, stripped of all bells and whistles. This is usually the starting point for a product - useful in confirming it's market utility and that the business idea is worth investing in. Clearly, investors want to know this info early on.

As a software engineer, if you work on larger projects, you will likely start your career working on small parts of the whole. You will probably report to product owners, team leads and other stakeholders who have the job keeping track of the bigger picture. Earlier on, though, you will probably be given simpler tasks with clearly defined starting and ending points.

Also, some software is never "complete" until it is retired and/or replaced. Continuous updates are being pushed to keep improving and to keep up with security threats.

/r/learnpython Thread