This definition is from the book “Software as Capital” by Howard Baetjer Jr :
Software development is a social learning process. The process is a dialogue in which the knowledge that must become the software is brought together and embodied in the software. The process provides interaction between users and designers: between users and evolving tools, and between designers and evolving tools [technology] It is an iterative process in which the evolving tool itself serves as the medium for communication, with each new round of the dialogue eliciting more useful knowledge from the people involved.
The best definition of Software Development I have read so far!
EDIT: It doesn’t seem that good now, even I kind of hate it… maybe I was over-caffeinated that day