UPWORD Consulting - Week 4

Time Zones, Payments, Managing Relationships, Bugs, and Deployment

GET INSTANT ACCESS TO ALL RESOURCES

I want to help as many freelancers and agency owners generate high-value WordPress projects consistently and predictably and will keep the training and weekly support 100% free for as long as I can.

The resources in this course are crazy valuable ($15,000 worth of resources - but you won't pay anywhere near that), from all of my proposal templates, to legal agreements, to a fully built out WordPress agency site, these premium resources can help accelerate your growth.

You won't find another course like this that is so affordable and packed with so much valuable content. Unlock the resources today!

Learn More

Everyone welcome to week four in module six, and in this module, we're the final considerations you want to be thinking about when choosing a outsourcing development partner. And really when you're setting up your WordPress agency and whoever you outsource with these are kind of the last final bits that you want to be thinking about.

So in this module we're going to be discussing dealing with time zones, this is a big thing. Took me a while to learn to figure out where there's overlap, how to deal with that,

how you manage your relationships with your offshore developers, sending international payments, how to handle bugs, and a little bit on deployment. I'm gonna walk you through some basics of that but we also have a download that gets kind of the nitty gritty of staging environments, versus production version control all that, and that'll be in that ebook download that's at the bottom of this video. And at some point in the course of running your agency you're likely going to run into issues around all five of these topics, and your agency will run more smoothly if you're prepared in advance for handling these elements of managing your projects. We'll also cover some of these topics in different angles in the upcoming weeks. So let's get started.

So first, dealing with time zones, time zones are obviously a barrier to outsourcing software development, when they're asleep, you're awake when you're asleep, they're awake and things can get hard and be challenging.

So, the first and most important piece of the puzzle is establishing a schedule and channel for communication. If you and your dev team on the same page. If you and your dev team are on the same page for what, hours will be overlapping work hours, basically when you're both awake. Your team's efficiency can increase greatly and even more so when clients ask for updates or questions, you don't have to wait to get an answer, you know exactly when you'll have the answer and it's just a much smoother experience when I first started I didn't do this at all, so it was just chaos and not knowing what times on my developers were actually in and it was just a challenge

so I personally love using Basecamp for this purpose. We've covered that earlier. It's great for communication with clients. Also my development team but it really comes down to what you prefer to use. I also recommend using a project management tool to track the daily progress of development. So you can see a holistic high level view of everything that's going on. As I mentioned before

we use Trello for this purpose. However, there's other tools out there that are easy to use and understand. Just really whatever works well for you, and I know what's great is

if you end up working with Aloa. In the next module. You guys are going to meet David, one of the co founders, we're going to go into everything but they actually have their own project management software platform, so you don't even have to worry about that but I recommend having Basecamp for client communication, it's super easy to use. You can also use Basecamp for your developers, and then use Trello for your developers just kind of whatever works well for you.

It's also a good idea to have your developers log kind of what they worked on daily. We call this a daily stand up, and it's really meant to be a short, concise overview meeting where you can touch base, kind of get an idea of the overall progress of what has been done that day. It's not meant to be like a working session but really just hey here's what's going on. Here's what's happening, and just give you more information so that when you speak to your client, you're way more prepared. And if you're working remotely with your development partners, which I'm going to assume most of you are, you're not really going to have face to face meetings every day.

And so we've adapted the process by providing my team with detailed bulleted lists or edits or other issues that they can respond to point by point, which helps us work around time differences so I really like to on Basecamp or Trello, item by item segmented out just keep it real nice and organized so that way when you do have this timezone issue that you're just prepared for it and you can essentially line out your development team while they're asleep, and then they work during the day while you're asleep. And then at the end of it, you'll get an update on it. One of the greatest challenges I've had is, especially with different timezones is following up on action items with my development team. You want some sort of status update or indicator for each action item that your team can really update as they make progress on so that's what we use Trello for. And then when we are working with Allah, we use our platform. And this just helps us know what's going on with all the moving pieces, and it really kind of solves a lot of the timezone challenges, you just, it takes a little bit more work, you have to prep a little bit more and you have to be a bit more detailed, but it pays dividends in the long run.

So with that, that's kind of the timezone bit let's talk about how to properly manage your relationship with your offshore, or outsource developers. So the next thing I want to discuss is how to manage your relationship with your developers. If you're able to work together well, communicate well, especially with you and your team just clear communication being respectful, on both sides, your projects will come together a lot more smoothly. And your life will just be a bit less stressful, and you might as well enjoy working with who you're working with. You're going to be spending a lot of time together so do what you can to foster that relationship to just make it a better experience for all sides and this will help with stressful situations scaling up and it's just a better experience

so I say the golden rule of communication with your outsourced team member is to be direct, clear, and sincere. Remember, you're not only dealing with timezone differences but

also cross cultural differences, So you want to factor that into your communications. A lot of times, idioms or terms that we find intuitive or habitual might convey a different message to people from other countries, nonverbal cues are also often used to gauge meaning, especially when the culture and language aren't in sync.
So pay attention to your tone of voice when you're speaking, how you say something is as important as what you say.

I like to just be treat humans as humans. This is a human. A human process we're dealing with humans, whether we're outsourcing our clients and just treat everyone with respect and dignity. When you're working with your outsource developers,

don't be shy about giving feedback. If you do, you settle for less. It just does you no good. And if you aren't upfront and transparent about your concerns, your developers cannot read your mind and make things right.

So for instance, if you're asking for a color change in a site element you want to make sure you refer to the HTML color code and rather just using brick red or barbie pink. This way you'll make sure you get the exact color you have in mind and avoid any confusion or really unnecessary back and forth. So this is kind of the shift in your thinking is, don't just say the color. Use the hex code.

So you just want to be thinking about these different details as How can you be as detailed as possible to make sure that you're both on the same page, given the language barrier, the cultural difference. You just have to put a little more work into it. And so when you're working across language and cultural barriers, it never hurts to be more explicit in your feedback.

Never assume your developers understood you make absolutely sure there was no room for interpretation by elaborating and asking follow up questions to gauge your understanding, again back to the color thing brick red can mean, any number of colors but eight D to see one nine leaves no room for interpretation. Right, so these are the details you want to be thinking about.

Another option I personally like to use is a screen capture application like loom, which is free, it's awesome, it's a Chrome extension. So what I do instead of typing all this stuff up. I'll actually turn on loom, and I'll explain as I'm screen sharing, exactly what the issue is so they can see it, and also hear me at the same time. This has cut down one on the amount of time and effort it takes me to communicate. Bugs edits, just anything that's going on, and it cleans up some of that where my development team where English is not their first language, they're able to see it and also hear me explain what I'm seeing and looking at at the same time. This helps tremendously. There's a link down below for loom, this, I highly recommend using it, it's great once you record it records audio can also record your face on there. Once you're done, it automatically uploads it, you just copy and paste the link it's done in a few seconds is really quick, it's I can't recommend it highly enough. This has saved me a ton of time, and back and forth and I don't have to type everything up, I can just explain. And so, while clarity is important. You also want to be sincere. We've all we've all had that one client who keeps telling us we're doing a great job to our faces, during the project right just telling us what we want to hear. And then after lunch. We never really hear from them again and come to find out that they weren't happy with our work and didn't say anything. And so same thing with your developers is they can't improve if they don't know what to improve upon so always be honest, be sincere, be respectful, but make sure you are complimenting them but also constructively criticizing, certain things and obviously this is a tightrope to walk on. Don't be an ass, but also be honest right and you can do that in a way that is appreciated and everyone wants to get better, especially your development team, especially me as an agency owner I want to be better with my team, I want the experience to be better, but I also want to make sure that my standards are met because my development team is a direct representation of me and my agency, and my entire team, so I like to protect that I want to make sure that I'm transparent but also that I'm complimenting when they do great stuff. I make sure that they know it.

So again, you want to be appreciative, especially if they go above and beyond, recognize it. Everyone likes that feels good, everyone likes to be recognized. So when your developers do something you like something good. Tell them positive reinforcement, really helps the working relationship. I know this might seem really basic, but when working remotely with your outsourcing team. This can go a long way in ensuring they're excited and eager to work with you again on future projects.

You also want to be very vocal, when working remotely, the only way your development team knows they're delivering what you want, is if you tell them. So, again, don't be shy about giving praise, but also don't be shy about telling them what's going on or what's missing the mark. Oftentimes, telling a project manager that a particular developer went above and beyond can help them out in their career. These are people as well that are trying to improve and advance their careers and what they're trying to do. So make sure that you're just giving credit to where it's due. But also, make sure you're honest and straightforward with things that may be missing the mark.

Finally, it's important to learn about your team when working with a team from a different country and sometimes different hemisphere, it's important to do what you can to learn about them, right, don't be afraid to ask questions about anything, especially idioms and phrases you might not understand. We're all humans we're in this together, learn about them, create a relationship, it makes it so much more enjoyable when you have that personal relationship and it's not just about fixing bugs edits, breaking things, all that stuff that goes along with this, with these projects.

And also, it's extremely important to manage expectations with your outsourcing partner. Whenever you begin working with a new team, whether they're remote or not. It's important to set and manage expectations early on in the relationship. If expectations are properly managed both you and your development team will have a smoother experience. Really what it comes down to is you exist in this world this relationship where you are the client, but you're also the, the vendor the agency.

And so remember that you are a client to your outsourcing team, make sure you treat him the way that you want your clients to treat you. That's really what it comes down to. And the more that you do that, the better quality work you're going to get the better the experience is going to be. And again it comes back to treat humans, as humans, the way you want to be treated and treat your outsourcing partners, the way you want your clients to treat you. And when you do that, everything just becomes much

Alright so now let's talk about sending international payments, right, this is another element of running your agency, I want to quickly go over with you is really sending out these payments, right, paying your outsourcing team on time is key to keeping them happy, same with you you want your clients to pay on time.

Pay your outsourced developers, everyone that works with you the same way that you want your clients to pay you, do not wait on anything pay them right away immediately. Whatever your agreed upon payment structure is just make sure you're paying people, the way that you want to be paid. Right. And so paying your team without having a ton of international fees is key to keeping everyone happy

so there's a lot of different options out there but I'm just going to talk about a couple. One is what I use, oftentimes is Payoneer and you're going to find too that they might already have their own preferred international payment provider so they'll just kind of tell you, but I'll just run through a few of these and so one Payoneer I've used this quite a bit I still use it. It's a payment platform that allows you to pay in several different currencies in as little as two hours. It's one of the fastest payment solutions out there especially for international payments. They charge a flat $3 fee on transfers, plus a margin on the mid market currency exchange rate, it's a great option. It's a great option for transferring smaller funds, but for larger amounts the rates can get quite high. So you just want to kind of figure that out with your partner.

The next one is. WU edge and this is a payment platform by Western Union, or Wu edge, how are they pronounce it. You don't have to pay an upfront fee for transfers in most countries, but they add a margin on the mid market currency exchange rate. One of the downsides of using this platform is that you have to go through quite a lengthy application process to use their service. I don't use this one for that reason.

The next one is transfer wise use this as well. It's another payment platform that allows you to pay different options, countries, all that for paying India you could choose anything between ACH, credit card, Apple Pay or wire transfer. The big benefit of TransferWise is that they don't add a margin on the mid market currency exchange rate, making a very attractive option with lower fees,

zoom, zoom is a payment platform by PayPal that advertises quick transfers, Sometimes as fast as minutes. However, their rates and fees tend to be much higher than those of TransferWise, but it allows your developers to be paid in cash if that's a request of theirs.

Next is wire transfers wire transfers are typically through your bank. And these typically have a higher fee, I've used these before. It's a bit of a hassle but this is really only when a partner specifically asked for and they don't mind the fees.

Nothing is you can do credit cards, and ACTH transfers with credit cards the fees are going to be really high. And they'll be limited in how much you can send per transaction. Really, you're going to want to use one of these other platforms. Same thing with ACH, it just takes a long time for ACH transfer so I highly recommend using one of these platforms.

And then, if you're working with up work or Aloa they'll obviously handle all the payments for you so you don't even have to worry about it. So that's payment, and how you handle payment international payments specifically

So now let's talk about how to handle bugs. Right. Bugs happen bugs happen even after you finish they've approved everything and you haven't touched anything. This is just the nature of the beast, bugs are a common thing. And so, welcome to software development, a world where hiccups are expected, and bugs crawl around writing code is no easy task as you know this, you're gonna face bugs. It's just the nature of the beast, and really a bug is simply an error in software that produces an unexpected or undesired result. You're going to have bugs everywhere, kind of all the time. It's just a never ending game of Whack a Mole. Whether you're working onshore in house, domestic any developer bugs will always happen. And so it's just a fact of life. You see this even with Google, YouTube, Facebook, it. This is just the nature of what is important though is how you handle bugs. When bugs are discovered in your testing, or your developers tell you that something is taking a bit longer because of bugs,that's okay.

The most important step here is to make sure that anytime a bug is found, you recognize it, and you work on it. That's really it is making sure that it's addressed you find it you deal with it and you move on. For developers, they'll log bugs instinctively for you, as, as you test the product before you send it to your client and find new bugs, because your client will find bugs as well that you missed again nature of the beast, you need to address them, and let your developers know right away.

Sometimes, if you just simply tell the dev, there's a bug, that'll do more bad than good and can waste them, their time trying to find and reproduce the bug. Whenever you find a bug, you want to log it and provide as much detail as possible, because what it comes down to is the developers have to be able to recreate it, they have to experience the bugs so they can track down the cause. So let's walk through a basic structure of how we log bugs.

So step one is, explain what the bug is by providing the expected behavior, and where the bug, essentially where it deviates from this behavior. Don't be afraid to be too detailed. I actually try to be. Be as detailed as possible, spending a few extra minutes explaining the details will save you back and forth and a lot more time. Screenshots loom screen recordings are also another great way, sometimes I'll just do that I'll just open up loom and click through and explain in real time what I was doing so they can see the bug, even if they're not able to reproduce they can see it on my end.

Number two is you want to write down the steps to reproduce, if you're recording a video and you can do it there as well then you can do it visually but sometimes you just want to write it down. This is the most important factor in bug fixing, is being able to reproduce it, developers have to reproduce the bug and we can't, they can't fix it. And it really becomes almost impossible to find the root cause if they can't recreate it, so be specific in retracing the steps to replicate the bug so a lot of this time. A lot of times you want to know the browser browser version. What you did beforehand what you clicked on just all the things that seem innocuous or not important, are actually very important, because sometimes there's just random things that happened with the server that it could just be a glitch and not necessarily a bug. So you want to write down or visually show how you reproduce that.

And then, third, and finally, you want to prioritize the bugs. So, really, during this, during the progress of your project. You want to make sure that if it's a small UI fix or just something more cosmetic. You want to put that kind of on the backburner keep it there and start with your high priority bugs first stuff that crashes, anything that the client would obviously notice right away. So, you might be tempted to categorize everything as a highest priority but don't do this. It doesn't help. And then really developers just start to work on whatever you say is high priority where it can wait. So you want to focus on the most important bugs first and then work your way down, cosmetic stuff and kind of more edits if you will.

So, the end of the day, the most important bit about bug fixing, is to make sure to follow up on the bugs, make sure your development team is updating the status of the bugs regularly as they work on them. You should be also be reviewing bugs, as they are marked as fixed so you can ensure that they were completely taken care of. I've made this mistake before I reported bugs, and then the developer said it was fixed I sent it right to the client, the client is surprised that it looks the same. It's still broken and wondering why send it to him. This is part of the process. Take your time, whether it's you or a team member, anytime a developer says a bug is fixed, you or someone on your team needs to go back and verify it, to make sure that it's truly fixed it could be a cache issue or a lot of different things, or they might have missed it in a way and it still might be a bug. You want to ensure that this is actually fixed before you update your client. That way they don't get frustrated or wasting their time looking at something that's still broken.

And again, the best way to follow up on bugs is to maintain a bug tracker that both you and your dev team have access to set it up so that it sends you and your development team notifications whenever anything is updated, and having the ability to assign bugs to a specific team member is a big plus as well especially if you can add date and time that's why we use Trello but also in Aloa’s platform this works really well.

And last but not least, is kind of deployment and so this can kind of get into the weeds, and there's a whole ebook download that's down below. But what I want to cover here is kind of the top level stuff so whenever you start developing.

I don't have my developers develop on their own server, I have them work, either locally, they can't work on their own, but I make sure that I set up a sub domain on my agency so it'll be like client name dot Taggart Media Group com, I have the developers work directly on my server because you need to make sure that you own that code. It is in your possession, and that you have control of it. And that is important to make sure that you basically have access to your own code, code. If this is on your development teams code and you don't have access to their server, God forbid something crazy happens and you don't have access to it. You are in a world of trouble so always make sure that you set up your development server on your server, and that your developers are working on your server that you can control. This will save you a lot of headaches and pain down the road.

And then the next part of that is whether you should set, set up a staging environment versus a production environment using version control. These are all things I do recommend. I don't use it in every single project for the more sophisticated higher end projects, especially if there's multiple developers involved. I highly recommend setting that up.

We're not going to go through it on this module, it's super technical but download the eBook below, and it's going to walk you through if you're curious on how we and also Aloa set this up for developers, it's a great structure, but it's a little bit technical heavy so if you don't have a lot of experience, I recommend still going through that and you can still communicate that to your outsource team.

So, that is. So, this is how you vet. Hire and work with an outsource partner. Coming up on the next module, I'm going to be bringing in David we're going to be doing a live video, he's going to walk you through their platform what they do all the great stuff with their partner agencies and how you can really grow and scale your agency in terms of manpower, with them. I'm really looking forward to that one. And so I'll see you on the next module.