There is a rash of recent software development methods (e.g. Lean, Kanban) that are based on manufacturing, usually Japanese. Manufacturing is doing the known over and over, trying to squeeze the last nickel out of the recurring costs. Software development is largely exploring the unknown. There aren’t repeatable, consistent tasks. Many of these methods strike me as attempts to replace expensive, talented individuals with cheap, generic labor. And sacrificing long-term viability (and costs) for short-term gain.
There are consistent, repeatable parts of software development and where they exist they have been pushed into compilers, scripts, and code generators. Valuable effort has gone and is going into squeezing another couple of percent performance out of the optimizer in compilers. This is so successful that few projects generate assembler/machine code by hand any more. The repeatable parts of well run projects are automated, compiler back-ends, scripts, automated builds, automated tests, etc. Much more cost-effective than hiring poorly paid, poorly educated, unexperienced people.
Or not bothering with documentation, comments, and clean code because it doesn’t provide immediate “customer value”.