Working with Product Managers and Graphic Designers as an Engineer
Tags: career, codenewbie, beginners
Published: 2020-12-28 20:39:27

It's a genuine relationship in the ecosystem of software development. As much as people like to think that websites are about the coders behind them, it usually takes a bigger team of dedicated people to make it happen. 

HTML, CSS, and JavaScript are just as crucial as Product Managers, Designers, and Software Engineers. 

Your role as a software developer on a team is to bring your consumers' needs to life through code. Think of yourself as a conduit to technology and its capabilities and your users. 

Working with a bigger team outside of engineers isn't typical for most programmers working at start-ups, as there are just not enough people to fill in these roles. 

Larger companies with a hefty budget could hire a team of copy editors, designers, quality assurance specialists - the list goes on. 

For those that find themselves in a new group of professionals that don't code, working with people in other disciplines can seem alien. 

Before getting into how you can bring the most value to your team as an engineer, it's essential to understand the roles that key teammates play in the software development process.

## Product Managers
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/g9muad65axx03wxhx20m.png)
Product Managers (PM's) are a special breed of people. They have a vision of the ultimate user experience from inception to completion. Interfacing with several levels of management, PM's are the cornerstone of your deliverables.

Just as software engineers think of all possible paths in their codebase, PM's define business goals and develop strategies, roadmaps, and milestones towards the final product. 

As an engineer, PM's are the people you go to for understanding the _why_ of what you're creating. Getting a deeper level of what a PM is trying to deliver will help you make the experience.

For example, after working with designers, a PM may come to you with concerns about load time efficiency due to the amount of traffic they expect to have at launch.

Your understanding of CSS can provide the comfort of letting them know that you can use native browser gradients and compressed transparent PNG's to minimize loading time.

Or it could be the case that instead of taking an approach that a PM had in mind, you can recommend a more efficient way of going about to achieve the same desired goal because of your deep understanding. 

In either event, PM's are there to provide you with the guidance to achieve the best experience for the user.

### Tips for working with Product Managers

#### Understand your audience
Who are you building this for? What screens will they be on? How do you handle unexpected errors? These are the types of questions you'll want to understand from your PM. Their answers bring you closer to the customer and fulfilling their needs.

#### Innovate and Communicate
When getting into the code, you may find inconsistencies in the experience that need intervention. Talk with your PM about this unforeseen route and how you could handle it. If it makes for a better user experience, speak up!

#### Get it in writing
Everyone has ideas, and most of them are great. However, without a plan, an idea is just that. Software requirements set up the expected outcome that the user will have. Specification documents come in many forms. The bottom line is to agree on something tangible that you can deliver. 

#### Plan B
Your input shapes the experience. If what your PM wants isn't feasible or, frankly, impossible, have a backup plan. Show them what is possible using your field knowledge and experience.

#### Learn to Estimate
Everyone has a deadline. If there's a feature PM wants to build, but there's only a portion you can deliver on time, say that out loud. You can provide it in pieces overtime if applicable. Know your limits and capabilities and never take on more than you can handle. When in doubt, add padding to your original estimate; under-promise and over-deliver. 

## Designers
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/ivd2jt1ndzl9nw5lk3ll.png)
It's not only pretty pictures and pushing pixels. Designers
create visual experiences that guide the user toward happiness.

People like to look at nice things, and it's not easy to do. A designer's responsibility isn't to "just design," as there are layers of research and development that go into creating unique and visually appealing experiences. 

From mock-ups to market research, graphic designers create engaging content for consumers to take out their wallets and spend money on products and services. 

Would you buy a product off the shelf if the package design looked like an amateur's attempt to look professional? 

It may be the best product in the world, but you'd never know because the inadequate packaging turned you away and onto another product.

We pay with our eyes just as much as we eat. Your relationship with designers is the bread and butter of this aspect of a creative profession. 

### Tips for working with Graphic Designers
#### Don't get attached to your code.
People know what they don't like when they see it. What you wrote yesterday could be deleted entirely - you need to be cool with that. Working together with your designer can help you reduce the amount of code you write.

#### Adapt to the Product.
Details are everything, and sometimes they change. Working directly with designers is a great way to build your creative muscle. Identify patterns in the experiences you're creating and code around them. Knowing the product vision before writing will help you keep your code modular and extendable. 

#### Don't just build it; use it. 
If an experience feels off, even if it's according to the spec (you got one, right?), speak up and let your PM know. When looking through a user's eyes as you're developing, you may notice ways to improve it. Your domain experience is part of the value that you bring, in addition to your coding skills.

#### Communicate in real-time.
Share as much and as often as possible. When you have a working demo, get feedback on your work. An open communication line with creators will ultimately help you create a better experience for the user.

### Conclusion
A software developer's job is never over. From features to bug fixes, the body of code you contribute to may one day outgrow you. To leave your code in the best possible position for the next person to extend and maintain, learn to work closely with those whose ideas you help manifest.