<?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: FeaturePeek</title>
    <description>The latest articles on DEV Community by FeaturePeek (@featurepeek).</description>
    <link>https://dev.to/featurepeek</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%2Forganization%2Fprofile_image%2F614%2F68cdc262-7edd-470d-b6d8-da6962844257.png</url>
      <title>DEV Community: FeaturePeek</title>
      <link>https://dev.to/featurepeek</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/featurepeek"/>
    <language>en</language>
    <item>
      <title>How can new developers gain experience?</title>
      <dc:creator>Brad Johnson</dc:creator>
      <pubDate>Wed, 30 Dec 2020 18:15:31 +0000</pubDate>
      <link>https://dev.to/featurepeek/how-can-new-developers-gain-experience-286d</link>
      <guid>https://dev.to/featurepeek/how-can-new-developers-gain-experience-286d</guid>
      <description>&lt;p&gt;Eric Silverman, CEO and cofounder of FeaturePeek, discusses how new developers can gain experience, why it's important to read other people's code, and how contributing to open source projects can help you learn and look attractive to potential employers on your job hunt.&lt;/p&gt;

&lt;p&gt;Eric's GitHub: &lt;a href="https://github.com/eric-silverman"&gt;https://github.com/eric-silverman&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Learn more about FeaturePeek: &lt;a href="https://featurepeek.com/"&gt;https://featurepeek.com/&lt;/a&gt;&lt;br&gt;
Learn more about the Mintbean developer community: &lt;a href="https://mintbean.io/"&gt;https://mintbean.io/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>webdev</category>
      <category>devops</category>
      <category>culture</category>
    </item>
    <item>
      <title>Why are interpersonal skills so important on software development teams?</title>
      <dc:creator>Brad Johnson</dc:creator>
      <pubDate>Tue, 15 Dec 2020 18:16:44 +0000</pubDate>
      <link>https://dev.to/featurepeek/why-are-interpersonal-skills-so-important-on-software-development-teams-1g12</link>
      <guid>https://dev.to/featurepeek/why-are-interpersonal-skills-so-important-on-software-development-teams-1g12</guid>
      <description>&lt;p&gt;Eric Silverman, CEO and cofounder of FeaturePeek, discusses why interpersonal skills matter on software development teams and how having a Growth Mindset can set you up for success as a software engineer.&lt;/p&gt;

&lt;p&gt;Eric's GitHub: &lt;a href="https://github.com/eric-silverman"&gt;https://github.com/eric-silverman&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Learn more about FeaturePeek: &lt;a href="https://featurepeek.com/"&gt;https://featurepeek.com/&lt;/a&gt;&lt;br&gt;
Learn more about the Mintbean developer community: &lt;a href="https://mintbean.io/"&gt;https://mintbean.io/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>career</category>
      <category>devops</category>
      <category>culture</category>
    </item>
    <item>
      <title>What jobs should new developers apply for?</title>
      <dc:creator>Brad Johnson</dc:creator>
      <pubDate>Mon, 14 Dec 2020 17:28:22 +0000</pubDate>
      <link>https://dev.to/featurepeek/what-jobs-should-new-developers-apply-for-2j7f</link>
      <guid>https://dev.to/featurepeek/what-jobs-should-new-developers-apply-for-2j7f</guid>
      <description>&lt;p&gt;Eric Silverman, CEO and cofounder of FeaturePeek, discusses how many new developers aren't aware of job roles that would be a great fit for them, things developers should know when starting their first software engineering job, and lesser-known roles that new developers should consider to improve prospects on the job hunt.&lt;/p&gt;

&lt;p&gt;Eric's GitHub: &lt;a href="https://github.com/eric-silverman"&gt;https://github.com/eric-silverman&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Learn more about FeaturePeek: &lt;a href="https://featurepeek.com/"&gt;https://featurepeek.com/&lt;/a&gt;&lt;br&gt;
Learn more about the Mintbean developer community: &lt;a href="https://mintbean.io/"&gt;https://mintbean.io/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>webdev</category>
      <category>devops</category>
      <category>culture</category>
    </item>
    <item>
      <title>How did you get started in software engineering?</title>
      <dc:creator>Brad Johnson</dc:creator>
      <pubDate>Fri, 11 Dec 2020 16:53:21 +0000</pubDate>
      <link>https://dev.to/featurepeek/how-did-you-get-started-in-software-engineering-2l2g</link>
      <guid>https://dev.to/featurepeek/how-did-you-get-started-in-software-engineering-2l2g</guid>
      <description>&lt;p&gt;Eric Silverman, CEO and cofounder of FeaturePeek, discusses how he got started in software engineering and answers questions about his first role as a software developer, what he learned while working at his first startup, and the benefits of working at a startup if you're a new developer.&lt;/p&gt;

&lt;p&gt;Eric's GitHub: &lt;a href="https://github.com/eric-silverman"&gt;https://github.com/eric-silverman&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Learn more about FeaturePeek: &lt;a href="https://featurepeek.com/"&gt;https://featurepeek.com/&lt;/a&gt;&lt;br&gt;
Learn more about the Mintbean developer community: &lt;a href="https://mintbean.io/"&gt;https://mintbean.io/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>career</category>
      <category>devops</category>
      <category>culture</category>
    </item>
    <item>
      <title>Why learn software fundamentals?</title>
      <dc:creator>Brad Johnson</dc:creator>
      <pubDate>Thu, 10 Dec 2020 23:48:08 +0000</pubDate>
      <link>https://dev.to/featurepeek/software-engineering-fundamentals-getting-started-as-a-developer-and-overcoming-imposter-syndrome-5h5b</link>
      <guid>https://dev.to/featurepeek/software-engineering-fundamentals-getting-started-as-a-developer-and-overcoming-imposter-syndrome-5h5b</guid>
      <description>&lt;p&gt;Eric Silverman, CEO and cofounder of FeaturePeek, discusses why it's important for new developers to learn software engineering fundamentals, the things he knew when he got started as a new software developer, and strategies for overcoming impostor syndrome.&lt;/p&gt;

&lt;p&gt;Eric's GitHub: &lt;a href="https://github.com/eric-silverman"&gt;https://github.com/eric-silverman&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Learn more about FeaturePeek: &lt;a href="https://featurepeek.com/"&gt;https://featurepeek.com/&lt;/a&gt;&lt;br&gt;
Learn more about the Mintbean developer community: &lt;a href="https://mintbean.io/"&gt;https://mintbean.io/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>career</category>
      <category>culture</category>
      <category>devops</category>
    </item>
    <item>
      <title>Getting started in DevOps, CI pipelines, and setting up your first GitHub Actions</title>
      <dc:creator>Brad Johnson</dc:creator>
      <pubDate>Tue, 08 Dec 2020 23:28:35 +0000</pubDate>
      <link>https://dev.to/featurepeek/getting-started-in-devops-ci-pipelines-and-setting-up-your-first-github-actions-2575</link>
      <guid>https://dev.to/featurepeek/getting-started-in-devops-ci-pipelines-and-setting-up-your-first-github-actions-2575</guid>
      <description>&lt;p&gt;Last November, FeaturePeek cofounder &lt;a href="https://twitter.com/jasbarry"&gt;Jason Barry&lt;/a&gt; joined Mintbean to talk DevOps and help new Mintbean developers set up their first continuous integration pipelines. If you're not familiar with &lt;a href="https://mintbean.io/"&gt;Mintbean&lt;/a&gt;, it's a growing community of dev bootcamp graduates, self-learners, and other beginning developers that participate in weekly hackathons together. &lt;a href="https://mintbean.io/meets"&gt;Past hacks&lt;/a&gt; have included trivia apps, stock trackers, chatbots, and lots more. Along with the hackathons, Mintbean offers free workshops and presentations that feature helpful speakers from relevant startups and industry leading companies. All Mintbean hackathons and workshops are all intended to help new developers build their portfolios and ultimately find their first jobs in software development.&lt;/p&gt;

&lt;p&gt;One of the best parts of the Mintbean community is that every participant, code mentor, speaker, and community organizer at Mintbean are there to collaborate together and help each other learn. This focus on helping one another leads to a vibrant enthusiasm in Mintbean communities and chats, and new Mintbean participants always seem to think they've stumbled into a community that's too good to be true. Except that it's the real deal! That's why the FeaturePeek team are so proud to be sponsors of the Mintbean community, as well as frequent presenters on DevOps and career soft skills topics.&lt;/p&gt;

&lt;h2&gt;
  
  
  Automate and Deploy with GitHub Actions
&lt;/h2&gt;

&lt;p&gt;On that note, FeaturePeek cofounder and frontend developer Jason Barry joined a recent Mintbean cohort to discuss continuous integration and &lt;a href="https://www.youtube.com/watch?v=tQbZ7_C-KWk&amp;amp;t=32s"&gt;setting up your first CI pipelines&lt;/a&gt;. In this presentation, Jason chose to feature &lt;a href="https://github.com/features/actions"&gt;GitHub Actions&lt;/a&gt; for its ease-of-use and for its generous free tier. In this talk, Jason discusses the important of continuous integration, how to set up GitHub Actions, as well as some simple tests and automations you can integrate.&lt;/p&gt;

&lt;p&gt;Don't worry if you weren't able to join us on 11/16. That's why we recorded Jason's session, and this way you can watch it on your own time. Before you start, make sure to check out Jason's &lt;a href="https://github.com/jasonbarry/github-actions-starter-pack"&gt;GitHub Actions Starter Pack&lt;/a&gt; repository on GitHub. &lt;/p&gt;

</description>
      <category>webdev</category>
      <category>devops</category>
      <category>github</category>
      <category>testing</category>
    </item>
    <item>
      <title>7 ways frontend developers can improve collaboration on UI/UX teams</title>
      <dc:creator>Brad Johnson</dc:creator>
      <pubDate>Mon, 16 Nov 2020 20:18:40 +0000</pubDate>
      <link>https://dev.to/featurepeek/7-ways-frontend-developers-can-improve-collaboration-on-ui-ux-teams-4pbj</link>
      <guid>https://dev.to/featurepeek/7-ways-frontend-developers-can-improve-collaboration-on-ui-ux-teams-4pbj</guid>
      <description>&lt;p&gt;When building anything, there is a necessary conflict between form and function.&lt;/p&gt;

&lt;p&gt;Entirely functional products lack visual appeal and can be uninspiring to use. While products too obsessed with aesthetics can be confusing to handle, or expensive to make.&lt;/p&gt;

&lt;p&gt;As a frontend developer, you’re on the frontlines of the battle between form and function. Because you’re the bridge between visual designers and functionally-focused developers, when deadlines start closing in and feedback flies fast, you’re the one on the hook. Whether that’s fair or not, frontend developers are responsible for ensuring effective team collaboration when it comes time for final review, bug fixes, and finally, delivery.&lt;/p&gt;

&lt;p&gt;In this article, we'll show you how to balance form and function; collaborate effectively as a frontend developer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why it’s important to think like a user&lt;/li&gt;
&lt;li&gt;Speaking up early and frequently&lt;/li&gt;
&lt;li&gt;Essential tools for effective team collaboration&lt;/li&gt;
&lt;li&gt;Continuous learning makes you a better frontend developer&lt;/li&gt;
&lt;li&gt;Feedback is essential and how small 'picky' design changes can add up to a big problem&lt;/li&gt;
&lt;li&gt;How to make front end collaboration an organizational priority&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We'll also recommend some of our favorite tools and resources to make it easy, too.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Thinking like a user
&lt;/h2&gt;

&lt;p&gt;The key to achieving a good balance between form and function is to get to know your users — and how they intend to use your product.&lt;/p&gt;

&lt;p&gt;Good design and product development teams build intimate familiarity with the various personas of their users. By building empathy with your audience, you'll be able to spot issues with usability in advance and make better decisions when prioritizing new features or bug fixes.&lt;/p&gt;

&lt;p&gt;Some of the most successful startups start by developing their products to solve actual customer problems - where the customer need precedes the product itself. Regardless of the role your customers play in the creation of your product, it’s critically important to maintain direct feedback channels with your users.&lt;/p&gt;

&lt;p&gt;By seeing the issues your customers experience with your product, you'll identify where pain points occur in real life — not just in Figma or VSCode.&lt;/p&gt;

&lt;p&gt;If you are building a website or other product without ready access to customers, try one of the websites below to gain impartial insights:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.usertesting.com/"&gt;UserTesting&lt;/a&gt;&lt;/strong&gt;: Used by Facebook, eBay and Walmart, UserTesting is the quickest way to get impartial feedback from customers. You pick your target market, assign them a series of tasks to complete and get a screen recording, spoken commentary and written feedback within hours.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://usabilityhub.com/"&gt;UsabilityHub&lt;/a&gt;&lt;/strong&gt;: Amazon, Google and AirTable use UsabilityHub. They allow you to create your own surveys (first click tests, preference tests, five second tests and design surveys) and invite your own participants, or make use of the UsabilityHub panel — comprising over 170,000 users.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Remote Testing&lt;/strong&gt;: You can also use stakeholders or your existing contacts to get insights on your product. The U.S. Department of Health &amp;amp; Human Services has put together a guide on &lt;a href="https://www.usability.gov/how-to-and-tools/methods/remote-testing.html"&gt;how to test remotely here&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Speak up early and frequently
&lt;/h2&gt;

&lt;p&gt;You’re sitting in a planning meeting with the product manager, designers, management and other developers. You listen carefully, as the stories for the next sprint are discussed or longer term issues are debated.&lt;/p&gt;

&lt;p&gt;Inside, you know there are usability problems with the product — and that while these issues would be simple to fix, they’re being ignored by the rest of the team. Whose responsibility is it to speak up?&lt;/p&gt;

&lt;p&gt;This is a common pattern in many development teams, where opinions are bottled up and frustrated developers eventually move to a new job.&lt;/p&gt;

&lt;p&gt;The good news is, it doesn't have to be this way. By speaking up, you'll improve the overall quality of the product, have a say in the direction of the product and work on &lt;a href="https://medium.com/swlh/critical-soft-skills-for-software-developers-6845545f6dbd"&gt;improving your soft-skills.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As a frontend developer, you bridge both design and development. You are uniquely positioned to see when design or functional issues are harming product quality. And, as such, you should never be afraid to share your insights.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Leverage productivity tools to stay on track
&lt;/h2&gt;

&lt;p&gt;Even if you're the quiet type, preferring to focus on work rather than attend meetings, effective collaboration still requires communication. &lt;/p&gt;

&lt;p&gt;You should make a continuous effort to be aware of what the rest of your team are doing - and that means staying on top of your team's productivity tools. The benefits are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Alignment&lt;/strong&gt;: Teams that share a common vision build incredible products, as everyone is working towards the same goal.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Empathy&lt;/strong&gt;: By staying in touch, you'll understand your teammates skills sets and how you can help them be more effective.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compromise&lt;/strong&gt;: Make designers aware of technical limitations early. Cutting back an overly ambitious design around technical limitations can be soul destroying for a designer. By communicating early, you can avoid these issues before they occur, proactively compromising on form or function, as appropriate.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You should also frequently reach out to your designer during the development process. This certainly beats waiting until the end of the development cycle, to discover a design issue.&lt;/p&gt;

&lt;p&gt;Some tools we recommend are:&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.framer.com/"&gt;Framer&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Framer is a great design tool for building advanced prototypes that look and function like the final product. It works a lot like Sketch or Figma and should be familiar to both designers and developers.&lt;/p&gt;

&lt;p&gt;You can see some &lt;a href="https://www.framer.com/examples/"&gt;examples&lt;/a&gt; of what is possible with Framer here.&lt;/p&gt;

&lt;p&gt;Prototypes are a critical but often forgotten part of the development process. They allow designers to think of the product in a tangible way (rather than an abstract design) and let developers flag complexity early in the design process.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://featurepeek.com/"&gt;FeaturePeek&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;With traditional development environments, you need to deploy a branch to staging before you can get feedback, or hope the designer knows Git enough to set up a local environment. This wastes time and makes it difficult to roll out quick changes. In short, working with the design feels laborious rather than inspiring.&lt;/p&gt;

&lt;p&gt;With on-demand staging from FeaturePeek, a preview URL is generated for every pull request with built-in feedback tools, allowing you to share and get valuable feedback quickly. When collaborators do give feedback, FeaturePeek automatically records the URL they are on, and their browser metadata, making it easier to resolve issues.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Always be learning
&lt;/h2&gt;

&lt;p&gt;Frontend development is always evolving. New tools and frameworks are released almost weekly, each unlocking new possibilities to build better websites and products.&lt;/p&gt;

&lt;p&gt;As a frontend developer, it is your responsibility to continually learn and adopt new technologies, as they might make a technically difficult design more feasible.&lt;/p&gt;

&lt;p&gt;But how should a frontend developer approach continual learning? Here's what we recommend.&lt;/p&gt;

&lt;h3&gt;
  
  
  Subscribe to newsletters and RSS feeds
&lt;/h3&gt;

&lt;p&gt;Great newsletters keep you informed with no action needed. Just hit ‘subscribe’ and once a week you'll get curated insights in your inbox. Some newsletters we recommend are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://daringfireball.net/feeds/"&gt;Daring Fireball&lt;/a&gt;&lt;/strong&gt;: A sarcastic weekly forum on technology (especially Mac-related), design, and culture&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://codepen.io/spark/"&gt;The CodePen Spark&lt;/a&gt;&lt;/strong&gt;: A weekly newsletter, podcast, and community oriented around frontend development&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://javascriptweekly.com/"&gt;JavaScript Weekly&lt;/a&gt;&lt;/strong&gt;: A weekly email roundup of JavaScript news and articles&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="http://frontendweekly.co/"&gt;Frontend Weekly&lt;/a&gt;&lt;/strong&gt;: A weekly roundup of front end related articles and news&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="http://frontendfocus.co/"&gt;Frontend Focus&lt;/a&gt;&lt;/strong&gt;: A weekly email newsletter covering HTML, CSS, WebGL and other associated technologies&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://ponyfoo.com/weekly"&gt;Pony Foo Weekly&lt;/a&gt;&lt;/strong&gt;: A deeper dive into web technologies, sent every Thursday&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Join online communities
&lt;/h3&gt;

&lt;p&gt;Just lurking in online communities is fine for entertainment, but relevant online communities are a great way to stay at the cutting-edge of web technologies. Here you'll find discussions about real issues other developers are facing — and how they solved them. Become an active contributor through comments or, even better, post original content about your own trials and experiences. &lt;/p&gt;

&lt;p&gt;The top online communities for frontend development are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://news.ycombinator.com/news"&gt;Hacker News&lt;/a&gt;&lt;/strong&gt;: Ignore the dated appearance, this online community is at the forefront of software development and entrepreneurship. People post links they find interesting, then (attempt to) have civilized discussions about the topic. You can also post your projects in the 'Show' section and get feedback from the community.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://dev.to/t/frontend"&gt;Dev.to&lt;/a&gt;&lt;/strong&gt;: DEV is a "community of software developers getting together to help one another out". DEV is a unique hybrid platform, feeling like a blogging platform, forum and chatroom all at the same time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.indiehackers.com/"&gt;Indie Hackers&lt;/a&gt;&lt;/strong&gt;: If you are building a product of your own, talk about it on Indie Hackers — a community for tech entrepreneurs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.producthunt.com/makers"&gt;Product Hunt Makers&lt;/a&gt;&lt;/strong&gt;: You might have heard of Product Hunt as a place to discover new products, but they also offer a 'virtual co-working space' for 'makers'. With over 25,000 members, this is one of the fastest growing communities in the space.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Learn by doing
&lt;/h3&gt;

&lt;p&gt;Adopting an unknown technology on an urgent project is a recipe for disaster. New technologies are often poorly documented, so there’s not a lot of support if things go wrong.&lt;/p&gt;

&lt;p&gt;Instead, create a sandbox project around the new technology and try it out. By building a tiny application or tool with no repercussions on your larger project, you'll learn the new technology and discover it's limitations first-hand. &lt;/p&gt;

&lt;p&gt;Other examples of side projects you could build with a new framework are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;To-do list&lt;/strong&gt;: A basic to-do list is a great way to learn a new language. There is an on-going project on GitHub which aims to build the same to-do app in every programming language — &lt;a href="https://github.com/SimiCode/ToDOList-in-all-languages"&gt;check it out here&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Weather&lt;/strong&gt;: Try displaying the weather by using an innovative web technology. Could you use &lt;a href="https://airbnb.io/lottie/#/"&gt;Lottie&lt;/a&gt; to animate weather icons, or &lt;a href="https://developers.google.com/web/updates/tags/webar"&gt;WebAR&lt;/a&gt; to show the forecast?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Calculator&lt;/strong&gt;: A calculator is a great way to learn state management frameworks, like Redux, Mobx or Flux.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once you're ready to test your new skills, or just want to build up a portfolio of side frontent projects, check out &lt;a href="https://mintbean.io/"&gt;Mintbean&lt;/a&gt;. They host weekly hackathons with simple frontend challenges, as well as free workshops to help you upskill and improve job hunting strategies for new developers.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Get feedback often
&lt;/h2&gt;

&lt;p&gt;Feedback is a key part of effective front end collaboration.&lt;/p&gt;

&lt;p&gt;Developers should give feedback on designs as they are being created, flagging technical limitations as early as possible. Equally, designers should give continual feedback throughout the development process, too.&lt;/p&gt;

&lt;p&gt;In the past, this was difficult for both parties. Designers could not see in-progress development work and developers couldn't see design locked away in desktop applications.&lt;/p&gt;

&lt;p&gt;But in 2020, cloud design tools like Figma, Sketch or Framer include commenting tools. Designers can see in-progress development work by using on-demand staging environments when using &lt;a href="https://featurepeek.com/"&gt;FeaturePeek&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Small design changes; big impact
&lt;/h2&gt;

&lt;p&gt;Have you ever reacted badly to negative feedback, particularly 'picky' or small changes to the design?&lt;/p&gt;

&lt;p&gt;Sure, you could choose to ignore these small tweaks, but they eventually build up — taking a big toll on product quality.&lt;/p&gt;

&lt;p&gt;Remember, design is a highly skilled job that requires years of experience and specialist knowledge. If a non-programmer told you that a bug-ridden function was ‘good enough’ and ignored your feedback, you’d be frustrated too. &lt;/p&gt;

&lt;p&gt;The next time you receive feedback from a designer, react positively and consider the change as an essential part of refining the overall product. You’re all on the same team, and small positive interactions over time are what make up great work cultures!&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Change your organization
&lt;/h2&gt;

&lt;p&gt;If collaboration between designers and developers within your organization is difficult, you might need to discuss a few internal changes.&lt;/p&gt;

&lt;p&gt;Teams with effective front end collaboration:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Include developers throughout the process&lt;/strong&gt;: By including developers from the start of the project, technical limitations can be considered and overcome at the start of the design process — rather than worked-around later.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Choose balanced project managers&lt;/strong&gt;: Some project managers have tunnel-vision, focusing too much on one particular discipline, such as business, design or technical considerations. This works well for highly specialized teams, but is a blocker when front end collaboration is needed. A well-rounded project manager understands all disciplines involved in the project; facilitating collaboration and compromise.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Work closely&lt;/strong&gt;: Where possible, designers and developers should have tight, frequent feedback loops. Remote teams can use video chats and screen sharing to help with this.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Avoid jargon&lt;/strong&gt;: Just like developers, designers have their own jargon. A designer might ask for more kerning, tracking and leading and get blank stares from a developer. A developer might ask for the 'letter-spacing' of a H3 and get the same blank stare back. Instead of relying on technical language, encourage your organization to adopt tools for visual communication — a screenshot, Loom recording or Figma design is much clearer than a written or verbal explanation alone.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We hope these tips help you work more collaboratively with designers (and fellow developers!) to build high-quality products.&lt;/p&gt;

&lt;p&gt;In 2020, it is not enough for a frontend developer to just write code. You are responsible for effective frontend collaboration. Truly exceptional frontend developers bridge the gap between design and development, helping the designers and developers on their team to build the best possible product.&lt;/p&gt;

&lt;h2&gt;
  
  
  Learn More
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://featurepeek.com/"&gt;FeaturePeek&lt;/a&gt; deployment previews are the easiest way for UI/UX teams to collaborate on frontend code.&lt;/p&gt;

&lt;p&gt;FeaturePeek provides collaborative frontend staging environments on-demand, so you can collect implementation feedback from stakeholders sooner. FeaturePeek works with all frameworks and hosting providers, so you can keep your tools and you’re never locked in.&lt;/p&gt;

&lt;p&gt;Learn more about &lt;a href="https://featurepeek.com/product/teams"&gt;FeaturePeek Teams&lt;/a&gt;, our collaborative tool that supercharges deployment previews for development teams.&lt;/p&gt;

</description>
      <category>career</category>
      <category>devops</category>
      <category>ux</category>
      <category>webdev</category>
    </item>
    <item>
      <title>It's Not Design Culture Anymore, It's DevOps Culture. And We Should Adjust Accordingly.</title>
      <dc:creator>Brad Johnson</dc:creator>
      <pubDate>Wed, 28 Oct 2020 20:59:39 +0000</pubDate>
      <link>https://dev.to/featurepeek/it-s-not-design-culture-anymore-it-s-devops-culture-and-we-should-adjust-accordingly-1h8h</link>
      <guid>https://dev.to/featurepeek/it-s-not-design-culture-anymore-it-s-devops-culture-and-we-should-adjust-accordingly-1h8h</guid>
      <description>&lt;p&gt;&lt;em&gt;Have you noticed that a lot of your friends who used to be Designers are now UX Architects?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Did their jobs really change? Or is their output being used and valued differently by the organizations that employ them? As a mainstream culture, we've really only become comfortable with design-thinking over the &lt;a href="https://www.interaction-design.org/literature/article/design-thinking-get-a-quick-overview-of-the-history"&gt;last 50-75 years&lt;/a&gt;.  Today, designers are more important than ever to facilitating the product development process. But designers' roles are undergoing a critical transformation.&lt;/p&gt;

&lt;p&gt;In the modern workplace, design culture is everywhere and it's had a lasting impact on the way organizations function. But while we've been paying attention to one very important way that work culture has changed, we have been potentially ignoring another, even more significant shift. Software development, and increased demand for software developers by both technology and more more traditional businesses, has shifted the culture of our workplaces and changed our expectations for how work gets done.&lt;/p&gt;

&lt;p&gt;Like designers, software developers have never been more in demand. Today they can command high salaries and frequently can improve their prospects by 50% or more simply by moving jobs. Companies are now employing recruiters whose sole focus are attracting technical talent. And more developers are represented in business and technical leadership positions than ever before. These are relatively recent changes, but they're already beginning to affect our workplace cultures. In this blog post, we'll explore how increased the increasing gravity of developers is shifting the balance of our workplace into becoming &lt;a href="https://www.atlassian.com/team-playbook/examples/devops-culture#:~:text=DevOps%20culture%20is%20all%20about,%2C%20and%20%22the%20business%22."&gt;DevOps cultures&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Using the mainstreaming of "design thinking" a template, we'll look at some design collaboration tools that have been adopted by mainstream businesses. Then, we'll look at some developer-centric collaboration and productivity tools and discuss how their adoption could impact the ways software development teams and entire businesses will work together in the future.&lt;/p&gt;

&lt;h2&gt;
  
  
  How DesignOps Tools Changed the Way We Work
&lt;/h2&gt;

&lt;p&gt;Designers have a whole assortment of tools at their disposal. But most of the tools that designers use can be distilled into one of two categories. The first type are design tools, in that they are the bits of software like &lt;a href="https://www.figma.com/"&gt;Figma&lt;/a&gt;, &lt;a href="https://www.sketch.com/"&gt;Sketch&lt;/a&gt;, and &lt;a href="https://www.adobe.com/products/xd.html"&gt;Adobe XD&lt;/a&gt;, where the primary purpose is to enable the act of designing and creating. The second type of design tool is one that helps designers communicate and collaborate with other stakeholders, sometimes referred to as "DesignOps."&lt;/p&gt;

&lt;p&gt;&lt;a href="https://airbnb.design/designops-airbnb/"&gt;AirBnB&lt;/a&gt; explains their need for DesignOps tools, as their product teams are "working daily across so many disciplines, from Engineering to Product Management, Research, Content Strategy and an array of Design specialties, every little overhead in the transfer of information compounds. Inversely, every optimization and positive connection significantly lowers friction for everyone." DesignOps tools ensure that cross-functional product design teams have visibility into each others progress, and removes friction by enabling each discipline to contribute, in context, whenever is convenient (within the project schedule).&lt;/p&gt;

&lt;p&gt;Tools like &lt;a href="https://zeplin.io/"&gt;Zeplin&lt;/a&gt; help designers make their design systems shareable and accessible to developers and other designers on their team. In other words, the Zeplin app helps with the people-side of design operations. This is why it's helpful to view DesignOps tools as platforms for facilitating team collaboration. Because DesignOps tools make information accessible, teams can rely less on in-person or virtual conferencing more productively allocate their time resources.&lt;/p&gt;

&lt;p&gt;The benefits of DesignOps tools are clear, so much so that traditional design tools are incorporating collaboration features as part of their &lt;a href="https://blog.adobe.com/en/2019/09/19/xd-roadmap-future-plans-recent-features.html#gs.jq9x96"&gt;longterm product roadmaps&lt;/a&gt;. In the same way that introducing collaborative features will enable traditional design tools to adapt to the requirements of DesignOps culture, businesses will increasingly turn to collaborative design experiences to enable their internal design processes and procedures.&lt;/p&gt;

&lt;h2&gt;
  
  
  How DevOps Tools are Changing the Way We Work
&lt;/h2&gt;

&lt;p&gt;Like design tools, developer tools also come in many flavors. Traditionally, developer tools have focused on enabling the act of software development, as in coding. These take the forms of text editors like &lt;a href="https://www.sublimetext.com/"&gt;Sublime&lt;/a&gt; and IDEs like &lt;a href="https://code.visualstudio.com/"&gt;VS Code&lt;/a&gt;.  But a developer's everyday experience isn't just limited to what gets deployed. Like designers, developers also rely on tools to help them collaborate, make their work accessible to others, and ultimately deploy to production. These tools are commonly described as having to do with DevOps.&lt;/p&gt;

&lt;p&gt;DevOps is really just a way to describe the design, development, deployment, and continuous operation of software code, including all the tools and mechanisms that support those processes. &lt;a href="https://www.atlassian.com/team-playbook/examples/devops-culture#:~:text=DevOps%20culture%20is%20all%20about,%2C%20and%20%22the%20business%22."&gt;Atlassian&lt;/a&gt; warns that DevOps is "not a matter of simply adopting agile planning or automated testing or continuous delivery." Instead, they describe that "DevOps culture is all about a shared understanding between developers and operations, and sharing responsibility for the software they build."&lt;/p&gt;

&lt;p&gt;As developers become increasingly central to business operations, the tools that they use to collaborate with peers and non-developers on product teams will play an outsized role in facilitating everyday business operations. You can already see evidence of this now. For example, even if you're a non-developer you feel the impact of a &lt;a href="https://slack.com/"&gt;Slack&lt;/a&gt; or &lt;a href="https://zoom.us/"&gt;Zoom&lt;/a&gt; outage. And if you are a developer, you know exactly how (un)productive your day is when &lt;a href="https://www.theverge.com/2020/6/29/21306674/github-down-errors-outage-june-2020"&gt;GitHub is down&lt;/a&gt;. Just like these examples, new tools are being created everyday to support DevOps and remove the daily frictions experienced by software developers. Ultimately, these are the tools that will deliver immense future value.&lt;/p&gt;

&lt;p&gt;Here are the main types of DevOps tools that have already become, or will become, ubiquitous for modern software development teams:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;⚙️ Platform-as-a-Service (PaaS) and Serverless&lt;/strong&gt;&lt;br&gt;
There are lots of ways to build and host your web application. Platform-as-a-Service providers like &lt;a href="https://www.netlify.com/"&gt;Netlify&lt;/a&gt; and &lt;a href="https://www.heroku.com/"&gt;Heroku&lt;/a&gt; provide a more streamlined user experience compared with &lt;a href="https://aws.amazon.com/"&gt;AWS&lt;/a&gt;, &lt;a href="https://azure.microsoft.com/en-us/"&gt;Microsoft Azure&lt;/a&gt;, or &lt;a href="https://cloud.google.com/"&gt;Google Cloud&lt;/a&gt;, while all four provide scalable infrastructure services to support applications of all sizes. &lt;a href="https://aws.amazon.com/serverless/"&gt;Serverless&lt;/a&gt; architectures take the notion of abstracting-away infrastructure a step further, and adopt an overall philosophy of offloading all (or as much as possible) of the infrastructure responsibilities to third-party services.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;🚧 Deployment Staging and Visual QA&lt;/strong&gt;&lt;br&gt;
Every software development process that has a visual component or user interface will have some sort of visual review process. Web platforms like Netlify and Heroku have native deployment preview solutions to preview UI/UX work. &lt;a href="https://featurepeek.com/"&gt;FeaturePeek&lt;/a&gt; is a developer tool that makes deployment previews collaborative, so designers and other non-engineer team members can &lt;a href="https://featurepeek.com/blog/benefits-of-automatic-staging-environments/"&gt;easily comment and leave annotations&lt;/a&gt; on the in-progress UI/UX.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;🚢 Containerization and Deployment&lt;/strong&gt;&lt;br&gt;
Containers, like those used in &lt;a href="https://www.docker.com/"&gt;Docker&lt;/a&gt;, can make it easier to operate your application, especially when dealing with complex deployment environments. Services like &lt;a href="https://kubernetes.io/"&gt;Kubernetes&lt;/a&gt; can help you orchestrate and monitor your containers. Some of the benefits to adopting a container-based architecture include the ability to build once, run anywhere - a self contained process, and the freedom to package absolutely everything needed to run your application in a convenient way. Containers are modular, interoperable, portable, reproducible, and scalable. So it's no surprise that while containers are not used everywhere, they're quickly getting there.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;🔄 Continuous Integration and Deployment (CI/CD)&lt;/strong&gt;&lt;br&gt;
Integration is the act of checking that the code you just wrote didn't break something you weren't working on directly. Continuous integration, or CI, is doing this continuously to make sure issues are caught and addressed incrementally rather than all at once. Tools like &lt;a href="https://travis-ci.org/"&gt;Travis CI&lt;/a&gt; and &lt;a href="https://circleci.com/"&gt;CircleCI&lt;/a&gt; are good bets when considering continuous integration. Deployment is the process of launching your code onto the server, and there are lots of different ways to accomplish this. You'll want to think about choosing an automation server like &lt;a href="https://www.jenkins.io/"&gt;Jenkins&lt;/a&gt; and whether you'll need a delivery platform like &lt;a href="https://spinnaker.io/"&gt;Spinnaker&lt;/a&gt;. Together, CI/CD is the collection of integration checks and test run to ensure code properly integrates, along with the steps needed to safely and reliably deploy your code onto your server environment.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;🌡️ Performance and reliability monitoring&lt;/strong&gt; &lt;br&gt;
In order to effectively operate a software application, you need to be able to troubleshoot when issues occur. But before you can identify a fix, first you need to know what happened. Logging is the continuous recording of application events, so that developers can assess and problem-solve issues as they occur. But logging itself is a passive activity. Monitoring answers questions about how the system is running, and involves continuously observing a set of KPIs about performance and resource usage. &lt;a href="https://www.datadoghq.com/"&gt;Datadog&lt;/a&gt;, &lt;a href="https://www.appdynamics.com/"&gt;AppDynamics&lt;/a&gt;, and &lt;a href="https://newrelic.com/"&gt;New Relic&lt;/a&gt; are some of the leading providers of monitoring solutions.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Learn More
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://featurepeek.com/"&gt;FeaturePeek&lt;/a&gt; brings DesignOps and DevOps together. The easiest way to set up on-demand frontend staging environments, FeaturePeek creates a deployment preview of your frontend every time you open a pull request. A drawer overlay makes it easy for your reviewers to leave comments, take screenshots with annotations, capture screen recordings, create tickets on popular bug-tracking platforms, and more.&lt;/p&gt;

&lt;p&gt;FeaturePeek works with static sites and sites containerized with Docker. Best of all, you don’t have to migrate to a new cloud ecosystem. Whether your company’s website is hosted on AWS, Google Cloud, Heroku, Digital Ocean, whatever — since FeaturePeek is infrastructure-agnostic, you can use FeaturePeek no matter who your hosting provider is.&lt;/p&gt;

&lt;p&gt;Try the &lt;a href="https://dashboard.featurepeek.com/"&gt;2-week free trial&lt;/a&gt; to see how FeaturePeek can improve your team’s development productivity.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>productivity</category>
      <category>design</category>
      <category>ux</category>
    </item>
    <item>
      <title>The benefits of on-demand staging environments</title>
      <dc:creator>Jason Barry</dc:creator>
      <pubDate>Mon, 19 Oct 2020 18:28:55 +0000</pubDate>
      <link>https://dev.to/featurepeek/the-benefits-of-on-demand-staging-environments-1fjj</link>
      <guid>https://dev.to/featurepeek/the-benefits-of-on-demand-staging-environments-1fjj</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Test features in isolation. Test releases as a whole. &lt;/p&gt;

&lt;p&gt;You know the drill: it’s the night before a release, and your dev team is scrambling to address last-minute feedback before deploying to production. Most of the feedback surrounds tiny changes that are trivial to fix -- but some of the feedback requires larger, substantial change. These long feedback loops reveal a more fundamental issue of communication breakdown. This should have been discussed earlier. Now you’re left wondering if it’s worth delaying the release to help ensure the stability of the build.&lt;/p&gt;

&lt;p&gt;Sound familiar? I experienced this first-hand while working at a small (~6 engineers, ~2 designers, 1 PM) B2B SaaS startup. The product team would give feedback about the latest build on staging with only a day or two left in the sprint, causing a last-minute rush by the dev team to implement those changes. Corners were cut to meet deadlines, and hastily-written workarounds were rarely refactored, adding to the backlog of technical debt as the next sprint was already underway.&lt;/p&gt;

&lt;p&gt;If you experience these symptoms during the development of your product, then &lt;strong&gt;chances are that your team doesn’t have the right tools at its disposal.&lt;/strong&gt; It turned out that the product team left feedback late because they &lt;em&gt;didn’t have a stable URL where they could verify UI/UX&lt;/em&gt; until changes were on our staging server.&lt;/p&gt;

&lt;p&gt;We needed a way to get stakeholder feedback earlier in the development cycle -- well before features landed on staging.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a staging environment?
&lt;/h2&gt;

&lt;p&gt;A staging environment is a replica of your production environment. There shouldn't be any significant differences between your staging environment and your live website, with one notable exception: the staging environment is private. &lt;/p&gt;

&lt;p&gt;Think of staging as the ultimate quality assurance check, where you can make sure everything works in as close to launch conditions as possible. You'll catch bugs, avoid costly downtime, and give your developers the confidence to take risks. &lt;/p&gt;

&lt;h2&gt;
  
  
  How do you deploy to a staging environment?
&lt;/h2&gt;

&lt;p&gt;The traditional deployment process to a single staging environment usually has four steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The developer builds and tests&lt;/strong&gt; in a local environment, running on their machine.&lt;/li&gt;
&lt;li&gt;Once they are satisfied with their work, the developer pushes their changes to a branch on the git repo, where they &lt;strong&gt;open a pull request&lt;/strong&gt;. Continuous Integration runs automated tests — like linting, type checking, and unit tests — to catch any issues. If issues are found, the developer goes back to step &lt;/li&gt;
&lt;li&gt;Once Continuous Integration passes, the developer's &lt;strong&gt;peers conduct a code review&lt;/strong&gt;. This is necessary to gain consensus among your team that the proposed changes are greenlighted to be merged into the codebase. Not only should reviewers look at the code, but they should run the code to confirm that the code operates as intended. The developer goes back to step 1 to address any feedback left by reviewers. &lt;/li&gt;
&lt;li&gt;Once the changes are deemed copacetic by automated tests and peer reviewers, the developer's branch is &lt;strong&gt;ready to be merged into the main branch&lt;/strong&gt;. If Continuous Delivery is enabled, then merging to the main branch kicks off an automated task to &lt;strong&gt;deploy the changes in the pull request to your company's internal staging server&lt;/strong&gt;. &lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;Depending on how your DevOps team configures your git repo's webhooks, merging to the main branch may trigger additional steps. If your org follows the practices of Continuous Deployment, merging to master could roll the latest changes out to production automatically (hopefully behind a feature flag). Every DevOps team is different — check with yours to see which practice your company follows. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why multiple staging environments instead of only one?
&lt;/h2&gt;

&lt;p&gt;Instead of being constrained by all upcoming changes landing on a single server, you could have temporary, ephemeral environments that exist solely for the purposes of hosting the build of a given pull request. This is what we mean when we say that you should &lt;em&gt;test features in isolation&lt;/em&gt;. Giving every branch in your git repo a dedicated environment is very freeing for both your developers and reviewers. &lt;/p&gt;

&lt;p&gt;What you might not is realize that this comes with more benefits than just testing features.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code review won’t block gathering product feedback
&lt;/h2&gt;

&lt;p&gt;With a single staging server, your code won't be deployed until code review passes, and you won't have a link to share with other people on your team. If you want to double-check with a UI/UX designer that the animation you made is up to snuff, too bad — you're gated upon code review passing before you can Slack over a link. &lt;/p&gt;

&lt;p&gt;If any stages above fail (red), you have to go back to square one. This can be costly if you’ve already performed code review, a time-consuming operation.&lt;/p&gt;

&lt;p&gt;But UI/UX designers don't care about the quality of the code — so why should code review be a bottleneck for gathering UX feedback? Ideally, you'd be able to get their opinion before asking your dev peers to give your code a once-over. That way, you'll eliminate an extra speed bump when shipping your feature. &lt;/p&gt;

&lt;p&gt;Ephemeral staging servers that spin up on demand allow for product feedback and code review to occur before (or at the same time) as code review. If there’s something that needs to be addressed, going back to square one isn’t very detrimental, since not much time has passed. You eliminate a speed bump by batching product feedback with code review, rather than having one be a dependency of the other.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prevent an integration warzone
&lt;/h2&gt;

&lt;p&gt;Sure, your new feature that you've worked hard on works now — but since a single staging environment is the landing pad for your entire engineering team's upcoming changes, a developer on your team may inadvertently push code that breaks what you wrote. Even now that you have an internal link you can share with a non-technical stakeholder, &lt;strong&gt;there are no guarantees that the link will continue to work&lt;/strong&gt;, since it is actively being integrated with!&lt;/p&gt;

&lt;p&gt;While a single staging environment is useful for testing a release as a whole, &lt;strong&gt;features should be tested in isolation&lt;/strong&gt;. This means that an environment's purpose should be dedicated to testing the functionality of a single feature, rather than a collection of many features. Save testing the collection of features for your QA server, after you’ve already tested each feature individually.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lower the barrier for running peers' code
&lt;/h2&gt;

&lt;p&gt;Developers face a large amount of context switching when they are asked to review someone else's code. The process is unnecessarily interruptive, and looks something like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Stop what you’re doing &lt;/li&gt;
&lt;li&gt;Stash any unstaged changes&lt;/li&gt;
&lt;li&gt;Fetch from origin&lt;/li&gt;
&lt;li&gt;Checkout their branch&lt;/li&gt;
&lt;li&gt;Install dependencies (and potentially restart your development server)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;➡️ Actually verify the new feature and provide feedback&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Checkout your original branch&lt;/li&gt;
&lt;li&gt;Pop your git stash&lt;/li&gt;
&lt;li&gt;Reinstall dependencies (and potentially restart your development server)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;With on-demand staging environments, on the other hand, &lt;strong&gt;the running branch is waiting for you to verify and provide feedback&lt;/strong&gt;. Developers can jump into the deployment preview straight from the pull request without needing to checkout files, install dependencies, restart their development server, or change anything about their local environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Avoid redundant code reviews
&lt;/h2&gt;

&lt;p&gt;The point of getting feedback is to make more implementation changes that address the issues raised in the feedback session. The problem is that this will require another code review! Even though the proposed changes the second time around are (hopefully) small, your reviewers will experience déjà vu because they are now going over the same lines of code for the same feature implementation.&lt;/p&gt;

&lt;p&gt;With multiple staging environments at your disposal, you could spin up a preview environment for your designers to critique while your pull request is still open. You wouldn’t need to request a code review from your developer peers until your designer gives the thumbs up ahead of time.&lt;/p&gt;

&lt;h2&gt;
  
  
  More opportunities for testing
&lt;/h2&gt;

&lt;p&gt;On-demand staging environments can be configured to be accessible behind a shared URL, which unlocks a wide range of testing and quality assurance opportunities.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cross-browser testing&lt;/strong&gt;: Ensure your product or website works perfectly on a wide range of browsers and devices.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Accessibility testing&lt;/strong&gt;: Run accessibility tests to ensure your content is accessible to individuals with disabilities.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User testing&lt;/strong&gt;: Create a pool of test users or use a crowd-testing platform to discover usability issues before you launch.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Avoid environment drift
&lt;/h2&gt;

&lt;p&gt;Single staging environments are often configured once and left to decay, becoming a DevOps chore. This leads to drift between the staging and production environments, as similarities between the two decrease. &lt;strong&gt;This increases the risk of bugs appearing in either staging or production&lt;/strong&gt;, which makes bugs difficult to reproduce. &lt;/p&gt;

&lt;p&gt;Examples of these drifts include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Environment and configuration files getting modified by unsuccessful staging deploys, leading to extraneous or incorrectly named settings.&lt;/li&gt;
&lt;li&gt;Time-sensitive security vulnerability updates being applied to production in a rush, leaving staging several versions behind.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Whereas your production environment is under constant care and attention from the DevOps team, an infrequently used staging environment is lower on the priority list.&lt;br&gt;
This can lead to an unreliable staging environment, which blocks your development team from launching new features.&lt;/p&gt;

&lt;h2&gt;
  
  
  More stakeholder engagement
&lt;/h2&gt;

&lt;p&gt;In the past, stakeholders didn’t get to use the finished product until it was live. Instead, they got a brief scripted demo at the end of the sprint.&lt;/p&gt;

&lt;p&gt;By giving stakeholders access to your staging environment, they can help with the quality assurance process and ensure that the development work completed meets their expectations. This saves time and prevents mistakes from accidentally shipping.&lt;/p&gt;

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

&lt;p&gt;With on-demand staging environments, developers can create as many staging environments as they require without asking DevOps to configure a new environment. Developers love it because they have the capability to spawn new servers, and DevOps loves it because they don’t need to field manual tasks of spinning up a server only for it to be taken down shortly afterwards. &lt;/p&gt;

&lt;h2&gt;
  
  
  Save your company time and money
&lt;/h2&gt;

&lt;p&gt;Single staging environments are typically available 24/7 on a dedicated server or virtual machine. This is a waste of resources that could otherwise be used for production.&lt;/p&gt;

&lt;p&gt;Furthermore, if you have several development teams, the &lt;strong&gt;single staging environment can become a bottleneck&lt;/strong&gt;. Teams must wait for a staging environment to become available, waiting for other teams' quality assurance processes to complete. This could waste days of developer productivity and encourage teams to skip straight to production, losing all the benefits of an effective staging environment. &lt;/p&gt;

&lt;p&gt;Each on-demand staging environment, on the other hand, is only online for the duration of the pull request. When the PR gets merged or closed, the environment gracefully shuts down, so you only pay for what you use.&lt;/p&gt;

&lt;h2&gt;
  
  
  Single vs. on-demand staging environments
&lt;/h2&gt;

&lt;p&gt;Instead of the single staging environment decaying while it waits for someone to use it, &lt;strong&gt;an on-demand staging environment is created dynamically, triggered by a CI/CD pipeline&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;This means developer teams can have access to staging whenever they need it, simply by opening a pull request. As you’d imagine, this boosts productivity and encourages developers to use staging environments, reducing the chances of costly production bugs. Once a developer is done with the staging environment, the staging environment is destroyed, along with any configuration, environment, or installation inconsistency. &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Single staging environment&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;On-demand staging environments&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Developer self-serve&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Low maintenance&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Prevents redundant code reviews&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Can test features in isolation&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Can link to a build while pull request is still open&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Number of environments&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Unlimited&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost&lt;/td&gt;
&lt;td&gt;Pre-allocated&lt;/td&gt;
&lt;td&gt;Allocated on demand and reclaimed automatically&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Having said that, &lt;strong&gt;you should still have a staging server where you can do QA before rolling to production&lt;/strong&gt;. This is where you should do a final spot-check to ensure that everything is working as expected before going live. The difference is that the purpose of this server is to test the release as a whole, rather than each feature on its own. How do the new features operate together? If there’s a bug found, which pull request and which lines of code introduced the bug? These questions are much easier to answer when features are tested while the pull request is still open.&lt;/p&gt;

&lt;h2&gt;
  
  
  Shorten cross-functional feedback loops with on-demand staging environments
&lt;/h2&gt;

&lt;p&gt;As a front-end developer, being able to dynamically create a dedicated environment for an unlimited number of branches is a very powerful feeling. I can control my own network of machines without needing to ask for cycles from DevOps! The asynchronous nature of asking for feedback on a fleet of ephemeral environments is liberating -- I know that each deployment will be waiting for my reviewer exactly how I left it. And while I review my peers’ code, I can visually review the build alongside it without having to check out their branch locally. &lt;/p&gt;

&lt;p&gt;It’s not only helpful to the developers on my team, but also helpful to the non-technical stakeholders too -- they get a lens into the engineering process, and can voice their opinions while the implementation details are still fresh in the developer’s mind. &lt;/p&gt;

&lt;p&gt;If your organization is struggling with shipping features (on time) that meets everyone’s acceptance criteria, the solution may lie in tooling. Notice where and when the speed bumps occur -- handoff, development, code review, etc -- to help identify bottlenecks. Ask yourself whether your single staging server is a limiting factor during your team’s development processes. &lt;/p&gt;

&lt;h2&gt;
  
  
  Learn more
&lt;/h2&gt;

&lt;p&gt;The easiest way to set up on-demand frontend staging environments is with &lt;a href="https://featurepeek.com" rel="noopener noreferrer"&gt;FeaturePeek.&lt;/a&gt; FeaturePeek creates a deployment preview of your frontend every time you open a pull request. A drawer overlay is added on top that &lt;strong&gt;makes it easy for your reviewers to leave feedback&lt;/strong&gt; by allowing them to leave comments, take screenshots with annotations, capture screen recordings, create tickets on popular bug-tracking platforms, and more.&lt;/p&gt;

&lt;p&gt;FeaturePeek works with static sites and sites containerized with Docker. Best of all, you don't have to migrate to a new cloud ecosystem. Whether your company's website is hosted on AWS, Google Cloud, Heroku, Digital Ocean, whatever — since FeaturePeek is infrastructure-agnostic, &lt;strong&gt;you can use FeaturePeek no matter who your hosting provider is&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Try the &lt;a href="https://dashboard.featurepeek.com" rel="noopener noreferrer"&gt;2-week free trial&lt;/a&gt; to see how FeaturePeek can improve your team's development productivity.&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>devops</category>
      <category>productivity</category>
      <category>uiux</category>
    </item>
    <item>
      <title>Pull requests are the new design handoffs</title>
      <dc:creator>Brad Johnson</dc:creator>
      <pubDate>Wed, 30 Sep 2020 23:12:53 +0000</pubDate>
      <link>https://dev.to/featurepeek/pull-requests-are-the-new-design-handoffs-458o</link>
      <guid>https://dev.to/featurepeek/pull-requests-are-the-new-design-handoffs-458o</guid>
      <description>&lt;p&gt;The line between UI/UX designer and developer grows blurrier each year. Every day, more designers are leaning into software development and learning to code. This has led to a new class of "full-stack designers." The &lt;a href="https://flatironschool.com/blog/what-is-full-stack-design/#:~:text=Full%2DStack%20Design%2C%20Full%20Stop,Still%20do%2C%20actually."&gt;Flatiron School&lt;/a&gt; describes a full-stack designer as one with the ability to "single-handedly tackle every layer of software development." With the ability to produce and communicate with both technical and non-technical stakeholders, full-stack designers are exceptionally valuable for cross-functional teams.&lt;/p&gt;

&lt;p&gt;Similarly, design-literacy has become table stakes for many developers. Most UI/UX developers work closely with designers, and a certain aesthetic sensibility is required to produce polished UI/UX work. So it's no surprise that many UI/UX developers find themselves picking up tools and skills that are more typically associated with designers in the course of their regular work. Additionally, smaller teams lacking available design resources may turn to frontend developers, or even product managers, to take on additional design responsibilities in support of existing projects.&lt;/p&gt;

&lt;p&gt;Job roles will continue to blend, and UI/UX developers will require new tools to better collaborate with increasingly cross-functional teams. There will always be a need for practical tools that make the act of coding easier, but it's a new class of social, collaborative developer tools that promise to play an outsized role in the workplace of the future.&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ The Collaboration Toolbox: What tools UI/UX teams use to collaborate
&lt;/h2&gt;

&lt;p&gt;In the past five or so years, we've seen an explosion of collaboration tools to support professional teams. While the list of collaboration tools may be endless, when it comes to UI/UX teams, they all boil down into four basic categories:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Communication tools 📺&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not much is getting done if your team can't communicate. Out of sheer necessity, most teams already have this category squared away, for better or worse. These are your big names like &lt;a href="https://zoom.us/"&gt;Zoom&lt;/a&gt; and &lt;a href="https://slack.com/"&gt;Slack&lt;/a&gt;, but there are also some smaller startups like &lt;a href="https://www.loom.com/"&gt;Loom&lt;/a&gt;, &lt;a href="http://tandem.chat/"&gt;Tandem&lt;/a&gt;, and others making moves in the team communication space.&lt;/p&gt;

&lt;p&gt;You can check out &lt;a href="https://featurepeek.com/blog/the-wfh-edition-our-ultimate-remote-working-stack-for-frontend-developers/"&gt;this blog post&lt;/a&gt;, if you'd like to learn more about our thoughts on some of the leading communication apps available to development teams today.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Project management tools 📊&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Project management software helps to ensure that requirements are clearly communicated and contributors stay on top of their tasks. Project or product managers are responsible for aligning stakeholders so that designers and developers can focus on executing the project objectives.&lt;/p&gt;

&lt;p&gt;Whichever tools you choose, the point of adopting project management software is to facilitate the design and implementation conversations that happen as a product is being developed. There are a ton of great options to choose from like &lt;a href="https://clubhouse.io/"&gt;Clubhouse&lt;/a&gt;, &lt;a href="https://trello.com/en-US"&gt;Trello&lt;/a&gt;, &lt;a href="https://monday.com"&gt;Monday.com&lt;/a&gt;, &lt;a href="https://basecamp.com/"&gt;Basecamp&lt;/a&gt;, &lt;a href="https://asana.com/"&gt;Asana&lt;/a&gt;, and &lt;a href="https://www.atlassian.com/software/jira"&gt;JIRA&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Before investing time in a new project management solution, consider choosing one that integrates with any important internal tools to minimize headaches down the road.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Design collaboration tools 🎨&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not until the last few years have a crop of upstarts begun to unseat the incumbent Adobe, for the hearts and minds of designers. Today, there is a triumph of options when it comes to collaborative design software and they all have their unique offerings.&lt;/p&gt;

&lt;p&gt;Designer-centric tools like &lt;a href="https://www.figma.com/"&gt;Figma&lt;/a&gt;, &lt;a href="https://www.sketch.com/"&gt;Sketch&lt;/a&gt;, &lt;a href="https://www.invisionapp.com/"&gt;InVision&lt;/a&gt;, &lt;a href="https://www.adobe.com/products/xd.html"&gt;Adobe XD&lt;/a&gt;, and &lt;a href="https://balsamiq.com/"&gt;Balsamiq&lt;/a&gt; all go various lengths to make wireframes and other handoffs tolerable for UI/UX developers. Handoff tools like &lt;a href="https://zeplin.io/"&gt;Zeplin&lt;/a&gt; make it easy for developers to interpret wireframes and must straddle both the design and development worlds.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Developer collaboration tools  💻&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The universe of devtools is myriad and comes with all sorts of solutions for problems that developers may face in the course of their work. But for collaborating with a team, there aren't as many options as you'd think.&lt;/p&gt;

&lt;p&gt;Version management platforms have achieved outsized importance in developer life. &lt;a href="https://github.com/"&gt;GitHub&lt;/a&gt;, and to somewhat lesser degrees, &lt;a href="https://about.gitlab.com/"&gt;GitLab&lt;/a&gt;, &lt;a href="https://bitbucket.org/"&gt;Bitbucket&lt;/a&gt;, and others are the de facto public forums for software collaboration. Organizations large and small rely on these platforms to organize and document their software code.&lt;/p&gt;

&lt;p&gt;Then comes the challenge of previewing, and more importantly collaborating on, still-in-development projects. Some web platforms like &lt;a href="https://www.netlify.com/"&gt;Netlify&lt;/a&gt; offer deployment previews, but there's no way to collaborate or leave feedback in context, within the preview itself. That's left to Slack, Zoom calls, or email.&lt;/p&gt;

&lt;p&gt;Team-focused tools like &lt;a href="https://featurepeek.com/"&gt;FeaturePeek&lt;/a&gt; prioritize the collaboration aspect and make it easy to review and leave feedback on deployment previews. Reviewers can record screens, annotate screenshots, and even review responsive layouts on multiple devices.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  🤦‍♀️ The Collaboration Conundrum: What tools do my UI/UX team really need?
&lt;/h2&gt;

&lt;p&gt;With so many tools, and so much cross-pollination occurring between developers and designers today, it's difficult to determine which tools your UI/UX team really needs to communicate and collaborate together.&lt;/p&gt;

&lt;p&gt;In a design process, it's often the handoff points where team communication can breakdown. Consider:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What are your handoff points during the product design and development cycle?&lt;/li&gt;
&lt;li&gt;What tools do you use to facilitate collaboration during these handoffs?&lt;/li&gt;
&lt;li&gt;What are the potential communication gaps during your handoffs?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By identifying the handoff points between different roles on your team, you can begin targeting the tools necessary to keep your team on track. Remember, the initial exchange of wireframes isn't your only handoff. Designs and prototype versions are constantly being handed off between team members for development, review, and QA. While some handoffs may already have established tools and processes (ex. handing-off wireframes), others may lack an established process or tool (ex. doing visual QA for pull requests).&lt;/p&gt;

&lt;h2&gt;
  
  
  ↕️ Pull Requests: It's not just the deployment preview that's important
&lt;/h2&gt;

&lt;p&gt;Design handoff tools are great, but why aren't we talking about developer handoffs? Tools like &lt;a href="https://zeplin.io/"&gt;Zeplin&lt;/a&gt; are great for ensuring developers have convenient access to the information within wireframes. But how do non-engineers engage with &lt;a href="https://featurepeek.com/blog/why-are-so-many-orgs-slow-to-approve-pull-requests/"&gt;pull requests&lt;/a&gt;, and collaborate as a team on constantly changing code previews?&lt;/p&gt;

&lt;p&gt;There are many good solutions if your end goal is simply the deployment preview itself. For example, if you're a &lt;a href="https://www.netlify.com/tags/deploy-previews/"&gt;Netlify&lt;/a&gt; user, they have a reasonable deploy preview tool. Similarly, there are available tools like &lt;a href="https://www.tugboat.qa/"&gt;Tugboat&lt;/a&gt;, and a few others. If all you want is a staging environment for your pull requests, then most solutions are essentially equal.&lt;/p&gt;

&lt;p&gt;But the reality is that &lt;em&gt;real people&lt;/em&gt; are collaborating on this deployment preview, and they need to do more than just look at it. That's why the actual deployment preview itself isn't the point. &lt;em&gt;It's the collaboration that matters.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Why the next killer enterprise app will be a developer collaboration tool
&lt;/h2&gt;

&lt;p&gt;Like Slack, GitHub, Zoom, and Clubhouse, it's the tools that change the way we communicate our thoughts and ideas with others that change the ways we work. Each of these applications helps us communicate and organize with our own teams. But none of these tools extends fully into the world of software development. As developers become a larger demographic in the workplace, collaboration tools that enable the way developers work, and make that workflow accessible to others will find eager adoption.&lt;/p&gt;

&lt;p&gt;This is why developer-focused collaboration tools like &lt;a href="https://www.featurepeek.com"&gt;FeaturePeek&lt;/a&gt; are so unique and exciting. Developer collaboration tools bridge the world of pull requests and GitHub into an experience that is accessible for all (especially non-engineering) users, and ultimately into a more social context altogether. Just like design handoff software does for designers, and project management software does for product managers, developers also need their own tool to present pull requests in an accessible hub for the rest of the UI/UX team.&lt;/p&gt;

&lt;p&gt;There's an elegant simplicity to focusing on pull requests as the final handoff of the UIUX process. By taking a basic developer action (creating a deployment preview for a pull request), and turning that step into a collaborative effort, every pull request becomes an opportunity for a just-in-time iteration or optimization. It's a more efficient way of working for UI/UX and serves to reinforce a notion that developers long ago intuited: &lt;strong&gt;Pull requests are the new design handoff.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>design</category>
      <category>webdev</category>
      <category>ux</category>
    </item>
    <item>
      <title>The WFH edition. Our ultimate remote working stack for frontend devs</title>
      <dc:creator>Brad Johnson</dc:creator>
      <pubDate>Wed, 23 Sep 2020 21:59:01 +0000</pubDate>
      <link>https://dev.to/featurepeek/the-wfh-edition-our-ultimate-remote-working-stack-for-frontend-devs-2b6d</link>
      <guid>https://dev.to/featurepeek/the-wfh-edition-our-ultimate-remote-working-stack-for-frontend-devs-2b6d</guid>
      <description>&lt;p&gt;Let’s be honest, frontend developers kinda had this remote working thing figured out before our latest post apocalyptic reality. Now, it’s still been difficult for us all to adjust. But if there were any demographic that already had the know-how and the tools to stay productive while collaborating remotely, frontend teams had it covered.&lt;/p&gt;

&lt;p&gt;The challenge, most of the time, is just sorting through the overlapping options and developer-targeted Google Search ads to get to the tools that actually make your workflow easier.&lt;/p&gt;

&lt;p&gt;Don’t worry. &lt;a href="https://featurepeek.com/blog/the-8-best-tools-for-code-review-in-2020/"&gt;At FeaturePeek, we’re devtool nuts&lt;/a&gt;. And we try out just about everything we discover. Along the way, we’ve earmarked our favorites and fully incorporated many into our regular internal workflows.&lt;/p&gt;

&lt;p&gt;You could try out everything by yourself. Or you can learn from what our team figured out. But before we jump into our favorite little-known remote working tools, let's start by covering the basics.&lt;/p&gt;

&lt;h2&gt;
  
  
  Remote Working Essentials
&lt;/h2&gt;

&lt;p&gt;These are the fundamental tools every remote worker needs. Most development teams will already be using these in their day-to-day efforts, but if you skip over these fundamental tips and tricks, you'll struggle to make the most of the other tools we mention in this article.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Basics: Team Chat Tools
&lt;/h3&gt;

&lt;p&gt;Email isn’t exactly dead, but it’s no longer the standard for asynchronous communications. Development teams have used text chat to collaborate since the internet was invented. So if you aren't using a communication tool like Slack already, adopting one should be your first step towards productive remote working as a development team.&lt;/p&gt;

&lt;p&gt;Are there other chat alternatives? Sure. But we haven’t found any we like better than Slack yet.&lt;/p&gt;

&lt;p&gt;Here are the key features of &lt;a href="https://slack.com/"&gt;Slack&lt;/a&gt; that make it work for developer teams:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Channel Messaging:&lt;/strong&gt; You can create unlimited channels dedicated to tasks, projects, issues, or initiatives. For example, you could make a #webbugs channel to triage issues in your web app or a #marketingsite channel to discuss a website update. By working in a channel, you can be sure that all the right people see the right messages at the right time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Searchable Knowledge:&lt;/strong&gt; Slack is a single place where you can find conversations and files related to your work. Never again lose an email attachment in a crowded email inbox.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integrations:&lt;/strong&gt; Bring all the activity you care about into Slack so you never miss a thing. For example, a new Jira ticket could trigger a chat message or a new pull request to notify the right people to review it.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Basics: Version Control
&lt;/h3&gt;

&lt;p&gt;It doesn’t matter whether you’re working remotely or not. Version control is a critical part of modern software development, for both remote and co-located teams. Whether you use &lt;a href="https://github.com/"&gt;GitHub&lt;/a&gt;, &lt;a href="https://gitlab.com/"&gt;GitLab&lt;/a&gt;, &lt;a href="https://bitbucket.org/product"&gt;Bitbucket&lt;/a&gt;, you’ve likely already adopted one that makes sense for your team.&lt;/p&gt;

&lt;p&gt;Regardless of the platform you choose, the benefits are the same:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Collaboration:&lt;/strong&gt; Without version control in place, you are probably working in a shared directory and hoping your colleagues don't modify the files you are working on. Eventually, someone will save over your changes and you'll lose your work. With version control, you can work on any file without disrupting your colleagues. If there is a conflict, your version control system will let you merge these files later.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;File History:&lt;/strong&gt; Without version control, keeping a file history is almost impossible. With version control, changes to files are automatically tracked along with a commit message (a brief description of what has changed) and you can view the history of a file whenever you like. This makes it easy to see how files have evolved and what might have caused that annoying bug.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Basics: Video Conferencing
&lt;/h3&gt;

&lt;p&gt;I, for one, welcome our new &lt;a href="https://zoom.us/"&gt;Zoom&lt;/a&gt; overlords. Video conferencing is inescapable in the new shelter-in-place environment. And while we’ve all suffered from Zoom fatigue at points this year, sometimes you just need to discuss a bug or issue face-to-face.&lt;/p&gt;

&lt;p&gt;At &lt;a href="https://featurepeek.com/"&gt;FeaturePeek&lt;/a&gt;, we actually find ourselves using a few different video conferencing solutions. But if you need one platform to rule them all, Zoom is easy to use and includes features that are essential for development meetings, including screen sharing, annotations, and support for whiteboarding sessions on select plans.&lt;/p&gt;

&lt;p&gt;Other solutions are available, including &lt;a href="https://www.webex.com/"&gt;Cisco Webex&lt;/a&gt;, &lt;a href="https://meet.jit.si/"&gt;Jitsi Meet&lt;/a&gt;, &lt;a href="https://chat.google.com/"&gt;Google Chat&lt;/a&gt;, and &lt;a href="https://whereby.com/"&gt;Whereby&lt;/a&gt;. If you pay for the Standard, Plus, or Enterprise version of Slack, you get video call capabilities, too.&lt;/p&gt;

&lt;h2&gt;
  
  
  Little-Known Remote Working Tools
&lt;/h2&gt;

&lt;p&gt;With the basics in place, you'll be able to chat with your team and keep track of development work. Now, let's level up your remote working productivity so you don’t skip a beat while skipping the office commute.&lt;/p&gt;

&lt;h3&gt;
  
  
  Miro: Online Whiteboard
&lt;/h3&gt;

&lt;p&gt;If you’ve ever found yourself wishing that your development team could just meet for an in-person whiteboard session, &lt;a href="https://miro.com/"&gt;Miro&lt;/a&gt; is the next best thing.&lt;/p&gt;

&lt;p&gt;By being physically present and taking turns to write or move ideas around, it's easy to plan, share complicated ideas, and leave key information on display, such as project timelines or key tasks to be completed.&lt;/p&gt;

&lt;p&gt;Miro brings that whiteboard online and enables remote teams to collaborate in real-time in a free-flowing and creative way — just like a real-world whiteboard.&lt;/p&gt;

&lt;p&gt;Miro also doesn’t just try and replicate the meatspace whiteboard experience. They explored what being a digital whiteboard can enable, and it actually has some key advantages over a real whiteboard:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Infinite Canvas:&lt;/strong&gt; There are no limits to the size of the Miro whiteboard. Create a single whiteboard for every project in your company, all reviewable from one place.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add Files:&lt;/strong&gt; You can add files from Google Docs to the whiteboard, which will be automatically updated and synced.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Collaboration:&lt;/strong&gt; All team members can make changes simultaneously from wherever they are in the world.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Loom: Video Messaging
&lt;/h3&gt;

&lt;p&gt;At FeaturePeek, we use &lt;a href="https://www.loom.com/"&gt;Loom&lt;/a&gt; for all kinds of our video needs. Instead of writing a long email or Slack message to explain that annoying bug, try using Loom to record a quick video instead.&lt;/p&gt;

&lt;p&gt;We also use Loom to generate quick and dirty developer how-to videos to share later as an .MP4. Unlike normal screen recordings, Loom captures your screen, microphone, and face at the same time. This encourages users to explain their thoughts as they record; perfect for highlighting bugs or creating demos to be circulated within your team.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://support.loom.com/hc/en-us/articles/360002799977-Is-there-a-Loom-mobile-app-"&gt;Loom recently launched for iOS&lt;/a&gt;, enabling app developers to record and share issues quickly.&lt;/p&gt;

&lt;h3&gt;
  
  
  FeaturePeek: Deployment Previews
&lt;/h3&gt;

&lt;p&gt;Sure, we're biased in recommending &lt;a href="https://featurepeek.com/"&gt;FeaturePeek&lt;/a&gt;. But the benefits of on-demand staging environments are huge for remote development teams: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Quicker Design Feedback:&lt;/strong&gt; Get feedback from designers by just sending them a link. No need to manually deploy or help the designer set up a local environment. When they do give feedback, FeaturePeek automatically records the URL they are on and their browser metadata, making it easier to resolve issues.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review Others Work:&lt;/strong&gt; Switching to a colleague's branch to review their work takes time. With FeaturePeek, every branch is a dedicated environment, instantly available for your review. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quality Assurance:&lt;/strong&gt; "Well it works on my machine" is a thing of the past. Get an instant preview of how your branch will work on any server.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Want to see how this could work for your team? Our entire website is open source on GitHub, so you can take a peek at the preview environments that deploy on &lt;a href="https://github.com/featurepeek/marketing-website/pulls"&gt;our open pull requests.&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Headspace: Meditation
&lt;/h3&gt;

&lt;p&gt;Being productive isn't just about tooling and apps. Being productive is also a state of mind. &lt;/p&gt;

&lt;p&gt;Sometimes a project &lt;a href="https://www.youtube.com/watch?v=sT2daisxdvA"&gt;requires you to hype up&lt;/a&gt;. But more often than not, these days you’re probably having trouble winding down.&lt;/p&gt;

&lt;p&gt;Research shows that mindfulness can help improve mental health. And according to a &lt;a href="https://www.ncbi.nlm.nih.gov/pubmed/32252750"&gt;2020 study&lt;/a&gt;, meditation reduces stress and improves cognition. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.headspace.com/"&gt;Headspace&lt;/a&gt; is an app that aims to make meditation accessible to everyone. Taking a few moments to re-calibrate can help when development work becomes overwhelming or deadlines start to cause stress.&lt;/p&gt;

&lt;h3&gt;
  
  
  When To Chat: Timezone Sync
&lt;/h3&gt;

&lt;p&gt;If your team is distributed around the world, it can be impossible to figure out a mutually convenient time to meet.&lt;/p&gt;

&lt;p&gt;With &lt;a href="https://whentochat.co/"&gt;When To Chat&lt;/a&gt;, you enter your timezone, the timezone of the person you are meeting with, and your availability. It'll automatically suggest a range of times instantly. &lt;/p&gt;

&lt;p&gt;If you use Slack, you can &lt;a href="https://slack.whentochat.co/"&gt;add it to your workplace here&lt;/a&gt;. Then, just type /whentochat, then @ your colleagues.  For example: /whentochat &lt;a class="mentioned-user" href="https://dev.to/gary"&gt;@gary&lt;/a&gt; &lt;a class="mentioned-user" href="https://dev.to/tom"&gt;@tom&lt;/a&gt; "Dev Meeting"&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Your Favorite Tool?
&lt;/h2&gt;

&lt;p&gt;Let us know how your remote team stays productive by sharing with us in the comments!&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>webdev</category>
      <category>ux</category>
      <category>design</category>
    </item>
    <item>
      <title>The 8 part guide to better code review checklists</title>
      <dc:creator>Brad Johnson</dc:creator>
      <pubDate>Wed, 02 Sep 2020 23:01:47 +0000</pubDate>
      <link>https://dev.to/featurepeek/the-8-part-guide-to-better-code-review-checklists-1oh3</link>
      <guid>https://dev.to/featurepeek/the-8-part-guide-to-better-code-review-checklists-1oh3</guid>
      <description>&lt;p&gt;Of all the productivity tools available to UI/UX developers today, few are as ubiquitous and effective as the humble checklist.&lt;/p&gt;

&lt;p&gt;In &lt;a href="https://www.amazon.com/Checklist-Manifesto-How-Things-Right/dp/0312430000"&gt;"The Checklist Manifesto"&lt;/a&gt;, Atul Gawande explains that simple checklists can transform the way we work. In his book, Gawande was trying to find a way that doctors, surgeons, and nurses could deliver better, more consistent outcomes when working in an operating room - a literal life-or-death situation.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"We have accumulated stupendous know-how,"&lt;/em&gt; Gawande writes in his book. &lt;em&gt;"We have put it in the hands of some of the most highly trained, highly skilled, and hardworking people in our society. And, with it, they have indeed accomplished extraordinary things. Nonetheless, that know-how is often unmanageable."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Although software development isn't exactly a life-or-death endeavor, we can apply the same lessons by using the power of checklists to prioritize effectively when collaborating.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a code review?
&lt;/h2&gt;

&lt;p&gt;When a software developer on a team wants to contribute code they've worked on back into the main project, they need to do a 'pull request' or 'merge request'. It's the main way developers contribute to software projects, but &lt;a href="https://featurepeek.com/blog/why-are-so-many-orgs-slow-to-approve-pull-requests/"&gt;sometimes getting pull requests approved can be agonizingly slow&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Before this code can be added to the project, other team members will do a code review. This means checking for bugs, issues and suggesting improvements.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why make a code review checklist?
&lt;/h2&gt;

&lt;p&gt;Generally speaking, code reviews are great. They radically improve code quality, increase developer productivity and prevent bugs from ever reaching customers.&lt;/p&gt;

&lt;p&gt;But without a good process, code reviews can be, in a word...painful.&lt;/p&gt;

&lt;p&gt;Code review checklists help ensure productive code reviews. A code review checklist prevents simple mistakes, verifies work has been done and helps improve developer performance.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Pull Request Etiquette ✅
&lt;/h2&gt;

&lt;p&gt;Start with the basics. Is the pull request you are looking at &lt;em&gt;actually&lt;/em&gt; ready for review? To determine this, here are some key principles that should apply to all code reviews:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frequent&lt;/strong&gt; — To make pull requests more manageable, submit them little and often. If a pull request covers multiple days with no good reason, it should be split into smaller chunks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bitesize&lt;/strong&gt; — If a pull request is too large, it's difficult to understand. It should be broken down as much as possible.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Well documented&lt;/strong&gt; — Does the pull request have enough comments to make it easy to review?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Follows the Single Responsibility Principle&lt;/strong&gt; — Code should only ever solve one problem. If a piece of code affects a lot of the rest of the code in the project, it's difficult to review.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If these conditions are not met, return the code to the contributor to be improved or separated into different pull requests.&lt;/p&gt;

&lt;p&gt;This might seem initially harsh or counter-productive, but over several weeks your team's outputs and productivity will improve.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Styling 🎨
&lt;/h2&gt;

&lt;p&gt;Set some basic styling rules for your team and ensure these are followed. Consistent code styling is essential to ensure future developers can understand code easily and work productively.&lt;/p&gt;

&lt;p&gt;Some basic rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Are variable names sensible and consistently capitalized?&lt;/li&gt;
&lt;li&gt;Are there sufficiently descriptive comments throughout the code as required?&lt;/li&gt;
&lt;li&gt;Are formatting preferences followed? For example, tabs or spaces, curly brace on the same line or new line, 80 character width or 120 character width?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To save time, you could check these rules are followed with an automatic code linter. &lt;a href="https://prettier.io/"&gt;Prettier&lt;/a&gt; is a good example for JavaScript projects.&lt;/p&gt;

&lt;p&gt;Again, if these standards are not met, stop checking the code and return it to the contributor for review.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Security 🔐
&lt;/h2&gt;

&lt;p&gt;Set security standards for your project and check these are being followed religiously. The rules to be checked will vary depending on your project and organization, but some best practices are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run your project through vulnerability scanning solutions, like &lt;a href="https://lgtm.com/"&gt;LGTM&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Don't hardcode credentials for testing or include secrets in the repository&lt;/li&gt;
&lt;li&gt;Don't disclose too much information in error messages, which might give hints to an attacker&lt;/li&gt;
&lt;li&gt;Ensure any database queries are parameterized&lt;/li&gt;
&lt;li&gt;Don't trust user or client input blindly — your client or web application can be modified. For example, URL parameters that access resources should be checked.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you identify security issues in a code review process, stop and speak to the contributor. It might be a sign of a more serious issue in the project or a lack of training, both of which will need follow on interventions.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Performance 🏎
&lt;/h2&gt;

&lt;p&gt;Is the project as performant as it could be, or are these obvious optimizations that might improve performance?&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can any of the code be substituted with a more performant library or a language native function?&lt;/li&gt;
&lt;li&gt;Is there any debug or logging code that could be removed?&lt;/li&gt;
&lt;li&gt;Is caching being used if applicable?&lt;/li&gt;
&lt;li&gt;Are images and assets appropriately compressed?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are a myriad of tools that can help you optimize the web performance of your project. Good places to start are &lt;a href="https://developers.google.com/web/tools/lighthouse"&gt;Chrome Lighthouse&lt;/a&gt; (also called &lt;a href="https://developers.google.com/speed/pagespeed/insights/"&gt;PageSpeed Insights&lt;/a&gt;) and &lt;a href="https://www.debugbear.com/"&gt;DebugBear&lt;/a&gt; for frontend projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Testing 🧪
&lt;/h2&gt;

&lt;p&gt;Tests automatically check that code does what it should, making them a key part of the code review process.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Firstly, check that tests are present and well documented for all common functionality. If some functionality isn't covered by testing, it should be well documented why this is the case.&lt;/li&gt;
&lt;li&gt;Secondly, make sure that tests are well isolated, so you can find the problem quickly if a test fails.&lt;/li&gt;
&lt;li&gt;Finally, do the tests test the code? Often, they claim they do, but don't actually assess the intended functionality of the application.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://jestjs.io/"&gt;Jest&lt;/a&gt; is a good option if you're looking into automated unit testing. For automated end-to-end tests, check out &lt;a href="https://www.cypress.io/"&gt;Cypress&lt;/a&gt; and &lt;a href="https://reflect.run/"&gt;Reflect&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;However, always remember that not all tests are bullet-proof and shouldn't be relied on completely, as the next checklist item proves…&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Does it actually work? 💩
&lt;/h2&gt;

&lt;p&gt;It seems simple enough, but we've all made this assumption before.&lt;/p&gt;

&lt;p&gt;If you are on an agile sprint team, the code should always be checked against the acceptance criteria provided by your Product Manager or Product Owner. If acceptance criteria are not met, ask the contributing developer why.&lt;/p&gt;

&lt;p&gt;Another common issue is that code works locally but not in production. All code being reviewed should be deployed to a staging environment that is consistent with your production environment. This prevents environment specific issues.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.featurepeek.com"&gt;FeaturePeek&lt;/a&gt; users don't have to worry about inconsistencies between staging and production environments, because it automatically deploys branches into a dedicated environment every time a pull request is opened. This allows the reviewer to see the changes instantly and share this with designers, managers and other non-technical stakeholders for further feedback.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Positive code review culture 😻
&lt;/h2&gt;

&lt;p&gt;Before you send your code review feedback or sit down for a meeting, check that your comments will help your team to improve rather than be seen as criticism.&lt;/p&gt;

&lt;p&gt;Code reviews are one of the most regularly occurring interactions you have with the rest of your team. Take the time to ensure you've framed code review feedback in a positive way, so that you're contributing to a positive, collaborative code review culture over time.&lt;/p&gt;

&lt;p&gt;It can help to reframe critical feedback as constructive statements. For example, if the code is missing test coverage, suggest "could more test coverage benefit us here?" to test and challenge the understanding of your team members.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Review the checklist constantly 🤔
&lt;/h2&gt;

&lt;p&gt;Your checklist is only good if it's up to date. That’s why it's important to continually review your checklist and ensure it meets your needs.&lt;/p&gt;

&lt;p&gt;Your code review needs will change over time as new team members join or your project gains new requirements. For example, if you added new tooling to your CI process, this should be included.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.featurepeek.com"&gt;FeaturePeek&lt;/a&gt; gives reviewers a floating UI overlay for your deployments, making it easy for your them to leave great feedback. This way, reviewers can leave feedback sooner and it's easier to keep your code review checklist up to date with the latest requirements.&lt;/p&gt;

&lt;h2&gt;
  
  
  Learn More
&lt;/h2&gt;

&lt;p&gt;Checklists are just one of the many tools UI/UX developers use to keep productive. Let us know how your team stays productive by sharing with us in the comments below.&lt;/p&gt;

</description>
      <category>career</category>
      <category>management</category>
      <category>productivity</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
