<?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>DEV Community: Coherence</title>
    <description>The latest articles on DEV Community by Coherence (@withcoherence).</description>
    <link>https://dev.to/withcoherence</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%2F983236%2F510784e1-7517-43ca-8495-8be4b276ce4a.jpg</url>
      <title>DEV Community: Coherence</title>
      <link>https://dev.to/withcoherence</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/withcoherence"/>
    <language>en</language>
    <item>
      <title>Staging is dead: The rise of preview environments</title>
      <dc:creator>Coherence</dc:creator>
      <pubDate>Thu, 22 Dec 2022 15:28:08 +0000</pubDate>
      <link>https://dev.to/withcoherence/staging-is-dead-the-rise-of-preview-environments-4ni8</link>
      <guid>https://dev.to/withcoherence/staging-is-dead-the-rise-of-preview-environments-4ni8</guid>
      <description>&lt;p&gt;While the embers of staging environments are still smoldering, like a phoenix, preview environments have risen from their ashes. &lt;/p&gt;

&lt;p&gt;Modern software development teams are increasingly using preview environments, also known as &lt;a href="https://ephemeralenvironments.io/"&gt;ephemeral environments&lt;/a&gt;, to test and preview their features. Unlike traditional staging environments, which were typically shared by multiple teams and often led to bottlenecks and delays, preview environments are created on-demand for each developer. This allows for greater collaboration and feedback, as well as improved testing due to production parity. Preview environments are fully automated, which saves time, costs, and resources compared to manually setting up and maintaining staging. &lt;/p&gt;

&lt;p&gt;Overall, preview environments provide a superior solution for modern software development teams who need to ship to production multiple times a day. The goal is to empower teams to ship higher quality code at a higher velocity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Traditional staging bottlenecks
&lt;/h2&gt;

&lt;p&gt;Having only a single staging server can quickly become a bottleneck for developers, as they must wait their turn to deploy to production. Maintaining a staging environment is always challenging, as it is difficult to keep it &lt;a href="https://squeaky.ai/blog/development/why-we-dont-use-a-staging-environment#whats-wrong-with-staging-environments"&gt;in sync with production&lt;/a&gt;. The challenges and frustrations associated with using a single staging environment often lead developers to devise workarounds, such as creating their own "staging" environments. This can introduce additional complexity, overhead, and security risks. &lt;/p&gt;

&lt;p&gt;Ephemeral environments, on the other hand, eliminate these issues by providing each piece of work with its own dedicated environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Collaboration &amp;amp; feedback
&lt;/h2&gt;

&lt;p&gt;Before the use of preview environments, developers often had to rely on screenshots and videos to showcase their work to stakeholders and other teams. This usually resulted in "review meetings" where various teams, such as product, design, and stakeholders, would gather to review the work. Collaboration and feedback were difficult to do asynchronously and a lot of time was often wasted in these meetings. &lt;/p&gt;

&lt;p&gt;Instead of sharing screenshots and videos, or holding "review meetings," preview environments can be easily shared via a URL. This allows for asynchronous collaboration and feedback, saving time and resources. Sales teams can also benefit from using preview environments, as they allow for easy demos of new features to prospective customers. &lt;/p&gt;

&lt;p&gt;Overall, preview environments provide a more efficient and effective way to review and demo work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Testing
&lt;/h2&gt;

&lt;p&gt;There are several benefits to using ephemeral environments for testing. These environments are nearly identical to production, which gives developers increased confidence that their code will work when it's deployed.&lt;/p&gt;

&lt;p&gt;Using ephemeral environments also makes it easier for developers to perform code reviews. They don't have to spend time rebuilding their local environments, which can be time-consuming and difficult. This means that developers are more likely to test their code thoroughly, leading to better code quality and fewer bugs. Ephemeral environments require little to no maintenance, which means that teams can focus on testing their work with the level of quality and thoroughness that it deserves; eliminating the need to cut corners in testing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Automated infrastructure
&lt;/h2&gt;

&lt;p&gt;Preview environments and the underlying infrastructure that powers them are automated and require little human intervention. Whenever a developer opens a new pull request, a new environment is created specifically for that piece of work. These environments are designed to be created and destroyed quickly, so if an environment breaks for any reason, a new one can be spun up in a couple of minutes. &lt;/p&gt;

&lt;p&gt;Since these environments are automated, your DevOps team has one less thing to worry about as we all know that DevOps teams are often &lt;a href="https://spacelift.io/blog/are-it-jobs-stressful"&gt;under significant stress&lt;/a&gt;. &lt;/p&gt;

&lt;h2&gt;
  
  
  Cost control &amp;amp; savings
&lt;/h2&gt;

&lt;p&gt;Preview environments are designed to be ephemeral, meaning they only exist for as long as you need them. This can save you money since you don't have to pay for environments that aren't being used. For example, you can automate these environments to spin up for every pull request and have them automatically destroyed when the request is approved and merged. The environment only exists for as long as necessary, so you only pay for what you actually use.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preview environments and the Coherence SDLC
&lt;/h2&gt;


&lt;div&gt;
  &lt;iframe src="https://loom.com/embed/a4b8a0cf99db497d81a3efa11d840094"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;


&lt;p&gt;Preview environments are an integral part of the &lt;a href="https://docs.withcoherence.com/docs/reference/sdlc-workflow"&gt;Coherence SDLC&lt;/a&gt;. After creating a new branch in Coherence, an isolated ephemeral environment is automatically created for it. Development is done via a &lt;a href="https://docs.withcoherence.com/docs/reference/workspace"&gt;workspace&lt;/a&gt;, and the new code is then pushed, via git, to the branch. Coherence automatically triggers a new build, updating the environment with the latest changes. Developers can then easily share the environment with whomever they wish via a unique URL. Once the branch has been approved and merged, Coherence will automatically destroy the environment and its underlying infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;While staging environments may not be dead yet, they are on life support. We’re seeing an explosion in third-party ephemeral environment providers because the demand is there. At Coherence, not only are we bullish on preview environments, we believe they’re core to an integrated development experience. The long term bet we’re making is preview environments in conjunction with cloud development environments, which we refer to as &lt;a href="https://docs.withcoherence.com/docs/explanations/remote-development-with-workspaces"&gt;workspaces&lt;/a&gt;, is the real wave of the future&lt;/p&gt;

&lt;p&gt;If you want to see what the future of software development looks like, we invite you to &lt;a href="https://app.withcoherence.com/?signup=true"&gt;try one of our free sandboxes&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>AI and the future of DevOps</title>
      <dc:creator>Coherence</dc:creator>
      <pubDate>Fri, 09 Dec 2022 17:50:06 +0000</pubDate>
      <link>https://dev.to/withcoherence/ai-and-the-future-of-devops-2fif</link>
      <guid>https://dev.to/withcoherence/ai-and-the-future-of-devops-2fif</guid>
      <description>&lt;p&gt;The release of &lt;a href="https://chat.openai.com/chat"&gt;ChatGPT&lt;/a&gt; by &lt;a href="https://openai.com/"&gt;OpenAI&lt;/a&gt; has caused quite the stir in the software industry, as it showcased the potential of AI in an easy to digest format for the everyday consumer.  With over &lt;a href="https://twitter.com/GRDecter/status/1599804597090279424?s=20&amp;amp;t=l8-saEFLpm5WgKp8gZo2TQ"&gt;one million users within just five days&lt;/a&gt;, ChatGPT has demonstrated growth that surpasses even the most popular social media platforms. This impressive adoption rate highlights the increasing demand for AI in today's world and its potential to disrupt many industries, including DevOps. However, even with such staggering growth and excitement, there is still a good amount of skepticism – these are early days, afterall.&lt;/p&gt;

&lt;p&gt;As AI continues to evolve, we expect it to have a profound impact and practical applications in the DevOps world. AI has real potential to improve code quality, strengthen monitoring and alerting systems, enhance security measures, and increase engineering productivity.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Code quality
&lt;/h2&gt;

&lt;p&gt;As AI tools like &lt;a href="https://github.com/features/copilot"&gt;GitHub’s Copilot&lt;/a&gt; and &lt;a href="https://replit.com/site/ghostwriter"&gt;Replit’s Ghostwriter&lt;/a&gt; continue to grow, we are already seeing more and more software written by artificial intelligence. This trend will only continue, with AI being used in DevOps to write configuration files, IAM policies, Infrastructure as Code (IaC), and more. &lt;/p&gt;

&lt;p&gt;Here is an example of ChatGPT &lt;a href="https://twitter.com/iangcarroll/status/1598171507062022148?s=20&amp;amp;t=C0jcISy0Eu-biy56lWfoCA"&gt;debugging an error with an AWS IAM policy&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;AI will continue to play a significant role in code generation. While developers will still need to review and make adjustments to the code written by AI, the speed and accuracy of AI-generated code will likely surpass that of human-written code. This could shift how software is developed, with AI taking on a more central role in the process. However, the exact timeline for when this might happen is still unknown. It will likely depend on several factors, including the advancement of AI technology and the &lt;a href="https://twitter.com/wesbos/status/1599851237821845504"&gt;willingness of developers to incorporate AI into their workflows&lt;/a&gt;. It’s going to be interesting to see how quickly AI is embraced or kept at arm's length by developers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code reviews
&lt;/h2&gt;

&lt;p&gt;As AI technology advances, it will likely profoundly impact code reviews. This is already starting to happen with the development of tools such as &lt;a href="https://aws.amazon.com/codeguru/"&gt;Amazon CodeGuru&lt;/a&gt; and &lt;a href="https://about.gitlab.com/blog/2022/01/04/the-road-to-smarter-code-reviewer-recommendations/"&gt;GitLab's ModelOps&lt;/a&gt;. These tools automate certain aspects of the code review process, such as identifying potential errors and suggesting improvements, saving developers time and effort while also helping to improve code quality. &lt;/p&gt;

&lt;p&gt;In the future, AI-powered code review tools may become even more sophisticated and comprehensive, taking on more complex tasks and providing more detailed feedback to developers. This could lead to more efficient and effective code review processes, helping to ensure that the code is of the highest possible quality.&lt;/p&gt;

&lt;p&gt;AI will verify that the code is correct, test for security vulnerabilities, and ensure that it works properly. As the AI performs more and more code reviews, it will become more proficient at identifying issues and suggesting fixes. Over time, the AI will become increasingly knowledgeable about your application's code base, enabling it to make more accurate suggestions. Initially, developers will still need to review and approve any changes made by the AI, however, the need for human intervention will decrease over time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Testing
&lt;/h2&gt;

&lt;p&gt;AI will revolutionize testing. The &lt;a href="https://en.wikipedia.org/wiki/Shift-left_testing"&gt;shift-left testing&lt;/a&gt; approach, which focuses on identifying and fixing issues early in the development process, will be significantly impacted by AI. The &lt;a href="https://martinfowler.com/articles/practical-test-pyramid.html"&gt;traditional testing pyramid&lt;/a&gt;, which emphasizes the importance of different types of testing, will become obsolete as AI takes on a more significant role in the testing process. With AI, your application's code base can be thoroughly analyzed and tested at all levels, from i&lt;a href="https://www.diffblue.com/"&gt;ndividual units&lt;/a&gt; to end-to-end user scenarios. In addition, AI will test for security vulnerabilities, performance issues, edge cases, and more.&lt;/p&gt;

&lt;p&gt;In addition to performing comprehensive code reviews and thorough testing, AI will monitor your application in production and identify any issues that may arise. By continuously monitoring the application, AI will learn from these issues and adapt its testing strategies to prevent similar problems from occurring in the future. This ability to constantly learn and improve allows the AI to provide ongoing support and protection for your application, ensuring it remains stable. Additionally, by automating many tedious and time-consuming tasks involved in testing, AI can free up your development team to focus on more critical tasks and accelerate the overall development process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Monitoring and alerting
&lt;/h2&gt;

&lt;p&gt;AI will &lt;a href="https://arize.com/"&gt;monitor&lt;/a&gt; the performance of an application and automatically alert teams if any issues need to be addressed. This can help teams respond to problems quickly and prevent them from becoming more serious. We believe that an AI could soon replace most site reliability engineers (SRE’s) responsibilities. AI can analyze large amounts of data, such as &lt;a href="https://www.dynatrace.com/platform/infrastructure-monitoring/"&gt;logs&lt;/a&gt;, to identify &lt;a href="https://aws.amazon.com/devops-guru/"&gt;potential problems and trends&lt;/a&gt; in real-time. Analyzing such large amounts of data will provide insights and recommendations that can help teams make more informed decisions. &lt;/p&gt;

&lt;p&gt;When a bug is found in your application, AI could deploy a working version of your app without interrupting its operation. After deploying a previously functioning version of the app, the AI could create a new PR and write the necessary code to fix the bug. &lt;/p&gt;

&lt;p&gt;AI could also identify inefficiencies in your cloud infrastructure and suggest ways to improve performance and reduce costs. This could include scaling resources up or down based on demand, consolidating underutilized resources, and more. The use of AI in cloud management and monitoring has the potential to improve efficiency, reduce costs, and prevent bugs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Security
&lt;/h2&gt;

&lt;p&gt;AI technology will play a significant role in the &lt;a href="https://www.dynatrace.com/platform/application-security/"&gt;security of applications&lt;/a&gt; and infrastructure. For instance, AI could automatically detect and block malicious attacks such as DDOS, XSS, and CSRF. It will also instantly identify potential security vulnerabilities during code reviews. Additionally, AI could surface any leaked or vulnerable PII (personally identifiable information).&lt;/p&gt;

&lt;p&gt;AI could monitor network traffic and identify suspicious patterns indicating an attempted attack. This could include analyzing the content of network packets, the frequency and location of requests, and other characteristics. Based on this analysis, an AI could automatically take actions to defend against the attack, such as blocking the source of the traffic or redirecting it to a honeypot. Additionally, AI could conduct security testing of your application during the development process, simulating various attacks and vulnerabilities to identify potential weaknesses before attackers can exploit them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Increased productivity
&lt;/h2&gt;

&lt;p&gt;AI already automates repetitive and time-consuming tasks, enabling teams to be more productive and efficient. AI will increase productivity for DevOps engineers by reducing the amount of boilerplate code for infrastructure as code (IaC), templates, and configuration files. Tools such as Copilot and Ghostwriter currently help with this and will only improve over time.&lt;/p&gt;

&lt;p&gt;Furthermore, AI can help DevOps engineers by providing instant access to information from documentation. Instead of reading through documentation, engineers can ask AI for the information they need, allowing them to access the information they require instantly. Additionally, AI can handle tasks such as configuring infrastructure and setting up cloud services, freeing DevOps engineers to focus on more specialized work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Coherence and AI
&lt;/h2&gt;

&lt;p&gt;At Coherence, we see several opportunities to incorporate AI in a way that will materially benefit our customers. For example, AI could help us and our customers streamline the onboarding process for new applications. Since every application has unique requirements, the onboarding process can vary greatly depending on the complexity and architecture of the app. AI could analyze a customer's application and assist with creating Dockerfiles, our coherence.yml, and ensuring that the app is ready for deployment in the cloud. This would save time and reduce errors, improving the overall onboarding experience for our customers. &lt;/p&gt;

&lt;p&gt;Artificial intelligence could help us regularly monitor our customers' infrastructure and cloud services to ensure optimal performance and cost-effectiveness. AI could enhance application security and compliance with HIPAA, SOC2, and others. Additionally, we believe that AI can assist our team with more efficient code reviews and improved code quality.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Companies will create DevOps-specific models that are hyper-focused and specialized, like &lt;a href="https://aws.amazon.com/devops-guru/"&gt;Amazon’s DevOps Guru&lt;/a&gt;. Sam Altman, the CEO of OpenAI, &lt;a href="https://youtu.be/WHoWGNQRXb0"&gt;foresees a future&lt;/a&gt; where several new companies and startups train existing models for specific verticals. Companies will leverage already trained and existing models but enhance them with data specific to DevOps. These AIs will improve code quality, strengthen monitoring and alerting systems, enhance security measures, and increase engineering productivity.&lt;/p&gt;

&lt;p&gt;The use of AI in DevOps has the potential to significantly improve the efficiency and reliability of software development and deployment. We believe by leveraging the power of AI, companies can build better products faster and cheaper. If that provides a better experience for our customers and users we should embrace it.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>ai</category>
    </item>
    <item>
      <title>It's time to forget what you think you know about remote development</title>
      <dc:creator>Coherence</dc:creator>
      <pubDate>Mon, 05 Dec 2022 18:56:24 +0000</pubDate>
      <link>https://dev.to/withcoherence/its-time-to-forget-what-you-think-you-know-about-remote-development-542d</link>
      <guid>https://dev.to/withcoherence/its-time-to-forget-what-you-think-you-know-about-remote-development-542d</guid>
      <description>&lt;p&gt;Over the past few years, more and more companies have migrated to remote development environments for their engineering teams. With the advent of the cloud, developing remotely provides numerous benefits over local development. While local development is still the predominant way of writing software, it is only a matter of time before remote development makes it a thing of the past, and for a good reason. Cloud development environments save time and money, prevent the “it works on my machine” problem, increases code quality, mitigates context-switching headaches, and provides better consistency between development and production.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cloud development environments are the future
&lt;/h2&gt;

&lt;p&gt;Remote development is in a similar place that the cloud was in several years ago. These days, the cloud is ubiquitous. Remote development is next. &lt;/p&gt;

&lt;p&gt;We are not the only ones who believe this, as large companies like &lt;a href="https://cloud.google.com/products/tools"&gt;Google&lt;/a&gt;, &lt;a href="https://azure.microsoft.com/en-us/products/deployment-environments/#overview"&gt;Microsoft&lt;/a&gt;, and &lt;a href="https://www.jetbrains.com/remote-development/"&gt;JetBrains&lt;/a&gt; continue to invest heavily in cloud development environments. Companies like &lt;a href="https://slack.engineering/remote-development-at-slack/"&gt;Slack&lt;/a&gt;, &lt;a href="https://shopify.engineering/cloud-load-modular-code-shopify-2022"&gt;Shopify&lt;/a&gt;, &lt;a href="https://twitter.com/gwenshap/status/1533956840240779264?s=20&amp;amp;t=FBNMNXzv8v6vwAdSzkTxDw"&gt;Meta&lt;/a&gt;, and &lt;a href="https://twitter.com/charmcgi/status/1534182983837618176"&gt;Tesla&lt;/a&gt; are investing in cloud development environments for their engineers because the costs and benefits far outweigh local development.&lt;/p&gt;

&lt;p&gt;“At Slack… Engineers would no longer have to maintain code or dependencies on their local laptops. They could get a fresh isolated environment on demand, ready to be used within a couple of minutes.” - &lt;a href="https://slack.engineering/remote-development-at-slack/"&gt;Source&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--J8i_eFJs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1rntjk6f0s74ti2wxgyo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--J8i_eFJs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1rntjk6f0s74ti2wxgyo.png" alt="Coherence Workspace" width="880" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The dreaded "it works on my machine" problem
&lt;/h2&gt;

&lt;p&gt;Developers often work with various operating systems, tools, software, and dependencies in multiple versions and states. Trying to maintain consistency across unique machines only leads to headaches and frustration. Remote development solves this problem because every development environment is the same. &lt;/p&gt;

&lt;p&gt;The cloud is the environment. &lt;/p&gt;

&lt;h2&gt;
  
  
  Remote environments save time and money
&lt;/h2&gt;

&lt;p&gt;"New hires can go from zero to a functioning development environment in less time than it takes to install Slack" - &lt;a href="https://github.blog/2021-08-11-githubs-engineering-team-moved-codespaces/"&gt;Source&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Developers spend significant time maintaining their local development environments, often spending several hours, sometimes days, updating, maintaining, and debugging their machines.&lt;/p&gt;

&lt;p&gt;As an application grows and becomes more complex, it will consume more resources like CPU and RAM. With cloud development environments, you can upgrade every engineer's machine with a single configuration change in seconds! Otherwise, you have to buy every engineer a brand-new laptop. How much will that cost?&lt;/p&gt;

&lt;p&gt;"I've seen engineers lose hours or even days debugging local development environment issues. It's even worse when starting a new job. There's little more disappointing and disempowering than to excitedly begin your job and then get stalled because you can't get your local development environment working. Every company should aim to get their developers as productive as quickly as possible. How long does it take a brand new developer to get code in the hands of customers when they start at your company? Is it measured in months, weeks, days, or hours?." - &lt;a href="https://github.com/readme/guides/developer-onboarding"&gt;Source&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Cloud development environments increase code quality
&lt;/h2&gt;

&lt;p&gt;Developing in the cloud improves code quality and produces fewer bugs.&lt;/p&gt;

&lt;p&gt;When a developer is reviewing code they look at the difference between the current state of the application versus their changes. Seeing these differences is vitally important, but there is another crucial step that most skip; pulling the code down onto their machines, to ensure the code works. Most of us ignore this critical step because it is often too painful and time-consuming.&lt;/p&gt;

&lt;p&gt;The developer performing the code review is most likely working on their feature, fixing a bug, or doing something completely unrelated to the code under review. They would have to save their code changes, switch contexts, and get their local development environment in the same working state as the code under review. This means pulling down the code under review, installing packages, libraries, version updates, etc., a recipe for &lt;a href="https://americanexpress.io/yak-shaving/"&gt;yak shaving&lt;/a&gt;. With cloud development environments, developers can review code in the same environment that the code was written in. &lt;/p&gt;

&lt;p&gt;No more yak shaving!&lt;/p&gt;

&lt;h2&gt;
  
  
  Effortless context switching
&lt;/h2&gt;

&lt;p&gt;Everyone knows context switching is wrong but let's be honest with ourselves; it happens all the time. A developer can be working on a feature, suddenly open a new environment to fix a bug, and even open a third environment for code review. We are not suggesting that context switching between three different contexts is a good idea, but context switching does happen more often than we like to admit, and it is effortless when developing in the cloud. &lt;/p&gt;

&lt;h2&gt;
  
  
  One operating system to rule them all
&lt;/h2&gt;

&lt;p&gt;Another thing to consider is that cloud development environments run on top of a single operating system. Local developers could use Mac, Windows, or various Linux distributions. Even if they use the same operating system, that does not necessarily mean everyone is running the same version. In remote environments, everything is the same, including the operating system. Your developers also benefit from developing on the same operating system used in production, providing a narrower gap between dev and production.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common objections and pushback
&lt;/h2&gt;

&lt;p&gt;Developing remotely in the cloud is not ideal for every situation or team as there is still more work to be done for it to completely replace local development. Here are some common objections and pushback developers have when it comes to developing remotely.&lt;/p&gt;

&lt;h3&gt;
  
  
  Remote environments are slower than my local environment
&lt;/h3&gt;

&lt;p&gt;Developing remotely in the cloud is typically slower than local development. Many factors, like network speeds, internet connection, and latency, contribute to this. One of the key trade offs regarding speed is the ability to spin up fresh environments quickly, per branch, without the need to maintain local environments.&lt;/p&gt;

&lt;p&gt;Remote environments are also becoming faster with technology like edge computing. &lt;/p&gt;

&lt;p&gt;“But surely you can see that the latency question is a question of letting the Moore's law equivalent of cloud commoditizing infrastructure take its course.” - &lt;a href="https://dx.tips/the-end-of-localhost#heading-the-potential-of-edge-compute"&gt;Source&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What if I need to work offline?
&lt;/h3&gt;

&lt;p&gt;If a developer regularly works offline, cloud development is not a great option, as remote environments require a fast internet connection. However, in practice, this is rarely an issue. Most developers are constantly connected to the internet as they rely upon it to do their jobs. &lt;/p&gt;

&lt;h3&gt;
  
  
  I don’t want to use/learn another IDE
&lt;/h3&gt;

&lt;p&gt;Developers are often very opinionated and particular, especially regarding their development environments. Many have custom key bindings, aliases, shortcuts, extensions, and themes, all finely tuned and configured on their machines. They have gone to great lengths to painstakingly set up and configure their IDEs to their exact specifications and liking.&lt;/p&gt;

&lt;p&gt;Many IDEs, like &lt;a href="https://code.visualstudio.com/docs/remote/remote-overview"&gt;VSCode&lt;/a&gt;, allow developers to access cloud environments from their local machines remotely. Developers can develop remotely in the cloud using the same setup on their local machines. In this way, they get the best of both worlds. &lt;/p&gt;

&lt;h2&gt;
  
  
  Coherence workspaces
&lt;/h2&gt;

&lt;p&gt;At &lt;a href="https://www.withcoherence.com/"&gt;Coherence&lt;/a&gt;, we are excited to help create this paradigm shift in software development. Our &lt;a href="https://docs.withcoherence.com/docs/reference/workspace"&gt;workspaces&lt;/a&gt; are an integral part of our &lt;a href="https://docs.withcoherence.com/docs/reference/sdlc-workflow"&gt;software development life cycle&lt;/a&gt;. Workspaces are ephemeral VSCode instances (we also support Emacs and VI) that are created automatically for every branch. In addition to remote development environments, we also provide managed Infrastructure as Code, managed CI/CD, shareable preview environments per branch, staging environments, and one-click deployments to production.&lt;/p&gt;

&lt;p&gt;We use Coherence to build Coherence, and we can't imagine ever spending the time, money, and resources necessary for local development again. As a startup, we must move at breakneck speeds without compromising our burn rate. Developing remotely in the cloud feels like a secret weapon since we take all the time and money we are saving to focus on delivering value and differentiating ourselves from the competition.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/sJLeOnKbrec"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;If you are interested in trying out Coherence, you can try one of our &lt;a href="https://app.withcoherence.com/?signup=true"&gt;sandboxes for free&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can also check out &lt;a href="https://docs.withcoherence.com/"&gt;our docs&lt;/a&gt; to learn more.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Remote development will revolutionize software development. The benefits of cloud development far outweigh those of local development. It saves time and money, prevents the “it works on my machine” problem, increases code quality, mitigates context-switching headaches, and provides a consistent environment between development and production. With these many benefits and more, it is hard to justify writing software locally ever again. &lt;/p&gt;

&lt;p&gt;It is only a matter of time before local development becomes a thing of the past.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>webdev</category>
      <category>programming</category>
      <category>cloud</category>
    </item>
  </channel>
</rss>
