We do interiorize software concepts by practice

Take test-driven development technique [1] for example, why people do not understand that it is a design technique and not a testing technique?

 

[1] https://www.artima.com/intv/testdriven.html

 

In order to understand something like this practice in particular, and iterative development in general, one must put it into practice. That is the only way to know software related concepts, because ‘software’ is pure logic, must be processed by brains not just by the ears (what other people say) or eyes (by reading something).

 

The following article explains quite well some misunderstandings in software development:

 

Iterative vs. waterfall software development: Why don't companies get it?

https://www.computerworld.com/softwaretopics/software/appdev/story/0,10801,90325,00.html