What makes software development engineering
Summary
This article argues that software development is engineering when an engineering approach is applied to software, emphasizing measurement, iteration, and tradeoffs. It traces engineering definitions from UNESCO and SWEBOK, discusses the historical NATO debate on software engineering, and uses a Redis caching example to illustrate how design choices affect latency. It also questions whether AI will replace human software engineers, concluding that human-guided software engineering remains valuable for now.