<?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: ppezaris</title>
    <description>The latest articles on DEV Community by ppezaris (@ppezaris).</description>
    <link>https://dev.to/ppezaris</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F108246%2Fba020c28-ae0a-47e3-9b4f-804fe69a60b0.jpeg</url>
      <title>DEV Community: ppezaris</title>
      <link>https://dev.to/ppezaris</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ppezaris"/>
    <language>en</language>
    <item>
      <title>CodeStream Code Review</title>
      <dc:creator>ppezaris</dc:creator>
      <pubDate>Wed, 24 Jun 2020 15:19:40 +0000</pubDate>
      <link>https://dev.to/ppezaris/codestream-code-review-1ke6</link>
      <guid>https://dev.to/ppezaris/codestream-code-review-1ke6</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/9ay2eY-yOTs"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Hi Everyone! 👋&lt;/p&gt;

&lt;p&gt;In 2020 we set out to reimagine how code reviews work because so many developers told us they are unhappy with their existing solution. They told us:&lt;/p&gt;

&lt;p&gt;😡 Code reviews happen too late in the process when reworking code is frustrating.&lt;br&gt;
😡 Code reviews happen mostly on a website, like GitHub.com, causing too many context switches.&lt;br&gt;
😡 Code reviews in web sites don't provide the environment and tools needed to work optimally.&lt;/p&gt;

&lt;p&gt;CodeStream Code Reviews change all that. It's now two clicks to request feedback on a Work-In-Progress, and by getting feedback early, you can course-correct leading to higher code quality. And it integrates seamlessly with your PR workflow, whether that's GitHub, GitLab, or Bitbucket. 💯&lt;/p&gt;

&lt;p&gt;Never leave your IDE to request or perform a code review. No more context switching from web to email to IDE back to web. Discussions during a code review stay attached to the code they refer to (even post-merge!) and are easily accessible to all teammates as a form of documentation. 🚀&lt;/p&gt;

&lt;p&gt;CodeStream is backed by Y Combinator and the awesome guys at Brightstone, PJC, S28 as well as Eric Yuan (CEO of Zoom), Quinn Slack (CEO of Sourcegraph) and Steve Sordello (CFO of LinkedIn). We're grateful for all of our customers including Okta, Hearst Communications, SalesForce, Deloitte and BNY Mellon. 🙏&lt;/p&gt;

&lt;p&gt;If you’d like to see some live demos of the features, ask us any questions, or just say hi, we’ll be hosting a couple of informal “Meet the Team” sessions today (6/24/20). Be sure to stop by for a few minutes. 🙌&lt;/p&gt;

&lt;p&gt;Meet the Team&lt;br&gt;
1:00pm-1:30pm EST - &lt;a href="https://us02web.zoom.us/j/82384327407"&gt;https://us02web.zoom.us/j/82384327407&lt;/a&gt;&lt;br&gt;
~ and ~&lt;br&gt;
3:00pm-3:30pm EST - &lt;a href="https://us02web.zoom.us/j/82384327407"&gt;https://us02web.zoom.us/j/82384327407&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So what do you love or hate about your code review process? Do you think an in-editor experience will speed things up? Please leave a note in the comments below.&lt;/p&gt;

&lt;p&gt;Cheers, 🍻&lt;br&gt;
Peter&lt;/p&gt;

&lt;p&gt;P.S. We’re randomly giving away 25 succulents to developers that sign-up today and create a code review. Details here: &lt;a href="https://codestream.com/win"&gt;https://codestream.com/win&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>codereview</category>
      <category>ide</category>
      <category>flow</category>
    </item>
    <item>
      <title>CodeStream 7 -- in-editor Code Reviews</title>
      <dc:creator>ppezaris</dc:creator>
      <pubDate>Mon, 04 May 2020 22:02:08 +0000</pubDate>
      <link>https://dev.to/codestream/codestream-7-in-editor-code-reviews-55l7</link>
      <guid>https://dev.to/codestream/codestream-7-in-editor-code-reviews-55l7</guid>
      <description>&lt;p&gt;I've been an engineer for 30+ years, and an entrepreneur for the last 25. The one thing I've always wanted was more communication among the developers on a team, so we founded CodeStream to try to fix that. Our mission is to make it easier for developers to talk about code, and CodeStream 7 is probably our biggest release to date:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;With one command, request feedback on a snapshot of your repo, including uncommitted &amp;amp; unpushed code, allowing you to verify that your work-in-progress is on the right track. (You can also do it the old-fashioned way by committing &amp;amp; pushing at the end of your dev sprint, of course)&lt;/li&gt;
&lt;li&gt;Review teammates’ code in your IDE, with full source tree context, your favorite keybindings, jump-to-definition, etc.&lt;/li&gt;
&lt;li&gt;Comments on reviews are visible in your IDE as source code annotations after merging, creating a historical record of discussions and decisions.&lt;/li&gt;
&lt;li&gt;Live View allows you to (optionally) see your teammates’ local changes at-a-glance, and highlights potential merge conflicts pre-commit.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These features are available today for VS Code and JetBrains editors, with more editor support to come. Companies like Zoom, Okta, Intuit and Salesforce are on board.&lt;/p&gt;

&lt;p&gt;It's free to try, free for open source projects, and free for educational use. I'd love to hear any feedback you all may have. Thanks!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codestream.com/"&gt;https://codestream.com/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>codereview</category>
      <category>vscode</category>
      <category>jetbrains</category>
    </item>
    <item>
      <title>CodeStream Master Plan</title>
      <dc:creator>ppezaris</dc:creator>
      <pubDate>Tue, 11 Jun 2019 03:02:02 +0000</pubDate>
      <link>https://dev.to/codestream/codestream-master-plan-1g75</link>
      <guid>https://dev.to/codestream/codestream-master-plan-1g75</guid>
      <description>&lt;p&gt;Despite having worked in the communications space for over two decades, connecting and enabling conversation for millions of customers, and witnessing and participating in a wide array of innovations for personal and business communication, it was our observation that there was one audience in particular that had been left underserved: software developers. So we set out to fix that with CodeStream.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Problem
&lt;/h3&gt;

&lt;p&gt;Understanding code is one of the hardest problems in software development, after of course the other two: cache invalidation, naming, and off-by-1 errors.&lt;/p&gt;

&lt;p&gt;The mental mapping required to translate computer code into something a person can understand is a sufficiently complex activity that it consumes &lt;a href="https://www.quora.com/It-is-true-that-developers-spend-most-of-their-time-reading-code-than-writing-code"&gt;up to 75% of an average developer’s time&lt;/a&gt;, making it unnecessarily difficult to contribute ideas and solutions to existing code. In addition, &lt;a href="https://insights.stackoverflow.com/survey/2018/#developer-profile-ways-developers-learn-on-their-own"&gt;fewer than 20% of developers use internal tools to learn about the codebase they were hired to work on&lt;/a&gt;, leaving developers largely on their own in figuring out the right path forward.&lt;/p&gt;

&lt;p&gt;Developers have always appreciated the necessity to communicate about source code within the source code itself. Some of the first examples of computer programs, &lt;a href="https://ricardodsanchez.com/2015/08/31/programming-a-short-history-of-computer-languages/"&gt;dating back to 1936&lt;/a&gt;, include code comments that bridge a connection between machine-readable code and human-readable understanding.&lt;/p&gt;

&lt;p&gt;And yet despite the invention of literally thousands of programming languages, including programs that can write programs, in the eighty years since the first code comments were introduced, the process of commenting on code has remained essentially unchanged. There have been innovations for every imaginable part of the software development process, and still not a single effective improvement to the way we map software to wetware.&lt;/p&gt;

&lt;p&gt;We want to fix this by creating a set of systems that make it dramatically easier to discuss source code with other people, and capture all of the discussion and activity about your codebase exactly where it belongs: with your code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Make it Easier to Understand Code by Making it Easier to Talk About Code&lt;/strong&gt;&lt;br&gt;
If the hardest part of every developer’s job is to understand the code they are looking at, the easiest way for them to learn is to talk to the author of that code. That’s surprisingly difficult to do today using existing tools which generally fall into two categories.&lt;/p&gt;

&lt;p&gt;First, you have code-specific lifecycle tools, such as GitHub PR comments, which are fantastic for their intended purpose but are limited in terms of what code you can talk about, are generally disconnected from your editor, lack modern messaging capabilities, and essentially vanish once the PR is merged.&lt;/p&gt;

&lt;p&gt;Then there are general-purpose communication tools, such as Slack or Microsoft Teams (also fantastic), which are divorced from your codebase and require a deep context switch to engage. How deep?&lt;/p&gt;

&lt;p&gt;Imagine if every time you wanted to ask a question about a Google Doc you had to…&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Copy the URL of the document&lt;/li&gt;
&lt;li&gt;Switch to a new tab in your browser and open up Gmail&lt;/li&gt;
&lt;li&gt;Click "Compose"&lt;/li&gt;
&lt;li&gt;Type the recipients in the To field&lt;/li&gt;
&lt;li&gt;Paste in the URL of the document&lt;/li&gt;
&lt;li&gt;Describe your question: “In the above-linked document, on page three, in the second paragraph, in the third sentence right after the first clause where you say ‘foo bar’, what did you mean?”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;…and yet if you substitute “source code” for “Google Doc” and “Slack” for “Gmail” that’s essentially what developers have to fight through today, every single time they want to do something as simple as asking a question about the codebase they are working on.&lt;/p&gt;

&lt;p&gt;So we made a wish-list of features we would like to see in a messaging system for engineers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provide the ability to talk about any block of code, on any branch, in any state, without leaving your editor, as simple as “select the code, type your comment.”&lt;/li&gt;
&lt;li&gt;Eliminate context switching costs by embedding modern messaging support, such as synchronous or asynchronous communication, channels and DMs, at-mentions, reactions, slash commands, and DND (important for devs!) etc., right in the editor.&lt;/li&gt;
&lt;li&gt;Create a way to easily share works-in-progress by simply authoring code and commenting on it.&lt;/li&gt;
&lt;li&gt;Treat codeblocks as a first-class object in your message stream by making them actionable so you can easily share uncommitted code for feedback, exchange patches for quick fixes outside of a formal git process (branch...commit...push...pull...), and diff shared code blocks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This approach solves the single largest hurdle to making conversation about code more common, which is to eliminate the friction inherent in using software development tools not designed for communication, and general-purpose communication tools not designed for software development.&lt;/p&gt;

&lt;p&gt;Once we sketched out how this could all work, we had somewhat of an epiphany: if we know you are talking about code, what if we could tie that conversation thread directly to the code in a way that could be referenced later?&lt;/p&gt;

&lt;p&gt;—&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Every CodeBase Should have a Knowledge Base&lt;/strong&gt;&lt;br&gt;
Today, development teams around the world use git to track every change to every line of every file in their repository, all the way back to the beginning of time when the project was started. And yet almost all of those same teams are taking all the discussion about that code, which often explains how it all works, and are unwittingly throwing it away in Slack or Gmail, or burying it in a PR comment, probably never to be seen again.&lt;/p&gt;

&lt;p&gt;Kind of crazy, once you really think about it.&lt;/p&gt;

&lt;p&gt;We believe that every piece of information about your codebase should be saved with your codebase, visible to every developer in the context of looking at a file or a function, at any time. This simple concept is, rather surprisingly, not implemented by any tool in widespread use today.&lt;/p&gt;

&lt;p&gt;Legacy code comments (/* like this */), when used properly, are effective as a form of documentation for one simple reason: the comments retain local proximity to the code they refer to. We brainstormed a marker system which allows arbitrary data to be associated with a codeblock, connecting discussion and activity to lines of code.&lt;/p&gt;

&lt;p&gt;Ideally, markers should:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Be visible wherever the source code is visible, including in the editor.&lt;/li&gt;
&lt;li&gt;Mark a line or a range of code, providing specific context.&lt;/li&gt;
&lt;li&gt;Move with the code they refer to, as needed, when the code changes, across commits and branches, remaining relevant to future versions of functions and files, and for every developer on the team regardless of which version is checked out.&lt;/li&gt;
&lt;li&gt;Be created and updated at any time, independent of git commit cadence.&lt;/li&gt;
&lt;li&gt;Enable comment conversation with real-time messaging.&lt;/li&gt;
&lt;li&gt;Cross-post to existing communication tools, such as Slack, MS Teams or Email.&lt;/li&gt;
&lt;li&gt;Automatically at-mention the author(s) of the code they are referring to.&lt;/li&gt;
&lt;li&gt;Connect with third-party tools, so PR, CI, code review, and crash reporting tools can create and update markers within your source tree.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By connecting team discussion and system activity directly to your source code, markers become a new form of documentation, annotating the source files themselves, and creating a knowledge base from which future developers can learn.&lt;/p&gt;

&lt;p&gt;Thus, a virtuous cycle is born:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;New developers on the team, rather than having to learn from a naked codebase, get a head-start by having access to all prior conversation and activity that has been captured for every function and every file.&lt;/li&gt;
&lt;li&gt;As those developers learn the codebase, they can much more easily ask new questions about any part of it because of version-agnostic comment integration within the editor.&lt;/li&gt;
&lt;li&gt;These additional questions will result in conversation and answers, tied to markers, which are captured with the code, building the knowledge base further, and giving the next developers an even bigger head-start.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is why we built &lt;a href="https://codestream.com"&gt;CodeStream&lt;/a&gt;: comments on steroids, connected to your tools, captured with your code.&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>slack</category>
      <category>chat</category>
      <category>knowledgebase</category>
    </item>
    <item>
      <title>CodeStream Master Plan</title>
      <dc:creator>ppezaris</dc:creator>
      <pubDate>Tue, 16 Oct 2018 20:02:01 +0000</pubDate>
      <link>https://dev.to/ppezaris/codestream-master-plan-5boh</link>
      <guid>https://dev.to/ppezaris/codestream-master-plan-5boh</guid>
      <description>&lt;p&gt;We founded CodeStream because despite having worked in the communications space for over two decades, connecting and enabling conversation for millions of customers, and witnessing and participating in a wide array of innovations for personal and business communication, it was our observation that there was one audience in particular that had been left underserved: software developers. So we set out to fix that.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Problem
&lt;/h3&gt;

&lt;p&gt;Understanding code is one of the hardest problems in software development, after of course the other two: cache invalidation, naming, and off-by-1 errors.&lt;/p&gt;

&lt;p&gt;The mental mapping required to translate computer code into something a person can understand is a sufficiently complex activity that it consumes &lt;a href="https://www.quora.com/It-is-true-that-developers-spend-most-of-their-time-reading-code-than-writing-code"&gt;up to 75% of an average developer’s time&lt;/a&gt;, making it unnecessarily difficult to contribute ideas and solutions to existing code. In addition, &lt;a href="https://insights.stackoverflow.com/survey/2018/#developer-profile-ways-developers-learn-on-their-own"&gt;fewer than 20% of developers use internal tools to learn about the codebase they were hired to work on&lt;/a&gt;, leaving developers largely on their own in figuring out the right path forward.&lt;/p&gt;

&lt;p&gt;Developers have always appreciated the necessity to communicate about source code within the source code itself. Some of the first examples of computer programs, &lt;a href="https://ricardodsanchez.com/2015/08/31/programming-a-short-history-of-computer-languages/"&gt;dating back to 1936&lt;/a&gt;, include code comments that bridge a connection between machine-readable code and human-readable understanding.&lt;/p&gt;

&lt;p&gt;And yet despite the invention of literally thousands of programming languages, including programs that can write programs, in the eighty years since the first code comments were introduced, the process of commenting on code has remained essentially unchanged. There have been innovations for every imaginable part of the software development process, and still not a single effective improvement to the way we map software to wetware.&lt;/p&gt;

&lt;p&gt;We want to fix this by creating a set of systems that make it dramatically easier to discuss source code with other people, and capture all of the discussion and activity about your codebase exactly where it belongs: with your code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Make it Easier to Understand Code by Making it Easier to Talk About Code&lt;/strong&gt;&lt;br&gt;
If the hardest part of every developer’s job is to understand the code they are looking at, the easiest way for them to learn is to talk to the author of that code. That’s surprisingly difficult to do today using existing tools which generally fall into two categories.&lt;/p&gt;

&lt;p&gt;First, you have code-specific lifecycle tools, such as GitHub PR comments, which are fantastic for their intended purpose but are limited in terms of what code you can talk about, are generally disconnected from your editor, lack modern messaging capabilities, and essentially vanish once the PR is merged.&lt;/p&gt;

&lt;p&gt;Then there are general-purpose communication tools, such as Slack or Microsoft Teams (also fantastic), which are divorced from your codebase and require a deep context switch to engage. How deep?&lt;/p&gt;

&lt;p&gt;Imagine if every time you wanted to ask a question about a Google Doc you had to…&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Copy the URL of the document&lt;/li&gt;
&lt;li&gt;Switch to a new tab in your browser and open up Gmail&lt;/li&gt;
&lt;li&gt;Click "Compose"&lt;/li&gt;
&lt;li&gt;Type the recipients in the To field&lt;/li&gt;
&lt;li&gt;Paste in the URL of the document&lt;/li&gt;
&lt;li&gt;Describe your question: “In the above-linked document, on page three, in the second paragraph, in the third sentence right after the first clause where you say ‘foo bar’, what did you mean?”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;…and yet if you substitute “source code” for “Google Doc” and “Slack” for “Gmail” that’s essentially what developers have to fight through today, every single time they want to do something as simple as asking a question about the codebase they are working on.&lt;/p&gt;

&lt;p&gt;So we made a wish-list of features we would like to see in a messaging system for engineers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provide the ability to talk about any block of code, on any branch, in any state, without leaving your editor, as simple as “select the code, type your comment.”&lt;/li&gt;
&lt;li&gt;Eliminate context switching costs by embedding modern messaging support, such as synchronous or asynchronous communication, channels and DMs, at-mentions, reactions, slash commands, and DND (important for devs!) etc., right in the editor.&lt;/li&gt;
&lt;li&gt;Create a way to easily share works-in-progress by simply authoring code and commenting on it.&lt;/li&gt;
&lt;li&gt;Treat codeblocks as a first-class object in your message stream by making them actionable so you can easily share uncommitted code for feedback, exchange patches for quick fixes outside of a formal git process (branch...commit...push...pull...), and diff shared code blocks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This approach solves the single largest hurdle to making conversation about code more common, which is to eliminate the friction inherent in using software development tools not designed for communication, and general-purpose communication tools not designed for software development.&lt;/p&gt;

&lt;p&gt;Once we sketched out how this could all work, we had somewhat of an epiphany: if we know you are talking about code, what if we could tie that conversation thread directly to the code in a way that could be referenced later?&lt;/p&gt;

&lt;p&gt;—&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Every CodeBase Should have a Knowledge Base&lt;/strong&gt;&lt;br&gt;
Today, development teams around the world use git to track every change to every line of every file in their repository, all the way back to the beginning of time when the project was started. And yet almost all of those same teams are taking all the discussion about that code, which often explains how it all works, and are unwittingly throwing it away in Slack or Gmail, or burying it in a PR comment, probably never to be seen again.&lt;/p&gt;

&lt;p&gt;Kind of crazy, once you really think about it.&lt;/p&gt;

&lt;p&gt;We believe that every piece of information about your codebase should be saved with your codebase, visible to every developer in the context of looking at a file or a function, at any time. This simple concept is, rather surprisingly, not implemented by any tool in widespread use today.&lt;/p&gt;

&lt;p&gt;Legacy code comments (/* like this */), when used properly, are effective as a form of documentation for one simple reason: the comments retain local proximity to the code they refer to. We brainstormed a marker system which allows arbitrary data to be associated with a codeblock, connecting discussion and activity to lines of code.&lt;/p&gt;

&lt;p&gt;Ideally, markers should:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Be visible wherever the source code is visible, including in the editor.&lt;/li&gt;
&lt;li&gt;Mark a line or a range of code, providing specific context.&lt;/li&gt;
&lt;li&gt;Move with the code they refer to, as needed, when the code changes, across commits and branches, remaining relevant to future versions of functions and files, and for every developer on the team regardless of which version is checked out.&lt;/li&gt;
&lt;li&gt;Be created and updated at any time, independent of git commit cadence.&lt;/li&gt;
&lt;li&gt;Enable comment conversation with real-time messaging.&lt;/li&gt;
&lt;li&gt;Cross-post to existing communication tools, such as Slack, MS Teams or Email.&lt;/li&gt;
&lt;li&gt;Automatically at-mention the author(s) of the code they are referring to.&lt;/li&gt;
&lt;li&gt;Connect with third-party tools, so PR, CI, code review, and crash reporting tools can create and update markers within your source tree.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By connecting team discussion and system activity directly to your source code, markers become a new form of documentation, annotating the source files themselves, and creating a knowledge base from which future developers can learn.&lt;/p&gt;

&lt;p&gt;Thus, a virtuous cycle is born:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;New developers on the team, rather than having to learn from a naked codebase, get a head-start by having access to all prior conversation and activity that has been captured for every function and every file.&lt;/li&gt;
&lt;li&gt;As those developers learn the codebase, they can much more easily ask new questions about any part of it because of version-agnostic comment integration within the editor.&lt;/li&gt;
&lt;li&gt;These additional questions will result in conversation and answers, tied to markers, which are captured with the code, building the knowledge base further, and giving the next developers an even bigger head-start.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is why we built &lt;a href="https://codestream.com"&gt;CodeStream&lt;/a&gt;: comments on steroids, connected to your tools, captured with your code.&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>slack</category>
      <category>chat</category>
      <category>knowledgebase</category>
    </item>
  </channel>
</rss>
