Kyle McVeigh is a Software Engineer and Vice President based in New York City. From the perspective of an Software Engineer, Kyle shares how Product Managers, Designers and Software Engineers work together.
As a product engineer working within a traditional business, I work closely with the business team and the executives. I am very often asked by coworkers at all levels what it is I do as a software engineer, and how do the product manager and designers fit into that. It is an awkward conversation when business team leads come up to me, as a software engineer, with feature requests and business justifications. When I tell them, you need to take this information to the product manager, I actually don't have absolute control on what we're building, the typical reaction is shock. I'm going to take the rest of this article to explain the role of product managers, designers, and software engineers.
Let's start with Product Managers. Product Managers role is to determine what needs to be built in order to achieve the business goals. The best product managers have a good understanding of business, the customers, and the technology. The product managers (abbreviated PMs for short) determine priority. For a practical standpoint, the Product Manager has the below responsibilities (this is an incomplete list):
Designers work with Product Managers to determine how the technology will feel. They work to create an experience for the customer that is aligned with the company's vision. The best designers are able to extract feedback from the end-customer, understand the competitive landscape, and work with the engineers to design a realistic product. Designers have the below responsibilities (this is an incomplete list):
Software Engineers are responsibility for how the technology is built. Software engineers are responsible for the construction, maintenance, and alterations of the technology. Equally important, the engineers set the pace of innovation by providing the product team with time and difficulty estimates in the form of points. Good software engineers are able to update the website with new features, or change existing features, in a quick and consistent manner. The software engineer works closely with both product and design to ensure they understand the requirements, including edge cases. Software Engineers have the below responsibilities (this is an incomplete list):
Every organization is a bit different, but this framework has helped me explain to the business team about my responsibilities. I plan on writing a follow up article about the different types of software engineers (backend, frontend, etc.) and the role of an engineering manager. I leave you with a final example I use often at work: imagine you're using a website and staring at an embedded document, and there is a 'Download as PDF' button. If you don't need a PDF but need the document as a word document, the product manager has failed to determine the needs of the user. If there is an affordance for downloading the document as a word document, but it is hidden in some menu and you need assistance finding it, the designer has failed to do deliver a good user experience. And finally, if there is a download as word document button, but you get an error message or it downloads as a corrupted file, the software engineer has failed to deliver a working product.