Civil and Mechanical engineering have been around for thousands of years; the Romans took Civil engineering to a great peak (Vitruvius) but the Renaissance raised the bar again (esp. with Alberti and Palladio). Mechanical engineering was long confused with Civil, but, albeit slower, it kept progressing too, and exploded in the last few centuries.
Software engineering has been around for sixty years or a tad more. How could it possibly be as mature as a sister discipline with many thousands of years' (or even "just" many centuries) worth of accumulated history and experience?
Electronic engineering is my own field (originally, I've been doing software rather than hardware for decades now;-) and somewhere in-between -- a bit more than a century, rather than half that or an order of magnitude more. Least you think it's "mature" check out e.g. The Pentium Chronicles: The People, Passion, and Politics Behind Intel's Landmark Chips. As I read and enjoyed it, it reminded me a lot of the big software projects I've personally lived though!-)
And btw to give you a better idea of what it means for a field of engineering to be "mature", try High Steel: Building the Bridges Across San Francisco Bay about a specific aspect of Civil engineering (the bridges of the San Francisco Bay Area) -- this, too, may help put things in perspective (perhaps together with reflections on the tragedy of that Minneapolis bridge over the Mississipi that collapsed so recently -- unfortunately I have no book to recommend on THAT yet).
In proportion to how much engineering is ambitious, it's only very relatively "mature", whatever the sub-branch -- ambitious projects, be they bridges, microprocessors, or software systems, demand experimentation, risk, novel approaches. Thousands of years of civil engineering -- as mature as it gets -- will help you only marginally if you're the first audacious engineer putting up an all-steel suspension bridge, say... or, whatever tomorrow's bright new star in the field of Civil Engineering will be. Software isn't all that different -- if you're doing "one more churn" of something that's been done a zillion times before (yawn;-), you can already rely on a few generations' collective experience; if you're doing drastic innovation... you're mostly on your own: good luck!-)
[[As I mentioned, I'm an electronic engineer working mostly in software -- I have many relatives and friends who are Civil or Mechanical engineers, and a keen interest in the history of engineering (and science, and maths, and just about anything else besides;-), and these personal interests and connections, as well as reading over and over everything ever written by Vitruvius, Alberti, and Palladio (etc;-) is how I came to develop these opinions.]]