Good software is the right product, done right, and managed right. I have found some of the material below helpful.
Software Product Management Specialization: An excellent introductory course on Software Product Management to create Better Software using Agile Practices. Simple Examples with good extended reading material.
Software Development Process: A free udacity course that gives an excellent theoretical introduction to Processes behind modern software development and gives an end-to-end view of things.