Last week, I participated in my first build week at Lambda School. We were tasked with building a web App in approximately four days. While this is no easy task, I was partnered with an awesome team and we eventually produced this sweet app: Guidr.
Reflecting on my week as a Frontend Architect there’s so much I learned. However, the newest challenge I dealt with was teaming up with a backend developer.
My backend dev, Asa, was a great guy and we got along really well. But when I consider our week-long working relationship there were specific steps we took that helped build this confidence in each other.
This article will highlight those moments and provide some pointers to ensure your first experience goes smoothly too.
Tip #1 — Communicate:
I don’t think I can stress this enough. One of the reasons why our group was able to successfully build a functional app, in four days, was due to our constant communication.
Since we’re a remote school, there was no way our team could’ve met in one place. But that didn’t mean we weren’t together. Every day someone would log on and share a Zoom or Google Hangouts link. This allowed us to be in constant communication so if an error arose we could workshop it immediately.
Now, in some situations, constant communication isn’t going to work. But that doesn’t mean there shouldn’t be an understanding between the frontend and backend. This segues nicely to tip two…
Tip #2 — Understand/Define Your Data:
Knowing what data to expect from your backend and understanding what limitations there will be can help a project with a tight deadline.
On Sunday, before our project started, Asa and I spent an hour and a half talking about how we want our data to be architected.
Having this defined before we touched any code was a huge step up for us. Building a backend API, not surprisingly, takes time and when this is going on what is there for a Frontend dev to do?
Well, if you know what to expect from your backend you can begin to build out a UI that fits that structure. In my case, I was able to design and code our entire App skeleton while waiting on the API. Then when it was completed, integrating the data just a few GET, and POST calls.
Tip #3 — Patience/Empathy:
In any project, some things are going to well, while others are not... Like a good teammate, it’s important to be patient and put yourself in their shoes.
During our project, there were a few moments where our UI was built out and we kept experiencing issues with our Login Authorization and databases. For example, our project needed to catalog all our users and the outdoors trips they had been on. But for some reason, our database was getting flipped. So when we looked to our
/trips data, the results would be the same.
Obviously, this wasn’t our intended goal, but it was a frustrating moment. As the clock ran late into Tuesday night the pressure of an impending deadline started to loom. I left that night feeling anxious but knew that Asa just needed time to come up with a solution.
The next morning when I arrived, I had access to all the data I could ever need.
Just remember during the worst moments, nobody’s goal is to be in that moment. So be patient, be supportive and just imagine if that was you how would you wanted to be treated by your peers.
Tip #4 — Don’t be afraid to ask questions:
Backend development is intimidating. It just is, and there’s nothing us frontend folks can do about it… or is there?
My solution is to ask questions. There’s no room for confusion when there’s a job to be done, so don’t be afraid to ask a question. However, if you’re asking the same question repeatedly… then there’s a problem. So ask questions when necessary but don’t overdo it.
My biggest concerns enter the week revolved around the abstraction that went into building our API. From a frontend perspective, you just make API requests and *Viola* a value is returned. But I was left wondering, How do you receive my request? How do you program that data response? How are coordinate success/error statuses?
So whenever a data pattern emerged that confused me I ask Asa to break it down for me. He gladly obliged and we both came away understanding our task/problem a lot better. This not only created a better working environment but it built a strong rapport between Asa and me.
Tip #5 — Trust is earned, not given:
Throughout life, you’ll need to team up with someone to achieve a common goal. Whether that’s cultivating a family, building an app or throwing a surprise party we are partnered up and tasked with coming up with a solution.
Sometimes we’ll be able to pick our partners but in most cases, that’s out of our control. Throughout my experience, it’s not often that new group member’s default is to trust you. Therefore, we need to earn this trust. but how?
I attempt to do three things during every project that helps me gain the trust of my peers and display that I’m dedicated and committed to the project.
- First one in and last to leave: This might sound like dated advice, but being available and present allows you to get more work done. And if you’re getting work done, people can rely upon and trust you to help them achieve goals.
- Honesty and transparency: Being honest about your skill set, current progress on the project and knowing the direction of the project is critical for the group's success. Not telling people you need help or are falling behind can’t happen. Rather than floundering, be transparent and help achieve your team’s goals.
- Work hard and be yourself: Noone likes a hardass or a slacker. They also don’t like phonies or facades. So please don’t bring that kind of energy to any project! Be a hard worker who gets the job done, and can share a laugh and smile along the way. Being in a comfortable work environment with genuine, decent people will go a long way towards producing solid work.
It might not seem like a lot but these little tips will help any frontend dev get rolling with a backend. Remember, you’re both a part of a team with the same objectives, lean on each other to get there!
If you have any more questions or need any other examples please reach out and I’d be happy to discuss!