The extraordinary software development manager
Being good at programming is insufficient qualification for becoming a world class software project manager/leader. Too often, we take our best coders and turn them into incompetent managers because it seems like a logical next step, and because we don't pay adequate attention to what we really want from these critical executives. (Hint, this is about many fields, not merely software).
1. Clients want useful visibility into the future in terms of costs, timing and deliverables
in fact, it's almost impossible to be too clear, to benchmark enough and most of all, to overdo the work of identifying forks in the road when it comes to decision making. When a client hires a developer or a company embarks on a software project, they are lost. Even something as complex as building a house is dwarfed by the rapid change, shifting priorities and most of all, the requirement for the new, that's involved in even a simple software project.
The indispensable software development manager is aware of this and lays it all out for us.
2. Code is going to be used, reviewed, updated and inspected by people other than the person writing it
At some point in the next [insert time frame], a dozen people we have never met will either be updating or using this code, whether they are people we hire or people we partner with. It's tempting to question the value of an organized architecture and clear code commenting, but again, it's almost impossible for an organization to overdo this. We don't have time to do it over so we have to spend the time to do it right. In software programming only the amateur's approach rewards speed over long-term usability.
3. A great programmer is worth thirty times as much as a good one.
Which means that hiring a good programmer in a competitive field is a killer error. It also means that managing a programmer in a way that accepts 'good' will lead to a fail as well.
4. Programming at scale is more like building a skyscraper than putting together a dinner party
Architecture in the acquisition of infrastructure and tools is one of the highest leverage pieces of work a tech company can do. Smart architecture decisions will save hundreds of thousands of dollars and earn millions. We'll only make those decisions if we can clearly understand our options.
Or, you can have some newbies hack something together real quick. Up to you.