My preferred term is "artisan". A software developer is applying techniques acquired primarily through experience, supplemented by training and outside knowledge. The artisan has a clear vision of the end result in high-level strokes, but the actual process and implementation is strongly dictated by experience and intuition.
Obviously there are different branches of software developer that have more characteristics of engineering, others of science, but I would hazard to guess that 80% of software development is essentially a guided artistic process.