We often talk about the goal of software engineering as “writing applications that work”. But, in truth, that’s only 10% of it.
It’s easy to write a simple clone of Facebook, Amazon, or Airbnb on your own and deploy it on server; but it’s difficult to develop a system where many developers can work together effortlessly (distributed version control, code review pair programming), where new features can be added, tested, and deployed quickly (continuous integration, continuous deployment), where developers can be confident things work (tests), where bugs can be detected and resolved quickly (logging, monitoring), where a new developer joining the project can get up to speed quickly (documentation), where the code is performant (benchmarking).
It’s easy making things work, but that’s just 10% of it.