In the mind of many managers, the software development group is a black box filled with creatures from myth. You throw in a specification document and after a suitable period of time (usually defined as deadline + r, where r is a random number of troubleshooting days), working software pops out.
It's a lovely system, as myth-based systems go, but it leaves a lot to be desired when it comes to successfully managing the development process.
Most software development managers know that the software development group is staffed with human beings who respond to the same sort of factors that have an impact on most of us, but the rise of DevOps means that non-software development managers are increasingly called upon to interact with developers and even assist in managing development-based projects.
If you find yourself in that situation, there are several things that you need to know about software development in order to have things go as smoothly as possible. I'm not talking about the inner secrets of agile development or scrum, here. These are the sort of things that you need to know regardless of the particular discipline being used.
How do I know these things? To start with, I've been a developer and managed developers. I also spend a lot of time talking with developers and their managers. I also read what developers write. These points are distilled from all of those sources, with a touch of judgment and life experience thrown in for flavor.
I'm willing to admit that there are other things that managers should know before they dive into the deep end of the software development pool, and I'd love to hear your ideas about what those things are.
Here are my items to get you started. Take a look and let me know what you think. Somewhere, a software dev group is waiting.