Of course, logging evolves together with the codebase depending on what kind of issues show up. It isn’t simple, but with a little bit of experience, it’s possible to map out a few possible scenarios of production outages and then put in the necessary logging to solve at least that. It’s necessary to document all the critical decisions being taken plus all the information to use in your debugging techniques. Tip #3: Logging must guide you to find the issue, not drown you with useless details. Every new technology added on top of the technology stack increases the time to find a new candidate and has the potential of making new hires more and more expensive. You want to find the new team member as quickly as possible. Turnover is very high in engineering teams, even in companies recognized for having great perks and work-life balance treats. People move on to new roles in other companies, and you have to find new ones. Moreover, remember, added stack complexities make it challenging to find and train new developers for the team. Do not add a completely new language just because you need to write a quick script to move files around.Ī big dependency pile can make your life miserable when libraries become incompatible or when security threats are found either the frameworks themselves or on their transitive dependencies.Do not add a new framework dependency just because you need a StringUtils class.Every new language and framework added to the tech stack has to go over a clearly defined decision-making process with careful consideration of the impacts. However, be careful not to overload on “right tools.” Even drinking water can result in serious health issues if you do it too much. Of course, sometimes, you have to use the right tool for the job. Tip #2: Don’t fall into the tech stack soup trap. When a production issue happens, sometimes your best experts might not be available (e.g., vacation or sickness) and you want whomever you throw at the problem to be able to solve it, and quickly. A developer should be able to go from zero to hero in less than 30 minutes. Likewise, simplify developer setup, so it does not take much time to be up and running, including IDE setup. With the advent of containerization, it has become much easier to provide a way to get an application up and running in no time, with zero configuration and with the added benefit that, since the Docker image is self-contained, you run a much lower risk of running into issues with different versions of the operating system, languages, and frameworks used. Suddenly, you’re spending way more time than necessary simply to get the application up and running. Over time, software evolves to new versions which become incompatible with those instructions, and of course, instructions aren’t usually updated. Installing the application would require many steps that have to be performed manually. How much configuration is required to get the software installed on a new server? In the past, this could sometimes take three days to complete every time there was a new developer on the team. Tip #1: Remove or automate all the configuration needed for the application to run. This list of tips should make your job less painful by teaching from production experience. Moreover, since the majority of developers have no exposure to the environment they keep making some mistakes that will, in turn, cause those issues. There is an array of issues that happen in production environments that cause bugs and outages, generally causing thousands and sometimes millions of dollars in lost revenue to the company. Many developers do not have experience handling an application in production. There are very few training sessions, and it’s common to be called in to provide support for an application about which you know little. Handling these applications in production is a complicated task: Often, there is no documentation available, the application has been written in a legacy technology stack, or both. This article aims at providing a set of curated recommendations so that you can prevent bugs in production, and find issues much quicker. They are, however, also available on-call in case a production outage happens, in which case they work to get the application back on track as quickly as possible. Developers are assigned to the maintenance team and work on patching bugs on the application. Providing production support to an application is one of the most challenging aspects of software development.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |