It's important for software managers to understand how to create software. If you're managing a group of developers, then you should be able to code. If you're managing a group that tests, or you manage DBAs, or so on, then you should be able to do those things too.
There are two reasons for this: the Enlightened Manager and the BS-Factor.
The Enlightened Manager: Software managers have to make decisions every day that impact their product or team. Many of these require a technical trade-off or compromise. In these situations, the manager with relevant experience can blend their perspective with the advice from the team. The manager without this experience is left only with the option of delegating. This renders them at best a proxy for decisions, or at worst, making poor decisions. The more effective position when needed is the ability to blend your unique insight with expert guidance.
The BS-Factor: I once worked on a team where we did weekly progress updates. At these updates, the same developer would share how he didn't make any progress because of "design, implement, gotcha." What he was implying was that he ran into technical issues. The reality was a lack of focus combined with a skill gap. This continued for months, in part, because his manager didn't have the needed technical skills to assess what was being shared.
One final note. Many technical managers have prior experience developing an application. This isn't enough. What's needed to be most effective is current experience; preferably in the last year. There are many options to stay up-to-date including contributing to an open source project, taking a class on your favorite technology, attending conferences, and much more. In my experience, these are well worth the time and effort.
Do you have a manager that can code? Or the opposite? Leave a comment sharing your experience - good or bad.