I much prefer starting with a working application and making small changes, one at a time, testing as I go. Asa H has evolved in that way. I recommend the methodology to students.
But AI is a vast field. Most workers will only develop a single component exhibiting a single functionality. Assembling a complete AI will then involve glueing these components together. Over the years I have used a lot of code written by other people. I don't want to reinvent the wheel.
I find that creating wrappers and software glue is difficult and error prone. Keeping variable names straight is hard even when I'm dealing only with components that I wrote myself. Even if you use Hungarian notation or some other standardization the next guy doesn't. Components may have been designed and written on different hardware platforms, with different operating systems, different windowing systems, different compilers, with different libraries, etc. Testing the glue software is also tricky. I've not seen much published work on these issues and methodologies.