The way I see it, software project management is primarily about leadership. It's being responsible for taking a project from concept to implementation. This requires solving a problem. And steering a team towards an implemented solution.
This is no trivial task. Solving a problem requires finding a problem that can be solved with software. Hosting such software. And improving value metrics for users.
Here comes the first art of project management. Problem finding. You and your team want to know what to solve for. And how to get there.
The project manager has to build a narrative of a problem. Draw a map pointing towards a solution. And lead the team to implementation. Resembling how an expedition crew would get to the top of a hill.
For that narrative, the PM will deal with all sorts of considerations. Instructions, biases, traditions, hierarchies, levels of expertise.You name it, the PM must navigate that complexity. Their narrative should move people towards objectives.
Good problem finding looks like a confident team. And a good relationship with both internal and external clients. People are not confused about their place in the project. And understand its direction.
Thus, problem finding should to be a priority. And must be refined along the way. Good problem finding will make you faster. And reduce your risk of over-rushing.
The second art of project management is architecture design. The world of software is as vast as it gets. You and your team will have to brainstorm and pick many components. These are some key questions you probably want to answer.
Software from scratch or existing solution? Software from scratch can be quickly developed. But it will have unique infrastructure needs. You'll have to host that complexity.
Readiness or long term? If you aim for the long term, elegant code seems like a better fit. It produces less downstream trash. But short, dirty solutions are a viable option.
Compact or distributed? Distributed, modular designs increase the number of connected systems. Allowing each to be hosted and scaled individually. But can be harder to track than monolithic, central designs.
What is the software history of the organization? You might have to stick to the client's tool stack. Your team will require flexibility. And willingness to learn old technology.
What is your version control strategy? As a project manager, Git is your best friend. You will benefit from knowing your versions. And success metrics related to each.