What is the difference between software and firmware?
The Jargon File is as close to a reference as we have, it has even been cited by major English dictionaries as a a definitive reference for technical lexicology.
Firmware is a type of software, the distinction usually applies at the level at which the information is stored and updated. There are no special techniques to develop one vs the other, it depends on the project scope and definition and all software technologies should be considered in scope until you eliminate them .
http://www.catb.org/jargon/html/F/firmware.html

Firmware: Embedded software contained in EPROM or flash memory. It isn't quite hardware, but at least doesn't have to be loaded from a disk like regular software. Hacker usage differs from straight techspeak in that hackers don't normally apply it to stuff that you can't possibly get at, such as the program that runs a pocket calculator. Instead, it implies that the firmware could be changed, even if doing so would mean opening a box and plugging in a new chip. A computer's BIOS is the classic example, although nowadays there is firmware in disk controllers, modems, video cards and even CD-ROM drives.

fun fact, in  firefighting and rescue, software refers to the webbing and rope materials vs hardware the metal carabiners and other hard pieces :) context matters.
I encourage you , Your organization, project, or team developing complex software to identify to your own satisfaction how you want to handle the hardware layer and a distinction if any between firmware and software to you