stitcherLogoCreated with Sketch.
Get Premium Download App
Listen
Discover
Premium
Shows
Likes
Merch

Listen Now

Discover Premium Shows Likes

Stack Bytes

2 Episodes

12 minutes | Mar 19, 2020
Decrease Complexity Increase Productivity with Systems and Frameworks
In this episode, we are going to talk about strategies you can implement to increase productivity and decrease complexity using systems and frameworks. Welcome to Stack Bytes, your source for industry news, insights, and strategies to level up your software engineering and leadership skills. These strategies and approaches will give you a fast track into building better teams, becoming a better leader, and leveraging emergent technology to impact your business byte by byte. Let's get at it. Welcome to the Stack Bytes podcast. This episode we're going to talk about decreasing complexity to increase productivity with systems and frameworks. It's really important that as you're building your teams that you understand that the sooner you have systems and frameworks in place, the easier it will be for them to function and to work at a higher level. You want to have these systems and frameworks to guide them as they go through their day-to-day development and to give them clarity on how to work and function within a group. Automate Tasks One of the first things you really want to automate is the simple and the complex tasks. So, when you're developing and you have, let's say a Git pull request, a way to automate something simple would be during the push process to hook into the Git Hooks and to actually run unit tests, right? In doing that, you're able to simplify the process of unit testing by forcing unit tests to always run when they try to make any change, whether it's pushing code or trying to do a pull request. You want to make sure that that's completely out of their mind and be able to just run fluently. As part of your culture, you want to make sure that your team is unit testing and has that unit testing running in watch mode while they're developing, but realistically, sometimes those simple things get in the way. And that can easily boost productivity by decreasing the stress of having a pull request or a push that goes up where code wasn't checked or unit tests weren't run and things are breaking. Then you're wasting multiple developers time, and we don't want to do that. We want to increase productivity. A example of a complex task might be deployment. There are so many different ways to deploy code now. There are so many services. GitHub has a lot of services that you can look into. AWS has a lot of services that you can hook into. Let's increase our productivity by pushing off a lot of the tasks into an automated sequence, right? That includes the unit testing, the end to end testing, the integration tests. You should be able to do a pull request into a staging environment or really this should work on any environment. Run your tests either in a sync or sequential and be able to test out the code works. Then run through your unit test, your integration tests, and any other tests that you need to run and do that all in parallel while simultaneously alerting anyone that needs to know about how those changes will affect them. So, if it's a developer and they're pushing into their own isolated sandbox, if they push code out, the unit tests fail, some end to end test fail, they should be alerted right away. That shouldn't allow them to then try to do a pull request into a master or into another staging environment. You want to take those complex tasks and just automate it, so the moment they push their code, they get an email notifying them whether or not it's succeeded or failed and some action steps to then take after that, right? It's very important. You don't want to just tell them something went wrong. You want to give them action steps, right? Having those systems and frameworks in place will boost productivity immensely. Framework For Meetings A real, big time saver is meeting agendas. The second thing I want to talk about is how you can boost productivity by simply having a great framework for meetings. Your meetings should be at best 20 to maybe 40 minutes, right? We don't want to go into an hour, hour-and-a-half-long meetings because you have to remember, just as human beings, our attention span start to go down, right? After 40 minutes, our attention span starts to go down dramatically. So, the longer your meetings are, the less likely and the less productive your developers will be, right? People start forgetting things. People get annoyed. People just in general stop paying attention because it just takes too long. And the way you do that is have a framework in place where any time a meeting is set that you have agendas. Attach an agenda to each meeting. If the meeting does not have an agenda, anybody on the team can then push back the meeting because if you didn't take as the meeting organizer the time to write a simple agenda, then the question is how long are we really going to spend in this meeting, and how prepared are you for this particular meeting? Have an agenda and also only invite the bare minimum people that are required for this meeting to be successful. Having a framework that simplifies the meeting structure will definitely take most of the day and give it back to your developers because that's what… Meetings end up eating up so much time. So, let's stay on topic focused and determined to get our meetings down to the bare minimum. It's going to help your team tremendously. Just focus on what needs to be done, and if it's not, give everyone the authority to push that meeting back because then it's going to make it a team-wide Understanding that no one should be wasting anyone's time because all of our times are equally important. It's important that you have a system and various frameworks set up to handle your daily communications, and make sure that you're not bottle-necking all of that information down into one central location where one person needs to then disperse that information throughout the whole team. So, a good example would be your production errors. Code is live and in production, and there are various errors that are happening. Who gets called first and subsequently who gets called next, and what's considered a high, medium or low severity? Something that is that important should be understood by the whole team. It shouldn't be a mystery to who should be handling what errors and what should be done when it happens. There's one of our clients who had a massive production error, and it's in their peak season. They have a eCommerce website, and their website went down. I was contacted, and the moment I was contacted I knew, “All right, here's who needs to jump on this call. Let's figure this out.” Within 10 minutes we were able to get the right people on the projects and checking out the various error points and identifying whether or not their point of failure was the reason why the site went down. From the moment the call happened, within 30 minutes we identified what the issue was. Between deploying and testing, it gave us another 15, 20 minutes. Then we let them know that the site was up and running, and we would monitor the site for the next two hours and make sure things were running. But there was no question about what needed to be done, who needed to be called, and what systems did we need to check. The whole entire framework was already set up. Yes, I got the phone call and boom, from there, system gets into place. Everybody who needs to be on this get to work on your sections, and let's find this problem, and let's solve it right away. That's the power of having a framework and a system in place for when something goes wrong. Now, it could also be something for bugs and feature requests. Especially when you have multiple units, whenever a new bug comes in, who needs to work on it? Is this something that needs to be escalated right away? Your team should be able to… And anyone on a team. That includes your product team, your C-suites, if anyone has a input that needs to be a system in place to move that data along to the right people. If a feature request comes in, you need a developer as well as maybe a designer product lead to sit and talk about it. What's the objectives? Does it meet your organization's KPIs? Is this something that's doable, and if it is doable, what kind of resources will it require? Now that could be the CTO, it could be you the lead developer, or it could be one of your top software engineers and architects, right? Everything doesn't have to flow through the CTOs and leads. Some of the daily changes and productivity enhancements can happen at a lower level, and if it happens earlier on in a process, it's less needs to be escalated and more time that can be focused in solving your problems. Daily communication is very important, and it's something that with the right frameworks in place, the right systems in place, you can boost productivity in your team immensely. Our goal is to boost productivity so that our developers can function the way they need to function. As leads, as CTOs and top level software engineers, you are here to serve the team, right? You're building leadership, you are leadership, and it's all about helping the team grow and get to where they need to get to. If that means setting up a system, teaching them how to function within a system, or altering a system to make it work with your team, that's what you're here for. That's our jobs is to help the team grow and get things done. The Recap To recap, we talked about automating the simple and the complex tasks. Doing that will allow your team to focus more on making decisions on the most important tasks. Take all the things that you can automate and get it out of the way. Let the automations take care of all the headaches, all of the error finding, all of the testing, and let the automation be your heavy lifting because it's easier to put an EC2 instance up or to run some kind of lambda function than it is to constantly have your developers do something over and over and over again. Two, it's having meeting agendas, making sure that there's some type of framework in place to make sure that meetings are effective and are streamlined. Super duper important. And then of course we want to create defined systems for dealing with production errors, new bugs and feature requests, and just daily communicatio
8 minutes | Jan 7, 2020
How To Get The Most Out Of Your Developers Day
As a Lead developer, it's important that you help your developers be as productive as possible. In this episode, you will learn about 3 Strategies you can use right now to make your developers' day more productive. Transcript Welcome to Stack Bites your source for industry news, insights and strategies to level up your software engineering and leadership skills. These strategies and approaches will give you a fast track into building better teams, becoming a better leader, and leveraging emerging technology to impact your business bite by bite. Let's ride. Welcome to episode one of Stack Bites, how to get the most out of your developer's day. I'm going to cover three ways you can make your developers more productive right now. I'm really excited to share these tips with you, so let's get started. Let's talk about how we can make the most out of your developer's day. This is going to be three ways that you could make your developer's day the most productive. It's important that you help them schedule their day out or give them some guidance and feedback and some working schedules that they can get used to, be comfortable with, and allow them to be as productive as possible, because that's the end goal, is to allow them to be productive, not work harder, but be productive when they are working. The first thing, and something that is very important, is to batch and cluster meetings. You want to make sure whether it's in the morning or in the afternoons that you batch and cluster your meetings. If you have a meeting at 1:00 at 3:00 at 5:00 at 2:00 and you just keep randomly scattering meetings, the developers aren't going to be able to focus. They're not going to get their work done. And if they get into a rhythm and they're moving, they're shaking, and then you stop them for a meeting, they have to wind themselves back up again, get into a rhythm, get into a rhythm, and then boom, you cut them off for another meeting. It's not productive. So the best thing we want to do is to batch the meetings so that they do have a clear understanding that from 9:00 AM to 11:00 AM are all their meetings, maybe 11:30. Then they can have the rest of the day to focus on the tasks at hand. It's very important that they can focus and have blocks of time to develop. Number two is to make sure that they have a priority list. You want to make sure that they have a list of what they should be working on next and it's clearly defined what's the highest priority and whats the lowest priority. Throughout the day, they might jump from a high priority to a low priority just to get into the swing of things and having a lot of success can help you solve bigger problems, so it's okay for them to be able to say, I'm working on a high priority item, but it's complicated, it's taking a long time, let me just jump on this low priority item real quick and get that done. That can give them a confidence boost and the energy they need to continue working on the high priority item and really get it done. Knowing though what to work on and any questions that they have, any resources that they need, having that all in one list just allows them to continue to work. Continue to focus. Before we go over the last item, remember we covered the importance of clustering meetings. We want our developers to have productive days, and part of that is making sure that they can work continuously. So we cluster all the meetings in one block of time. And have all of your questions answered in one place. All resources, all descriptions, all tasks, all in one place. It keeps them rolling and flowing and getting things done. Now the next item I think is so important that it gets overlooked a lot, but it's one that will make the other two so much more powerful and that is relaxation. You have to make sure your developers have the chance to relax and breathe. We're being productive. We don't want them to work hard. We want them to work smart. So that means getting up, stretching. It could be yoga classes throughout the day. It can be having a gym in the facility. Or it could just be going out for a walk. You want to encourage your developers to give their brain some time off. Being productive does not mean working hard. It does not mean working at every point of the day. It doesn't mean working nine or 10 hours straight, no breaks, eating at your desk. No. Being productive is about completing your tasks and doing your work in a effective manner for the time that you're working. Encourage it. You must encourage it as a lead, as a CTO. You must encourage that your developers take some time to walk stretch your legs, get comfortable. We are at a desk for a long majority of the day. If you can, get them standing desks so they can switch between standing and sitting and being comfortable and going out. It's important that they relax because once your brain relaxes, if you ever watch somebody who is tense all the time, they're just like… Their body reacts to that. Your body stays tense. But once you relax and you just breathe, your flow, your energy, your critical thinking skills are amplified when your body can just relax. A lot of these more productive, not just big, but productive companies, they bring in people to help their developers. They bring in masseuse to make sure that they have massages throughout the day just to relax their body and get them in a calm and more relaxed state. They bring in yoga instructors, which I've done that a lot, have the yoga instructors. Although I'm a little tight, my muscles need a little more stretching. Having that moment where you can take 40 minutes and just go through some breathing exercises and have just some stretching. They're still going to be thinking. Your mind is still going to be racing. But we're going to slow it down and your critical thinking is going to go up and in that relaxed state, your developers are going to be able to be a lot more effective, which is going to amplify their ability to focus and get their questions answered during meetings. So the meetings are more productive. It's going to allow them to be able to focus on whatever high priority, or low priority, tasks they are currently working on, and get the most out of that particular time. Relaxation is very key and it's important that, once again, that you push it as their lead. As the senior developers or even as a CTO, you have to push the importance of relaxing. It amplifies the other ones. I have so much more information for you to help you support your developers, and the best way to do that is to join our weekly newsletter. In that newsletter, I'm going to give you insights and strategies to help promote better health for your developers, productivity, and industry insights on all the newest trends, techniques, and strategies to help your team stay on top of the evolving industry that we're in. The best way to do that is to check out the newsletter in the description below. Thanks for listening to this episode of Stack Bites. Subscribe now on your favorite podcasting platform to get instant access to our weekly episodes. Looking for even more content and a community of like-minded individuals? Check out edithsonabelard.com/community. That's edithsonabelard.com/community. More Resources <ul> <li> <a href="https://www.edithsonabelard.com/empowering-developers-to-make-better-decisions/"> Empowering Developers to Make Better Decisions </a> </li> <li> <a href="https://www.edithsonabelard.com/5-tips-for-refactoring-code/"> 5 Tips for Refactoring Code </a> </li> <li> <a href="https://www.edithsonabelard.com/what-you-need-to-know-about-unit-testing/"> What You Need to Know About Unit Testing </a> </li> </ul>
COMPANY
About us Careers Stitcher Blog Help
AFFILIATES
Partner Portal Advertisers Podswag Stitcher Studios
Privacy Policy Terms of Service Your Privacy Choices
© Stitcher 2023