The difference is that software development interacts with life, and that's where most problems lie: specifications from people who don't actually know what they need; interaction with ill-defined data and systems; unforseen cases; and everything changes over time, beyond the scope of the project.
I suppose that life is irregular.