<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Jessica Veit</title>
    <description>The latest articles on Forem by Jessica Veit (@jessica_veit).</description>
    <link>https://forem.com/jessica_veit</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F164892%2F7dbb4f99-c1d7-4425-9697-2b4eb2baaf2d.jpg</url>
      <title>Forem: Jessica Veit</title>
      <link>https://forem.com/jessica_veit</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/jessica_veit"/>
    <language>en</language>
    <item>
      <title>Testing IaC Scripts 🧪</title>
      <dc:creator>Jessica Veit</dc:creator>
      <pubDate>Tue, 06 Jun 2023 07:18:52 +0000</pubDate>
      <link>https://forem.com/jessica_veit/testing-iac-scripts-41cl</link>
      <guid>https://forem.com/jessica_veit/testing-iac-scripts-41cl</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Lack of testing can introduce defects in IaC scripts, which in turn can have serious conse-quences. A synthesis of IaC testing practices can be helpful for practitioners to mitigate defects in IaC scripts. (&lt;a href="https://doi.org/10.1145/3416504.3424334" rel="noopener noreferrer"&gt;Hasan et al., 2020&lt;/a&gt;)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Although IaC is more and more adopted by various companies in their operation process and integrated in many cloud providers using APIs, the quality assurance and maintenance of the scripts created still has to undergo further research and development to achieve a certain level of quality in form of system security and resilience. Because of the undeniable importance of this topic, IaC providers like Terraform and Pulumi, external companies like Snyk and Gruntwork as well as cloud providers like Azure and AWS are currently working on improving the development conditions with IaC.&lt;/p&gt;

&lt;h2&gt;
  
  
  Testing Guidelines Provided by IaC Providers
&lt;/h2&gt;

&lt;p&gt;Starting with the most well-known IaC provider HashiCorp, Terraform provides documentations and guidelines describing how to implemented unit and snapshot  testing capabilities in their developer documentation. Other than that, there is an experimental feature related to module testing and community content for integration tests such as shown by the &lt;a href="https://github.com/ansgarm/talk-cdkday-2021/tree/master/test" rel="noopener noreferrer"&gt;Github User Ansgarm&lt;/a&gt;. As for Pulumi, documentations for unit, property and integration tests are available. &lt;/p&gt;

&lt;h3&gt;
  
  
  Testing in Terraform 🌱
&lt;/h3&gt;

&lt;p&gt;Testing in Terraform heavily depends on the language that was used to write the Terraform code itself. When using HCL for example the testing framework to favour is Jest by Facebook, which provides testing capabilities to JavaScript and TypeScript, yet is still compatible with Terraform. It was included in version 0.6 for snapshot tests and assertions. &lt;/p&gt;

&lt;p&gt;An important factor is the existence of the so-called &lt;em&gt;cdktf (Cloud Development Kit for Terraform)&lt;/em&gt; package for the testing framework at use. This package provides an interface for interacting with the Terraform framework itself. When writing common unit test assertion statements in TypeScript a so-called &lt;em&gt;synthScope&lt;/em&gt; is used to test part of the application. It returns a JSON string representing the synthesized HCL-JSON on which assertions can then by applied. This way important assertions such as &lt;em&gt;toHa-veResource&lt;/em&gt; (whether a resource of a certain type exists) and &lt;em&gt;toHaveResourceWithProperties&lt;/em&gt; can applied. &lt;/p&gt;

&lt;h3&gt;
  
  
  Testing in Pulumi 🧊
&lt;/h3&gt;

&lt;p&gt;To get a broader view on common or experimental testing techniques for IaC tools in general, Pulumi will also be considered in this series. It provides the same base functionality as Terraform, however in addition to unit and integration tests, Pulumi provides the concept of so-called &lt;em&gt;Property Test&lt;/em&gt;, which are used to assert properties on a resource-level while infrastructure is being deployed. The key difference between the three testing techniques documented are illustrated below. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs0rqwpsc4udmhnzf7ocl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs0rqwpsc4udmhnzf7ocl.png" alt="Image description" width="606" height="314"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Key differences of testing styles documented by Pulumi&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;With each of the techniques a specific point in time of the infrastructure can be tested. The unit tests are mostly mock-based implemented, meaning the engine normally used for the deployment of Pulumi is replaced by a mock, thus removing the need for out-of-process calls and increasing isolation. Property testing can be seen as a form of policy-as-code to ensure that the deployed infrastructure complies with desired policies. Finally, the integration tests are labelled as deploy-check-destroy tests by Pulumi as they deploy cloud resources and validate their actual behavior.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next Steps 🪜
&lt;/h2&gt;

&lt;p&gt;After discussing the testing approaches suggested by the two IaC providers Terraform and Pulumi, in the next post we will take a look at the dedicated IaC testing providers takes on this topic. Here we will have a look at &lt;a href="https://gruntwork.io/" rel="noopener noreferrer"&gt;Gruntwork&lt;/a&gt; and &lt;a href="https://snyk.io/" rel="noopener noreferrer"&gt;Snyk&lt;/a&gt;. So, stay tuned if you are interessted! &lt;/p&gt;

&lt;p&gt;Cover Image by &lt;a href="https://www.pexels.com/photo/two-test-tubes-954585/" rel="noopener noreferrer"&gt;Martin Lopez&lt;/a&gt;! 🥳&lt;/p&gt;

</description>
      <category>infrastructureascode</category>
      <category>qa</category>
      <category>learning</category>
    </item>
    <item>
      <title>What do you Like most about dev.to?</title>
      <dc:creator>Jessica Veit</dc:creator>
      <pubDate>Thu, 01 Jun 2023 06:15:12 +0000</pubDate>
      <link>https://forem.com/jessica_veit/what-do-you-like-most-about-devto-1mek</link>
      <guid>https://forem.com/jessica_veit/what-do-you-like-most-about-devto-1mek</guid>
      <description>&lt;p&gt;&lt;em&gt;To be honest, I came here by pure luck - an English assignment in my bachelor program - but I stayed because of the community!&lt;/em&gt; 😇 &lt;/p&gt;

&lt;p&gt;I feel like it is a safe space were nerds can be nerds, developers can be developers and anyone can be anyone they want to be. It is just a nice corner of the internet where all sorts of techincal and non-technical matters are discussed in a professional way.&lt;/p&gt;




&lt;p&gt;So, what do you like most about &lt;a href="//dev.to"&gt;dev.to&lt;/a&gt;? How did you stumble upon it and what was your reason to stay? 🤗&lt;/p&gt;

&lt;p&gt;Image by &lt;a href="https://www.pexels.com/photo/data-codes-through-eyeglasses-577585/" rel="noopener noreferrer"&gt;Kevin Ku&lt;/a&gt;! 🥳&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>writing</category>
      <category>blog</category>
    </item>
    <item>
      <title>Terraform Basics 🌱</title>
      <dc:creator>Jessica Veit</dc:creator>
      <pubDate>Tue, 30 May 2023 06:30:07 +0000</pubDate>
      <link>https://forem.com/jessica_veit/terraform-basics-1bfl</link>
      <guid>https://forem.com/jessica_veit/terraform-basics-1bfl</guid>
      <description>&lt;p&gt;&lt;a href="https://www.terraform.io/" rel="noopener noreferrer"&gt;Terraform by HashiCorp&lt;/a&gt; is the current industry standard tool regarding automated infrastructure provisioning. With Terraform provisioning of resources via machine-readable files is made possible in a cloud-agnostic fashion as well as on-premise. It does this using the so-called &lt;em&gt;Terraform Providers&lt;/em&gt;, which are pieces of software, often implemented by the community, as illustrated in the figure below. Which cloud providers are specifically supported can be seen in the &lt;a href="https://registry.terraform.io/" rel="noopener noreferrer"&gt;Terraform Registry&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fybk9d3u1p9p23aexrxgb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fybk9d3u1p9p23aexrxgb.png" alt="Image description" width="645" height="145"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Terraform to cloud provider connection (&lt;a href="https://www.terraform.io/" rel="noopener noreferrer"&gt;HashiCorp&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Language Support 💻
&lt;/h2&gt;

&lt;p&gt;Terraform supports multiple languages for provisioning infrastructure. First and foremost is the &lt;em&gt;HCL&lt;/em&gt;, the &lt;em&gt;HashiCorp Configuration Language&lt;/em&gt;, which was specifically designed to be used for Terraform. Second, configuration via Json or CRDS (Custom Resource Definition used for Kubernetes) are possible too. Yet while those are all languages rather common in the operations sector (apart from Json), Terraform also supports Typescript, Python, Java, C# and Go via its CDK (Cloud Development Kit), which are more common in software engineering. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftoqq9e4s6ccrcirx8itk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftoqq9e4s6ccrcirx8itk.png" alt="Image description" width="576" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Support languages of Terraform (&lt;a href="https://www.terraform.io/" rel="noopener noreferrer"&gt;HashiCorp&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The greatest difference in using a GPL for Terraform files is that options like the HCL are declarative approaches, meaning the goal of the code is described within it, whereas languages such as Java or C# require an imperative defining of what should be done to achieve the desired state (&lt;a href="https://doi.org/10.48550/arXiv.2205.10676" rel="noopener noreferrer"&gt;Howard, 2022&lt;/a&gt;). &lt;/p&gt;

&lt;p&gt;The choice of what language to use heavily depends on multiple factors, such as readability of the code as a declarative style generally is associated with being more human-readable, the performance and ease of deployment as code must go through additional steps before being executed, and the general experience and knowledge of the personnel in charge of the implementation. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The relevance of this section for our on going quest of understanding QA for IaC&lt;/strong&gt; is the possible usage of GPLs when working with Terraform. This implies that there are plenty well-known and well-incorporated testing tools available. Yet the possible level of quality assurance not just depends on the language used. &lt;/p&gt;




&lt;h2&gt;
  
  
  The Terraform Workflow 🌊
&lt;/h2&gt;

&lt;p&gt;“Terraform's purpose is to provide one workflow to provision any infrastructure” (&lt;a href="https://www.terraform.io/" rel="noopener noreferrer"&gt;HashiCorp&lt;/a&gt;) and it does this by executing a three step workflow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Write&lt;/strong&gt; – Author infrastructure code&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan&lt;/strong&gt; – Preview changes that will be done before applying&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apply&lt;/strong&gt; – Provision reproducible infrastructure&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Especially the &lt;em&gt;plan&lt;/em&gt; phase is relevant from an QA point of view. With this, a feedback loop for the developer is created with which syntax errors can be found and fixed at the earliest point of development possible. Again, just like a Docker image, the plan created in this phase is only a template of changes applicable to the target system. This may also give a possible angle of attack to perform tests on the implemented changes. &lt;/p&gt;

&lt;p&gt;Important to add here is that &lt;em&gt;plan&lt;/em&gt; does not necessary correspond to the artifacts generated in apply by default. They are separated operations meaning that in apply changes may be made that were not shown in the result of plan as the generated plan is only speculative. However, according to the Terraform documentation: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“You can use the optional -out=FILE option to save the generated plan to a file on disk, which you can later execute by passing the file to terraform apply as an extra argument. This two-step workflow is primarily intended for when running Terraform in automation” &lt;br&gt;
(&lt;a href="https://www.terraform.io/" rel="noopener noreferrer"&gt;HashiCorp&lt;/a&gt;)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This way additional steps such as testing and general quality assurance are done at the actually used artifact.&lt;/p&gt;




&lt;h2&gt;
  
  
  Next Steps 🪜
&lt;/h2&gt;

&lt;p&gt;In the previous posws we already looked at how IaC came to be and why we need it in our modern world. Now, being familiar with the tool Terraform and its history, in the next post we will dive into testing Terraform! &lt;/p&gt;

&lt;p&gt;Cover image by &lt;a href="https://www.pexels.com/photo/back-view-of-astronauts-holding-hands-8474487/" rel="noopener noreferrer"&gt;RDNE Stock project&lt;/a&gt;! 🥳&lt;/p&gt;

</description>
      <category>terraform</category>
      <category>infrastructureascode</category>
      <category>tooling</category>
      <category>hashicorp</category>
    </item>
    <item>
      <title>Navigating a Code Basis as a Newbie (and beyond)</title>
      <dc:creator>Jessica Veit</dc:creator>
      <pubDate>Thu, 25 May 2023 09:57:14 +0000</pubDate>
      <link>https://forem.com/jessica_veit/navigating-a-new-code-basis-as-a-newbie-1aab</link>
      <guid>https://forem.com/jessica_veit/navigating-a-new-code-basis-as-a-newbie-1aab</guid>
      <description>&lt;p&gt;A new pupil of mine does a great job. Their current task is to get to know the code basis and implement some smaller features into it in order to do so. What I like about them - They asked me whenever something is unclear. And they asked very good questions so far! However, most of them are questions for which they could find the answers themselves would they only invest 10 more minutes, and here is how ... &lt;/p&gt;

&lt;h2&gt;
  
  
  The Curse of Impatience ❤️‍🔥
&lt;/h2&gt;

&lt;p&gt;The pupil is full of drive and energy, and thus wants to feel this sense of reward whenever one completes a task. Because of this, they grow impatience pretty fast. And this is nothing new to me, in fact I was just like them when I first started working as a developer. &lt;/p&gt;

&lt;p&gt;I remember how my mentor grew progressively tired of me asking questions that I could have easily answered by myself, not because they weren't a good mentor, yet they also had their fair share of work to do. Back then I didn't really see the big deal and now that I am in his shoes, there isn't a big deal. The problem is the context switching my mentor and now I have to go through that sucks a lot of energy from you. &lt;/p&gt;

&lt;h2&gt;
  
  
  Breaking the Habit ⛏️
&lt;/h2&gt;

&lt;p&gt;So, investing 10 more minutes sounds reasonable and managable for someone eager to deploy their next feature tomorrow. Yet how should these 10 minutes be spend? As I told you before I have been just like them and nowadays are these the things I do in order before going forth and asking a collogue about it: &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Zero. Take a Step Back:&lt;/strong&gt; Get up from your desk, look out of the window for a minute, get a coffee - do something to break that tense feeling in your mind. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Planning Before Coding:&lt;/strong&gt; This is something I always do by now. When I have to implement a more complex feature requiring changes in multiple classes a add comments in each of them outlining what has to be done here and there. Then I start creating a bunch of automated tests before a start the acutal implementation. &lt;/p&gt;

&lt;p&gt;This procedure helps me to get an overview of what I have to implement and where the code has to go. A big benefit I see with this is that I can estimate wheter what I had in my mind would theoretically work or not. Therefore, giving me a good head start for the actual implemetation. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Git Blame:&lt;/strong&gt; And no, I don't want someone to screenshot some piece of code, sending it to someone with a message reading: "What did you think when writing this?". In the teams I worked in so far it was a custom to add the ticket number at the beginning of each commit message. With this valuable info one can just open up their ticketing system and search for this specific ticket. If you know what the requirements back then where you will probaly understand why the code is the way it is. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Look at the Tests Implemeted:&lt;/strong&gt; Another way to understand what a piece of code was meant to be doing is to take a look at the implemented tests. Given there are any, they usually give a good overview of what real-life cases the code was intented to be used in. Looking at how the code is used and with which data the calls are supposed to be working should give you a good graps of the domain logic abstracted. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Tip:&lt;/em&gt; In some intances, as I looked at the ticket related to this code beforehand, I even add some tests myself when I see them as fitting. This way I can check wheter I understood the requirements correctly and we even get more tests for the code which is always a good thing. &lt;/p&gt;

&lt;p&gt;When I do it, I mention it in our daily meeting and create a separte merge request for it. In my team such work is gladly seen, yet check in with your colluges before doing so. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Use Break Points:&lt;/strong&gt; Using the tools provided to us by your IDEs of choice is another option you should consider when stuck in a new code basis. With them you can see which snippets are executed at which point in time and what parameters are thrown all about. In this sense, any kind of debugging you are using in your daily life might also be used in a discovering sense. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Break it:&lt;/strong&gt; Moving a little further away from this conservative approaches - I would claim that we all work with some kind of source control. If I don't seem to unravel the mysteries surrounding the code I need to work with, I simply start removing some of it. That way you can see what test may fail now, which things behave differently and which things simply stopped existing. &lt;/p&gt;




&lt;p&gt;I hope these tips may help one or the other developer, pupil or mentor. On my part doing all of them in order until I found what I have been looking for takes about 10 to 20 minutes, yet having years and years of routine with it, this is not suprising. So, don't worry if it takes you a little longer than that! &lt;/p&gt;

&lt;p&gt;What are your tips in this regard? I would love to hear them from you and improve my one routine! &lt;/p&gt;

&lt;p&gt;Cover image by &lt;a href="https://www.pexels.com/photo/girl-in-yellow-long-sleeve-dress-reading-the-alphabets-on-wall-8613121/" rel="noopener noreferrer"&gt;Yan Krukau&lt;/a&gt;! 🥳&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; When looking into this topic a bit more on our beloved &lt;a href="//dev.to"&gt;dev.to&lt;/a&gt; I also found this well-written &lt;a href="https://dev.to/nfrankel/working-on-an-unfamiliar-codebase-4pd6"&gt;post&lt;/a&gt; by &lt;a href="https://dev.to/nfrankel"&gt;Nicolas Frankel&lt;/a&gt;. Go checkout that post as well if you want even more tips on this topic! &lt;/p&gt;

</description>
      <category>beginners</category>
      <category>productivity</category>
      <category>discuss</category>
    </item>
    <item>
      <title>📝The Origins of IaC</title>
      <dc:creator>Jessica Veit</dc:creator>
      <pubDate>Tue, 23 May 2023 07:04:32 +0000</pubDate>
      <link>https://forem.com/jessica_veit/the-origins-of-iac-14hb</link>
      <guid>https://forem.com/jessica_veit/the-origins-of-iac-14hb</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Infrastructure as Code is a key element of most top performing engineering setups. It’s a big leap forward in the way Ops and Devs interact with their own infrastructure. (&lt;a href="https://humanitec.com/blog/infrastructure-as-code-the-good-the-bad-and-the-future" rel="noopener noreferrer"&gt;Galante, 2021&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After the introduction of the QA and IaC topic in the first blog post of this series, we now dive head first into the origins of IaC - &lt;em&gt;Why do we even need to in the first place?&lt;/em&gt; &lt;/p&gt;




&lt;h2&gt;
  
  
  The Need for Automation 🤖
&lt;/h2&gt;

&lt;p&gt;The massive adoption of cloud over the past years has forced the need for automation in the infrastructure sector. As shown in the hype cycle depicted below, topics like industry cloud platforms or cloud sustainability are an innovation trigger ready to define new industry standards soon. Previously a change in infrastructure was limited by the hardware purchasing cycle often spanning weeks before a new piece of hardware arrived. Due to this circumstance, there was no need to rush its proper setup (&lt;a href="https://www.thoughtworks.com/insights/blog/infrastructure-code-iron-age-cloud-age" rel="noopener noreferrer"&gt;Morris, 2016&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft8tb3zr8302nrtejxktx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft8tb3zr8302nrtejxktx.png" alt="Image description" width="800" height="735"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Hype Cycle for Emerging Tech (&lt;a href="https://www.gartner.com/en/articles/what-s-new-in-the-2022-gartner-hype-cycle-for-emerging-technologies" rel="noopener noreferrer"&gt;Perri, 2022&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;With cloud deployment of virtual anything needed in infrastructure can be configured, deployed, and destroyed in a matter of minutes. This of course leads to fast provisioned yet poorly maintained systems, an ever-growing portfolio of servers, sometimes even spanning multiple cloud providers, and configuration drift as well as snowflake servers. &lt;/p&gt;

&lt;p&gt;Early on it was clear that the full potential of cloud could only be utilized using novel tools, which for one, help to automate deployment, and additionally, enable those responsible to maintain the system with reasonable effort. As Morris put it...&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;The essence of Infrastructure as Code is to treat the configuration of systems the same way that software source code is treated.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;... only the reorientation of infrastructure development and management towards software development can ensure the most efficient handling of this new and unique technology. &lt;/p&gt;




&lt;h2&gt;
  
  
  Four Levels of Operational Maturity 🌡️
&lt;/h2&gt;

&lt;p&gt;The full automation of processes and making them auditable, scalable, and their results reproducible nowadays is the overall goal of the ongoing digitalization. In this context the question of maturity of a system or procedure, as in this case, the operation processes, always needs to be answered before progress can be made. For practices of provisioning in operations there are four levels of maturity define by &lt;a href="https://developer.hashicorp.com/terraform/cloud-docs/recommended-practices/part2" rel="noopener noreferrer"&gt;HashiCorp&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Manual &lt;/li&gt;
&lt;li&gt;Semi-Automation &lt;/li&gt;
&lt;li&gt;Infrastructure as Code&lt;/li&gt;
&lt;li&gt;Collaborative Infrastructure as Code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each of those stages is characterized by how the infrastructure is provisioned and how traceable changes made are as well as the ability to rollback and collaboration, respectively reuse, possibilities. The model provided also corresponds very well with the common maturity model seen over the whole operation department. There is a general agreement on a model similar to the hereafter graphic representation by Accenture:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpfalej8ci88xhtpct06w.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpfalej8ci88xhtpct06w.jpg" alt="Image description" width="800" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Operational maturity model (&lt;a href="https://www.accenture.com/us-en/blogs/intelligent-operations-blog/operations-maturity" rel="noopener noreferrer"&gt;Henneborn &amp;amp; Mody, 2021&lt;/a&gt;)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It also describes a &lt;em&gt;stable&lt;/em&gt;, yet labour-intensive workflow at the start of operations, it then gets more and more &lt;em&gt;efficient&lt;/em&gt; by automation until the processes are orientated towards only judgment-based manual tasks, automating the others. With this it can be seen that the clear definition of what level of maturity in the provisioning regard a company currently has, is crucial for the introduction of IaC workflows and tools in operations. It defines the starting point of this operational evolution leaning more and more towards DevOps. &lt;/p&gt;




&lt;h2&gt;
  
  
  Next Steps 🪜
&lt;/h2&gt;

&lt;p&gt;In the next blog post &lt;a href="https://www.terraform.io/" rel="noopener noreferrer"&gt;Terraform&lt;/a&gt; comes into the picture. We are going to discuss how this tool works and see what we can do with it. So, stay tuned if you are interested!&lt;/p&gt;

&lt;p&gt;Cover Image by &lt;a href="https://www.pexels.com/photo/selective-photography-of-green-leaf-plant-in-brown-pot-615304/" rel="noopener noreferrer"&gt;Skitterphoto&lt;/a&gt;! 🥳&lt;/p&gt;

</description>
      <category>infrastructureascode</category>
      <category>qa</category>
      <category>learning</category>
    </item>
    <item>
      <title>📝Why QA for IaC is important</title>
      <dc:creator>Jessica Veit</dc:creator>
      <pubDate>Tue, 16 May 2023 07:44:14 +0000</pubDate>
      <link>https://forem.com/jessica_veit/why-qa-for-iac-is-important-2e91</link>
      <guid>https://forem.com/jessica_veit/why-qa-for-iac-is-important-2e91</guid>
      <description>&lt;p&gt;The world of Clouds ☁️ A seemingly magical place, scalable to the prim and the epitome of automation. Yet I wouldn’t be the code quality advocate that I am, if my first question here wouldn’t be: &lt;em&gt;How do I test it?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The past months I immersed myself in Terraform, an Infrastructure as Code tool, and embarked on the quest to find out how different or maybe similar testing IaC is to test our well-known general-purpose code. Yet, let us not get ahead of yourself. In this post we are looking at what Infrastructure as Code acutally means and how quality assurance comes into play in this field.&lt;/p&gt;




&lt;h2&gt;
  
  
  Infrastructure as Code and QA 📋
&lt;/h2&gt;

&lt;p&gt;Infrastructure as Code (IaC) is currently fundamentally changing the processes in IT operation departments. It is the practice of provisioning infrastructure with an (often) declarative approach promoting scalability and automatization in this sector. Although it is not a new technology with the first impactful launches of IaC tools by HashiCorp and Azure in 2014 its usage picked up significantly in the past years as the cloud computing sector started to grow incessantly. Not at least because of the pace infrastructure is to be provisioned in the cloud nowadays, IaC is the future of operations. &lt;/p&gt;

&lt;p&gt;Yet, even though this practice is seen as the new industry standard, testing and general quality assurance as well as maintenance of the implemented code is still a blank spot in research. For this reason, this blog series aims to give an overview of the state-of-the-art IaC technologies and their potential pitfalls, defects and misconfigurations that can impact the final infrastructure deployed as well as point out its similarities to the development and testing of general-purpose languages (GPLs). The information presented are a combination of literature research and practical implementation in form of proof-of-concepts with &lt;a href="https://www.terraform.io/" rel="noopener noreferrer"&gt;Terraform&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why QA is important 🛎️
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;We evidence that the field of development and maintenance IaC is in its infancy and deserves further attention. (&lt;a href="https://doi.org/10.1016/j.infsof.2021.106593" rel="noopener noreferrer"&gt;Kumara et al., 2021&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In software development, code testing, agile workflows, the practice of continues integration and delivery (CI/CD) and versioning of source code were heavily adopted over recent years not least thanks to pioneers like Robert C. Martin and Martin Fowler. It was a clear response to the rapid pace of change in demands and expectations of end users as well as the progressing digitalization in virtually every sector imaginable – the assurance of code quality. In parallel to these developments in the software sector, also information technology (IT) infrastructure has undergone many innovations, with one being Infrastructure as Code (IaC). &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Infrastructure-as-code (IaC) is the DevOps tactic of managing and provisioning infrastructure through machinereadable definition files, rather than physical hardware configuration or interactive configuration tools&lt;/em&gt; (&lt;a href="https://doi.org/10.1109/ICSME.2019.00092" rel="noopener noreferrer"&gt;Guerriero et al., 2019&lt;/a&gt;) &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;... and it thus paves the way to unite development and operations (short DevOps) in a way it has not been possible before. With IaC network engineers can utilize the aforementioned software development practices that, until now, were exclusively applicable in the domain of software development. Like with general purpose code, IaC scripts form a living, comprehensible documentation more accurate than any configuration management database (CMDB) could ever do and enable a new chapter in the QA of infrastructure as a whole. &lt;/p&gt;

&lt;p&gt;This is important due not least to the very high risks of deploying new software, be it a software service or an IaC script, without rigorous QA, have greater implications now than ever before. As the IBM Cost of Data Breaches Report 2022 showed, depending on the effected cloud environment the breaches average cost for companies are enormous (&lt;a href="https://securityboulevard.com/2022/10/ibm-cost-of-a-data-breach-2022-highlights-for-cloud-security-professionals/" rel="noopener noreferrer"&gt;Ermetic Team, 2022&lt;/a&gt;). With these cloud-based breaches, which account for 45% of all data breaches included in the report, the seriousness of this issue, especially in the prospect of the ever-increasing adoption of cloud computing, cannot be ignored. For this reason, it is not just important to lay the focus on generally making infrastructure deployment simpler at its core with IaC, but simultaneously define and improve its testing options. Because in software engineering untested code is one of the most effective ways to generated legacy code fast as...&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Tests document the intended behaviour of code which is a tremen-dous help for future developers to understand it.&lt;/em&gt; (&lt;a href="https://andreschweighofer.com/tech/what-is-legacy-code-and-how-to-avoid-it/" rel="noopener noreferrer"&gt;Schweighofer, n.d.&lt;/a&gt;).&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Next Steps 🪜
&lt;/h2&gt;

&lt;p&gt;After understanding the issue the next logical step is to understand how IaC came to be and what it means in the boarder context of IT operations. So, get ready for the origin story of IaC in the next post! &lt;/p&gt;




&lt;p&gt;&lt;em&gt;Photo by &lt;a href="https://www.pexels.com/photo/low-angle-photography-of-grey-and-black-tunnel-overlooking-white-cloudy-and-blue-sky-210158/" rel="noopener noreferrer"&gt;Pixabay&lt;/a&gt;!&lt;/em&gt; 🥳&lt;/p&gt;

</description>
      <category>infrastructureascode</category>
      <category>qa</category>
      <category>learning</category>
    </item>
    <item>
      <title>Organization as Motivation</title>
      <dc:creator>Jessica Veit</dc:creator>
      <pubDate>Wed, 03 May 2023 12:48:23 +0000</pubDate>
      <link>https://forem.com/jessica_veit/organization-as-motivation-1eeg</link>
      <guid>https://forem.com/jessica_veit/organization-as-motivation-1eeg</guid>
      <description>&lt;p&gt;I am just gonna throw this in here: Is anyone familiar with &lt;em&gt;The Magic of tidying up&lt;/em&gt;? &lt;/p&gt;

&lt;p&gt;Marie Kondo is a japanese organizing consultant teaching people how to organize and declutter mostly their physical spaces, which in turn also has a huge emotional effect on them. Words that often are heard in her TV series or read in the aforementioned book are &lt;em&gt;joy&lt;/em&gt; and &lt;em&gt;gratitude&lt;/em&gt;. Basically, only hold on to the items that &lt;em&gt;spark joy&lt;/em&gt; for you and be grateful for the service items you no longer need served you. &lt;/p&gt;

&lt;p&gt;So, what has that to do with coding? When I took a closer look at this magic of the sympathetic mother of two living on the other side of the planet, I saw a valuable lesson in her teaching - especially for my pupil and co-worker. I do not know who else needs to hear this, but just read the following lines carefully: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Change whatever you like in your local copy of the code, we have Git. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Of course, be sure which changes you check into the repository, but be assured, if they are still enjoying some leisure on a nice and comfy feature branch of yours nothing bad can happen (except the occasionally failing pipeline yet show me one developer who did not accept the responsibility for that little red icon). Again - Git. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;And even if your changes land in a trunk, main or production branch - it is all cool. As long as we know about it no one has to stay and badge up the damage in the course of an extra night shift. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All nice and well, but what has all of these reassurances to do with the magic that introduced this post and why would anyone post these self-evident statements about Git? &lt;/p&gt;

&lt;p&gt;Git (as well as other source control tools to also get this out of the way) gives us as developers a unique opportunity other professions can only dream of. We have to power to make changes disappear, to change to way of history and are the masters of the now and the a little bit later! And... Okay, but let us be real here, we can try out ideas basically for free. Of course, every action consumes at least some time, but we trade this time for findings we would have never known about otherwise. &lt;/p&gt;

&lt;p&gt;So do as you please with your code, especially if you are an beginner. Do not be afraid of getting rid or let us say letting go of one or the other line of code (and please, stop leaving code comments in there). Ask yourself &lt;em&gt;does this line of code spark joy aka do something good for the system seen in its entirety?&lt;/em&gt; and feel how freeing and motivating this minimalist approach to coding can be. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Photo by &lt;a href="https://www.pexels.com/photo/clear-glass-jars-on-white-wooden-shelf-8580793/" rel="noopener noreferrer"&gt;RODNAE Productions&lt;/a&gt;!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>motivation</category>
      <category>learning</category>
      <category>beginners</category>
    </item>
    <item>
      <title>What is Some Random Tech-Fact you Know?</title>
      <dc:creator>Jessica Veit</dc:creator>
      <pubDate>Mon, 13 Jun 2022 06:18:33 +0000</pubDate>
      <link>https://forem.com/jessica_veit/what-is-some-random-tech-fact-you-know-4glb</link>
      <guid>https://forem.com/jessica_veit/what-is-some-random-tech-fact-you-know-4glb</guid>
      <description>&lt;p&gt;We all have something living rent-free in our heads 🐛. Be it a meme, gif, song or something completely different. Yet most of them are basically a File on some server, something only existing digitally (next to our minds). These are the true wonders of our technology as they make us happy.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Our Everyday Heroes!&lt;/em&gt; 🦸🦸‍♀️&lt;/p&gt;

&lt;p&gt;And just like those - which can also be found &lt;a href="https://dev.to/search?q=meme%20monday"&gt;on every meme Monday&lt;/a&gt; here on &lt;a href="https://dev.to/"&gt;dev.to&lt;/a&gt; - every &lt;em&gt;engineer&lt;/em&gt; has some random tech fact someone with another profession would probably not know 🧠.&lt;/p&gt;

&lt;p&gt;So, here goes my rent-free &lt;em&gt;Tech Fact concerning hardware limits&lt;/em&gt;: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The Bekenstein bound limits the amount of information that can be stored within a spherical volume to the entropy of a black hole with the same surface area.&lt;br&gt;
&lt;em&gt;&lt;a href="https://en.wikipedia.org/wiki/Bekenstein_bound" rel="noopener noreferrer"&gt;Read More About it on Wikipedia&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And something more coding related - Atwood's Law:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Any application that can be written in JavaScript, will eventually be written in JavaScript.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;&lt;a href="https://en.wikipedia.org/wiki/Jeff_Atwood#:~:text=In%202007%2C%20Jeff%20Atwood%20made,question%2Dand%2Danswer%20website." rel="noopener noreferrer"&gt;Read More About it, also, on Wikipedia&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Photo by &lt;a href="https://www.pexels.com/@bintimalu/" rel="noopener noreferrer"&gt;Binti Malu&lt;/a&gt; on &lt;a href="https://www.pexels.com/photo/photo-of-a-sign-and-eyeglasses-on-table-1485657/" rel="noopener noreferrer"&gt;Pexels&lt;/a&gt; 🎉&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>watercooler</category>
      <category>motivation</category>
    </item>
    <item>
      <title>Why you Should get Into Coding Patterns Right Away 🏁</title>
      <dc:creator>Jessica Veit</dc:creator>
      <pubDate>Tue, 07 Jun 2022 06:36:13 +0000</pubDate>
      <link>https://forem.com/jessica_veit/why-you-should-get-into-coding-patterns-right-away-4515</link>
      <guid>https://forem.com/jessica_veit/why-you-should-get-into-coding-patterns-right-away-4515</guid>
      <description>&lt;p&gt;&lt;em&gt;First and for most - I would love to hear your thoughts on&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;When in ones developer journey should one look into the topic of patterns? &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;As of my opinion is as early as possible and here is why!&lt;/em&gt; 😊&lt;/p&gt;

&lt;p&gt;Software development can be simply descripted as solving problems and occasionally drinking coffee ☕. Although this is what we as developers do and also what we hopefully enjoy doing, there is not always a need for that. &lt;em&gt;You might ask why?&lt;/em&gt; Well, firstly that in your hand is properly not your first one of the day, and secondly lots of people, especially four very dedicated man, already did a lot of thinking for you 🧠. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclaimer&lt;/strong&gt;&lt;br&gt;
Do not get me wrong, finding your own way of problem solving and kind of developing a 64-bit sense for it is a crucial skill you &lt;em&gt;need&lt;/em&gt; as a developer, yet I think especially for beginners it is not any less interesting as it is educational to see how other people approach all sorts of problems. &lt;/p&gt;

&lt;h2&gt;
  
  
  Where to Start
&lt;/h2&gt;

&lt;p&gt;When talking about design patterns in software engineering the &lt;a href="https://springframework.guru/gang-of-four-design-patterns/" rel="noopener noreferrer"&gt;Gang of Four Design Patterns&lt;/a&gt; are what most people think of. Those are your &lt;code&gt;goto&lt;/code&gt; for any sort of somehow generic problems like... &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Factory Method:&lt;/strong&gt; To create instances of different implementations of an interface.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Composite:&lt;/strong&gt; To compose objects into tree structures and work with these structures like with individual objects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Iterator:&lt;/strong&gt; To iterate all elements of a collection without exposing their underlying representation.&lt;/p&gt;

&lt;p&gt;Just to give a quick overview on those patterns, there 23 of them, categorized into: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creational Patterns&lt;/li&gt;
&lt;li&gt;Structural Patterns&lt;/li&gt;
&lt;li&gt;Behavioural Patterns&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the book &lt;em&gt;Design Patterns: Elements of Reusable Object-Oriented Software&lt;/em&gt; each pattern is descripted and exemplify with UML diagrams, template source code and a real-world example. It is very well-written and gets you right into the different topics and use cases.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Practiced Them
&lt;/h2&gt;

&lt;p&gt;Back in school, my professor always did the following three-step-approach of showing us the purpose of a new pattern:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Explain a problem&lt;/li&gt;
&lt;li&gt;Give time to the students to come up with their own solution&lt;/li&gt;
&lt;li&gt;Discuss the approaches and present the pattern-solution&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I loved this technique of him teaching us as we were given the chance to think about a problem and understanding it as a whole. Additionally, since then I always had a distinct example for every pattern in my mind! &lt;/p&gt;

&lt;h2&gt;
  
  
  What to do Next
&lt;/h2&gt;

&lt;p&gt;So, now that you got all your sources of information ready, maybe even a collection of code snippets and explanations, what next? Think through them, maybe find real-life examples based on your own experience and &lt;em&gt;code, code, code&lt;/em&gt; as one of my professors always used to say: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;I didn’t really understand it - until I tried it!&lt;/em&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  In the End
&lt;/h2&gt;

&lt;p&gt;Design patterns are a great thing to know. They make the life of a developer much easier and are optimal against headaches and bad code design, yet bear in mind that these patterns should support you and you should not just blindly follow along. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understand what code can do and what you can do with code!&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Photo by &lt;a href="https://www.pexels.com/de-de/@jonas-svidras/" rel="noopener noreferrer"&gt;Jonas  Svidras&lt;/a&gt; on &lt;a href="https://www.pexels.com/de-de/foto/schwarzer-und-gelber-elektronischer-chip-785418/" rel="noopener noreferrer"&gt;Pexels&lt;/a&gt; 🎉&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ps.:&lt;/strong&gt; Also an amazing tip in terms of improving your coding skill and the overall quality of your code is the &lt;a href="https://clean-code-developer.com/" rel="noopener noreferrer"&gt;Clean Code Initiative&lt;/a&gt; providing the theoretical input and also a roadmap on how to go about it.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>patterns</category>
      <category>discuss</category>
    </item>
    <item>
      <title>What Games can Make you a Better Developer? 🎮</title>
      <dc:creator>Jessica Veit</dc:creator>
      <pubDate>Mon, 30 May 2022 07:54:20 +0000</pubDate>
      <link>https://forem.com/jessica_veit/what-games-can-make-you-a-better-developer-1fma</link>
      <guid>https://forem.com/jessica_veit/what-games-can-make-you-a-better-developer-1fma</guid>
      <description>&lt;p&gt;I believe in the power of YES... concerning, if you want to take away something from everything, you can! Recently, I treated myself with the indie game &lt;a href="https://store.steampowered.com/app/239030/Papers_Please/" rel="noopener noreferrer"&gt;Papers, please!&lt;/a&gt;, which in its core is about being in a boarder checkpoint, checking papers of travelers and potentially finding forgeries. &lt;/p&gt;

&lt;p&gt;So, what does this have to do with my professional career as a software developer? Easy, doing code reviews, comparing files and finding mistakes in them 😄📝!&lt;/p&gt;

&lt;p&gt;What games do you feel let you practice some handy skill, not only speaking of professional situations and not only thinking of &lt;em&gt;video&lt;/em&gt; games? 💭&lt;/p&gt;

&lt;p&gt;Photo by &lt;a href="https://www.pexels.com/de-de/@francesco-ungaro/?utm_content=attributionCopyText&amp;amp;utm_medium=referral&amp;amp;utm_source=pexels" rel="noopener noreferrer"&gt;Francesco Ungaro&lt;/a&gt; on &lt;a href="https://www.pexels.com/de-de/foto/mosaik-alien-an-der-wand-1670977/?utm_content=attributionCopyText&amp;amp;utm_medium=referral&amp;amp;utm_source=pexels" rel="noopener noreferrer"&gt;Pexels&lt;/a&gt; 🎉&lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>productivity</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Accepting Your Lows and how to get out of Them</title>
      <dc:creator>Jessica Veit</dc:creator>
      <pubDate>Tue, 24 May 2022 12:09:27 +0000</pubDate>
      <link>https://forem.com/jessica_veit/accepting-your-lows-and-how-to-get-out-of-them-oc1</link>
      <guid>https://forem.com/jessica_veit/accepting-your-lows-and-how-to-get-out-of-them-oc1</guid>
      <description>&lt;p&gt;You wake up with a headache hammering like crazy, feeling like your mind is trying to grind the coffee beans by itself today, or your car breaks down in the middle of nowhere just like the service you deployed last week? Everyone knows these days, everyone is trying to survive these days, and everyone knows these days will always creep up on you at some point. There are days or even weeks where you seem not to make your compiler happy, your threads won't act like they are supposed to act and eat each other up in endless dead-locks, and on top of all this - the coffee machine broken. &lt;/p&gt;

&lt;p&gt;It is easy to slip of into a numb state on difficult days where you are just trying to survive the eight hours in office only to &lt;em&gt;go home&lt;/em&gt; and worry even more about every single line you may or may not wrote today. Everyone is going through a phase like this from time to time, it is completely normal, it is human. Sure, the thing is that, if you are really stuck, like really stuck, sleeping till eleven on a Saturday and enjoying the well-deserved weekend may not be enough. And &lt;em&gt;just&lt;/em&gt; going on holiday in the middle of an important project is also not on the table for you. So, what to do about all of this?&lt;/p&gt;

&lt;p&gt;Well, what gets me out of situation like these is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;💪 Reminding myself of accomplishments&lt;/li&gt;
&lt;li&gt;📖 Refreshing my knowledge by going over best practices or patterns as well as expending my horizon with new stuff (it does not have to be about coding all the time 😉)&lt;/li&gt;
&lt;li&gt;🙇‍♀️ Not forcing myself to anything and always staying clear of the purpose of &lt;em&gt;why&lt;/em&gt; I am doing something&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;And on top of all&lt;/strong&gt; &lt;br&gt;
&lt;em&gt;Reminding myself why I used to love what I do and how I got where I am today.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;As I said, I believe everybody has their lows from time to time, which begs the question of &lt;em&gt;What are your to-goes when it comes to overcoming these times and maybe coming out of them stronger, smarter or even happier than before?&lt;/em&gt; 👼&lt;/p&gt;

&lt;p&gt;Cover picture by &lt;a href="https://www.pexels.com/de-de/@enginakyurt?utm_content=attributionCopyText&amp;amp;utm_medium=referral&amp;amp;utm_source=pexels" rel="noopener noreferrer"&gt;Engin Akyurt&lt;/a&gt; on &lt;a href="https://www.pexels.com/de-de/foto/grunblattrige-pflanze-auf-sand-1438404/?utm_content=attributionCopyText&amp;amp;utm_medium=referral&amp;amp;utm_source=pexels" rel="noopener noreferrer"&gt;Pexels&lt;/a&gt; 🎉&lt;/p&gt;

</description>
      <category>motivation</category>
      <category>watercooler</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Where There is Code There Should be a Review (but Why?)</title>
      <dc:creator>Jessica Veit</dc:creator>
      <pubDate>Thu, 19 May 2022 09:41:40 +0000</pubDate>
      <link>https://forem.com/jessica_veit/where-there-is-code-there-should-be-a-review-but-why-3jj1</link>
      <guid>https://forem.com/jessica_veit/where-there-is-code-there-should-be-a-review-but-why-3jj1</guid>
      <description>&lt;p&gt;Lately, I was asked by one of my trainees why I am so persistent when it comes to code reviews. An interesting question if you ask me, so I decided to take a closer look as to what my big &lt;em&gt;Whys&lt;/em&gt; were, and also wanted to ask you what you think about the (sometimes feared) Code Review 👻💻!&lt;/p&gt;

&lt;p&gt;No matter if your dev-team is looking on a &lt;em&gt;Scrum&lt;/em&gt; or &lt;em&gt;Kanban&lt;/em&gt; board on a daily basis (🥁) there most probably is this one column with a header like &lt;em&gt;To Verify&lt;/em&gt;, &lt;em&gt;Testing&lt;/em&gt; or &lt;em&gt;Q’n’A&lt;/em&gt; written prominently above it. Why? Well, in my mind there are a lot of good reasons for cultivating code reviews within, especially small, dev-teams:&lt;/p&gt;

&lt;p&gt;👌 &lt;em&gt;Quality Assurance:&lt;/em&gt; Four eyes always see more than two and so potential bugs or pitfalls can be fixed on the spot. The argument of quality of course needs to be the first point on this kind of agenda as it is the most practical reason for their existence.&lt;/p&gt;

&lt;p&gt;🏝️ &lt;em&gt;A Break from your own Tickets and Code:&lt;/em&gt; Personally I love nothing more than spending Monday mornings with some delicious coffee reviewing new merge requests to again find into the right mindset for the week and stay up-to-day with current developments.&lt;/p&gt;

&lt;p&gt;🌱 &lt;em&gt;Everyone Learns Something new:&lt;/em&gt; Of course, always depending on your &lt;em&gt;levels&lt;/em&gt; within the coding domain, both – the coder and the reviewer – will always learn something new in the process. Be it how to do something or how &lt;em&gt;not&lt;/em&gt; to do something.&lt;/p&gt;

&lt;p&gt;💬 &lt;em&gt;More Communication:&lt;/em&gt; Especially with home office and remote work, working together changed a lot over the scope of the past few months (and actually years!). The biggest pain-point for most people probably was the lack of interaction with their peers and colleagues, and personally within the scope of reviews I communicated the most with my co-workers also on a personal level.&lt;/p&gt;

&lt;p&gt;What are your opinion on Code Reviews? What other &lt;em&gt;Whys&lt;/em&gt; do you see (so I can hype my protégé up even more when it comes to them)? &lt;/p&gt;

&lt;p&gt;Looking forward to hearing your thoughts 😉.&lt;/p&gt;

&lt;p&gt;Cover picture by &lt;a href="https://www.pexels.com/de-de/@markus-winkler-1430818/?utm_content=attributionCopyText&amp;amp;utm_medium=referral&amp;amp;utm_source=pexels" rel="noopener noreferrer"&gt;Markus Winkler &lt;/a&gt; on &lt;a href="https://www.pexels.com/de-de/foto/buro-schreiben-vintage-technologie-4065400/" rel="noopener noreferrer"&gt;Pexels&lt;/a&gt; 🎉&lt;/p&gt;

</description>
      <category>codequality</category>
      <category>programming</category>
      <category>discuss</category>
      <category>career</category>
    </item>
  </channel>
</rss>
