Programming vs. Software Development/Engineering
Two activities that mainly consist of writing code, with some important differences.
Programming: Writing code to tell the computer to do something; open a file, crawl a website, analyze data, create a chart, automate a task, etc.
Software development: Writing code, packaging, and shipping it with the intention of having other people use it. Creating a “product” in other words.
When programming, all you have to worry about is that your code is correct, and it works in a reasonable time, because your main focus is the task at hand. No such luxury with software development.
The difference is huge.
It’s like the difference between cooking a dish (programming), and running a restaurant (software dev). As long as your food tastes good, is clean, and prepared in a reasonable amount of time, you’re good. It’s a different story if you want to serve the exact same dish to every customer as a restaurant manager. More importantly, you need to worry about many other things that have nothing to do with the task at hand (cooking), things like real estate, managing employees, finance, marketing, and so on.
Similarly with software development, you need to worry about documentation for example. You need to take into consideration the versions of your dependencies, making sure your users can use your software on various platforms (devices, OSes, browsers, etc.). Testing is a big thing, and many other things go into it, beyond the simple code that executes a certain task.
Comparison
. | Programming | Software development/engineering |
---|---|---|
Purpose | Complete a task | Produce a packaged product |
Tasks involved | Programming | Programming, documentation, testing, deployment, versioning, packaging, security, performance, others… |
Accessible to hobbyists | Yes | No |
Frequency of running code | Tens to hundres of times | Millions, unbounded |
Security concerns | Low to medium | Very high |
Scalability/performance | Needs to just be fast enough | Very important, fractions of a second matter |
Setup required by others | Medium | Minimal in consumer products (have the right device and just “click here”). Can be extensive for technical products. |
Example | Cooking food → | Running a restaurant |
Example | Having a nice voice → | Being a professional singer |
Example | Doing SEO → | Running an SEO agency |
Example | Reading/writing → | Being a professional writer (poet, novelist, journalist) |