How to Excel as a Developer: Advice from a Business Program Manager

Mary
6 min readFeb 5, 2021

Having spent 8+ years at Microsoft as a Business Program Manager on a development team, I can tell you I’ve had plenty of pulling-my-hair-out moments when engaging with my colleagues. Over the past year, I’ve transitioned into a career in software development. Having unique experience from both sides of the fence, I’d like to offer my advice on how to excel in your career as a developer.

Communication…Communication…Communication

Did I mention communication? This section is a big one for a reason. Communication is what makes a team thrive, or conversely, fall apart. Here are a few things you can do to improve your communication:

  • Consistently Engage with Your Team

Communicate early and often. Don’t be afraid to ask questions to better understand the task at hand. This applies from ideation to execution. Keep communication lines open with all stakeholders and check-in relaying progress when appropriate. Don’t forget to keep that Trello or Clubhouse board up-to-date for asynchronous updates. That way if you’re out of the office or on “do-not-disturb” during some focused code time, your progress is documented.

TIP: Want a good teammate? Be a good teammate. Ask your colleagues what their preferred communication method is. Maybe your Designer prefers Slack, your Product Manager email, and your Developer peer prefers in-person or virtual pair programming sessions. Make a note of it and act on it.

  • Fully Participate in Meetings

Stay engaged in meetings and listen even when you’re not being addressed directly. This is not only respectful, but context when building a product is essential. You’d be surprised, your questions might get answered before you ask them.

TIP: If you’re remote, turn your camera on, and don’t be afraid to come off mute!

  • Clearly Communicate Deadlines

I saw this over and over and over and over… ok, you get the idea… again when working with developers. When setting a deadline, be realistic with yourself and include unknown unknowns in your timeline. Plan for things not going as planned. Now being in the shoes of a developer, I totally understand how easily a deadline can fall off course. Oftentimes, this alone isn’t an issue; The issue lies in the communication surrounding it.

TIP: When your timeline is thrown off and your deadline needs to be pushed out, immediately communicate it to your Project Lead and propose a new deadline and/or a potential solution.

See the Big Picture

Take a step back and think about your project from the lens of the end-user. I cannot express how important this is. For developers, it can be easy to get hyper-focused on the technical aspects of the project and fail to view how their task plugs into the bigger picture. Do whatever you need to do to get a grasp of the problem you’re trying to solve. Some people are visual learners and like to sketch things out. I highly encourage you to whip out that dusty pad of paper or use a wireframing tool like Whimsical, Sketch, or Balsamiq.

TIP: Refer to your favorite websites and apps to see how they accomplished your task. Need to build a user profile and you like the look and feel of Airbnb. Check it out! Do a quick Google search on their stack. Open up the inspector on Airbnb.com. Most of the time there is no need to reinvent the wheel. There are great examples everywhere!

Get Those Creative Juices Flowing

My advice is to be comfortable with ambiguity and know when to express your creativity to offer suggestions. Although you’ll engage with a Project and/or Tech Lead, it’s extremely unlikely that you’ll be given a step-by-step guide on how to accomplish your task. Not to mention, a Project Lead might not have the additional technical context to know what’s possible or important. If you notice the design specs your Designer provided are missing a mobile view and you have a passion for frontend design, be proactive and make a proposal. Obviously, you’ll want to run it by them before investing too much of your development time, but consider providing them with a visual and get their feedback. In other words, give them something to work with and don’t just wait for instruction.

TIP: If you see a gap in your project, use it as an opportunity to express your creativity. Everyone is busy, busy, busy. Save your colleagues some precious business hours and make a proposal for how you might fill in the gap.

Be Agile

“Agile” — It’s every person’s new favorite word. It’s the “synergy” of today.

Agile

  1. Able to move quickly and easily.
  2. Relating to or denoting a method of project management, used especially for software development, that is characterized by the division of tasks into short phases of work and frequent reassessment and adaptation of plans.

-Oxford Languages

Put simply, try to resist your urge to resist change. So in essence, replace one resistance with another! You may find midway through development that the library or framework you’re using is deprecated and no longer supported. With the speed at which technology is advancing, that won’t be uncommon. The same agility is required when engaging with business people. Let’s say your employer changes strategic direction and your Product Manager relays that the product’s users will shift from a demographic of young 18–35-year-olds to users 50+ years old. You just finished incorporating the design plans provided by your team Designer, but now the app needs to be more accessible with more icons, new brand colors, and typography. Once again, my advice to you is to resist your urge to push back. See the work you put into the app prior as a learning experience and cooperate with your teammates.

TIP: Change is unavoidable. Handle it with grace. Simply put, be the person on the team everyone wants to work with.

I Got 99 Problems

Let’s face it, that lyric resonates for a reason. Problems are unavoidable. It’s how you address problems, that will make you an effective developer, teammate, and employee.

Avoid the Following:

  • The Blame Game: Don’t point fingers or accuse someone of breaking your code. Decouple your ego from the code. It’s not your code, it’s the code. Any problem is the team’s problem to solve. Code breaks all the time and no one benefits from a teammate with a negative attitude. Also, isn’t that what version control and GitHub is for? Be solutions-oriented and fix the problem in a productive, respectful fashion.
  • The “Not My Problem” Complex: Try to be as helpful as possible regardless of whether you have been directly assigned to the task. Have some free time and know a colleague is struggling or maybe tackling a task in an ineffective way? Reach out and help. 9 times out of 10 the favor will get returned. Not to mention, the product’s success is dependent on everyone’s success, isn’t it?

Teamwork Makes the Dream Work

I’m sure this isn’t news to many of you, but as a developer working for an organization, you’ll rarely work solo. It’s more likely that you’ll work closely with others, including a Teach Lead, Designer, and all or some of the “PM’s”. You know, Program Managers, Product Managers, Project Managers, Product Marketers…maybe there are more? Building rapport with each of these stakeholders is super important. In my experience, it has positively contributed to team communication; You’ll feel more comfortable reaching out and it will go both ways. Additionally, well-structured teams make great things, more diverse things, and more accessible things than you could come up with on your own.

TIP: Embrace each of your teammate’s perspectives and expertise. You’ll undoubtedly learn something and the product will no doubt benefit as well.

What it Boils Down to

  • Communicate
  • Take a step back to understand the big picture
  • Infuse your work with your creativity
  • Embrace change
  • Address problems with grace
  • Utilize the power of teams

Put the above into practice and you have my personal guarantee that you’ll do better at work.

--

--

Mary

I'm a Full Stack Web Developer, with a passion for the frontend and strong interest in React development.