<?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: George Guimarães</title>
    <description>The latest articles on DEV Community by George Guimarães (@georgeguimaraes).</description>
    <link>https://dev.to/georgeguimaraes</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%2F166257%2F848325f1-4ae1-4b42-9f20-f365372df267.jpg</url>
      <title>DEV Community: George Guimarães</title>
      <link>https://dev.to/georgeguimaraes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/georgeguimaraes"/>
    <language>en</language>
    <item>
      <title>3 better Engineering Metrics uses for Managers</title>
      <dc:creator>George Guimarães</dc:creator>
      <pubDate>Fri, 12 Mar 2021 18:30:55 +0000</pubDate>
      <link>https://dev.to/sourcelevel/3-better-engineering-metrics-uses-for-managers-mcp</link>
      <guid>https://dev.to/sourcelevel/3-better-engineering-metrics-uses-for-managers-mcp</guid>
      <description>&lt;p&gt;Many managers use engineering metrics to set goals. They measure the product delivery process and then use these numbers to set &lt;a href="https://sourcelevel.io/blog/okrs-vs-kpis-explanation-with-examples-for-engineering-teams" rel="noopener noreferrer"&gt;OKRs&lt;/a&gt;, attach to a pay raise or promotion, or micromanage. All the ways lead to pressure for achieving a specific number.&lt;/p&gt;

&lt;p&gt;I’ve worked in teams in which managers would make leaderboards and control every individual’s output. It didn’t solve the problem, though. Micromanaging only increases illusory productivity, not the performance itself.&lt;/p&gt;

&lt;p&gt;At the cultural level, it changes how the team dynamic works. Individualism increases and the team starts to make bad engineering decisions. The focus becomes to be at the top of the leaderboard, not delivering an excellent product.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;There are other ways to use metrics&lt;/strong&gt;. They serve multiple purposes, and managers can use them on different occasions. In this article, I listed three better ways to use metrics within engineering teams.&lt;/p&gt;

&lt;h2&gt;
  
  
  Metrics to motivate the team
&lt;/h2&gt;

&lt;p&gt;Nobody likes to have their work wasted because of misalignments. Engineers want to work on what’s important and relevant. Add challenges to the equation, and engineers will have fun doing their jobs.&lt;/p&gt;

&lt;p&gt;In this sense, managers need to communicate what’s most important clearly. If the team understands the plan, it is easier for them to see how they fit.&lt;/p&gt;

&lt;p&gt;Some kinds of work are fast, and the team stays motivated from the beginning to the end. However, when an activity takes too much time, the team may lack the feeling of achievement. When it happens, morale and motivation tend to drop. Managers can avoid it by establishing smaller, tangible, and measurable milestones in the long run.&lt;/p&gt;

&lt;p&gt;If a team has 30 technical debts that need to be addressed, managers can break it into a doable plan. It can be fixing one technical debt by a week or fixing ten up to the end of the quarter. The tactics don’t matter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The crucial thing here is to enable the team to sense progress&lt;/strong&gt;. Every week the leader can discuss the progress. In this case, metrics are not micromanaging anyone. They’re an indicator of progress. If the improvement is not satisfactory, that’s the right moment to change the plans, not blame.&lt;/p&gt;

&lt;p&gt;Regularly looking to a metric towards a plan brings a sense of progress and a frequent feeling of achievement. That’s great. Besides, don’t hesitate to celebrate small and big wins. Both are essential.&lt;/p&gt;

&lt;h2&gt;
  
  
  Metrics as indicators
&lt;/h2&gt;

&lt;p&gt;Metrics don’t tell the story; the context does. Metrics are merely a quantitative view of the facts. That’s important to have in mind when measuring, especially for those metrics that managers take as productivity.&lt;/p&gt;

&lt;p&gt;The usage of indexes differs from traditional goals. Goals are future-centric and represent where the team should be from now. Indexes, on the other hand, show the present, like an indicator.&lt;/p&gt;

&lt;p&gt;Therefore, &lt;strong&gt;a better approach is using Engineering Metrics as indicators&lt;/strong&gt;. The hardest part is to find the appropriate set of metrics to compose the index.&lt;/p&gt;

&lt;p&gt;For example, the &lt;a href="https://sourcelevel.io/blog/3-benefits-of-devops-metrics-within-engineering-teams" rel="noopener noreferrer"&gt;Lead Time for Change&lt;/a&gt;, which measures from commit to deployment, is an excellent index of how fast the team works. It includes many outputs — commits, pull requests, deployments — and practices — coding, testing, DevOps, Product.&lt;/p&gt;

&lt;p&gt;When it comes to quality, the problem can be more complicated. As quality is subjective, engineering managers may diverge.&lt;/p&gt;

&lt;p&gt;Choosing the correct set of metrics depends on many aspects, such as team maturity, the company’s strategic goals, and product positioning. It could be the number of bugs found in production or the meantime to a system to recover from failure.&lt;/p&gt;

&lt;p&gt;There are many metrics that we could use. Collaboration, culture, quality are all abstract terms that need a measurement. Once it’s covered, tracking indexes’ evolution over time can point to real-life changes.&lt;/p&gt;

&lt;p&gt;I recommend starting with what seems obvious, then polish it as you learn.&lt;/p&gt;

&lt;h2&gt;
  
  
  Experimentation and innovation
&lt;/h2&gt;

&lt;p&gt;In the last years, lots of frameworks, practices, and tools came out. Some of them changed the way we develop software — &lt;a href="https://www.atlassian.com/agile/agile-at-scale/spotify" rel="noopener noreferrer"&gt;Spotify Model&lt;/a&gt;, to cite a famous one. They usually come from big companies that have a culture of experimenting.&lt;/p&gt;

&lt;p&gt;Not every experiment needs to be that big and successful, though. Small improvements in the system are enough for our daily activities. But how can we tell whether an experiment has worked or not? Yes, metrics.&lt;/p&gt;

&lt;p&gt;If managers measure outcomes instead of outputs,  &lt;strong&gt;metrics become a powerful tool for empowering engineering teams with autonomy and responsibility&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The teams themselves can look at the metrics as indicators and tell whether their initiatives are working or not. They can try new practices, change the process, and dive into innovation. The only restriction would be not changing metrics for the bad.&lt;/p&gt;

&lt;p&gt;Growth Marketers use this dynamic in daily operations. And I believe engineering teams should benefit from it as well.&lt;/p&gt;

&lt;p&gt;The secret of enabling innovation is an instrumented system and strategic experimentation. There must be a rationale behind each initiative. And metrics will tell how successful they are.&lt;/p&gt;

&lt;p&gt;To make it useful, it requires a fast feedback loop. It would be costly if every experiment had to run for months to determine its success. Early feedback — looking at how metrics behave — enables changing directions when things are not going well.&lt;/p&gt;

&lt;h2&gt;
  
  
  In short
&lt;/h2&gt;

&lt;p&gt;Metrics shouldn’t be villains. They are a vital tool for modern software development. There is no space for micromanaging anymore because it just doesn’t work.&lt;/p&gt;

&lt;p&gt;I listed in this article three better uses for metrics than comparing individuals against their peers.&lt;/p&gt;

&lt;p&gt;In summary, we should look for metrics as indicators. They can motivate the team, tell how the system responds to daily activities, and enable innovation through experimentation.&lt;/p&gt;

&lt;p&gt;SourceLevel provides a set of metrics that managers can use as indicators. If you’re unsure about what to measure, &lt;a href="https://sourcelevel.io/software-engineering-kpi-consultation" rel="noopener noreferrer"&gt;apply for a Free Strategy Session&lt;/a&gt; with me. If you’re wondering how to implement pragmatic metrics in your team, &lt;a href="https://sourcelevel.io/schedule-your-demo" rel="noopener noreferrer"&gt;Schedule a Demo&lt;/a&gt;, and I will be happy to show.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://sourcelevel.io/blog/3-better-engineering-metrics-uses-for-managers" rel="noopener noreferrer"&gt;3 better Engineering Metrics uses for Managers&lt;/a&gt; appeared first on &lt;a href="https://sourcelevel.io" rel="noopener noreferrer"&gt;SourceLevel&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>engineeringmanagement</category>
      <category>engineeringmetrics</category>
    </item>
    <item>
      <title>Three signs your team needs Engineering Metrics ASAP</title>
      <dc:creator>George Guimarães</dc:creator>
      <pubDate>Thu, 28 Jan 2021 17:36:25 +0000</pubDate>
      <link>https://dev.to/sourcelevel/three-signs-your-team-needs-engineering-metrics-asap-ldi</link>
      <guid>https://dev.to/sourcelevel/three-signs-your-team-needs-engineering-metrics-asap-ldi</guid>
      <description>&lt;p&gt;I’ve been using &lt;a href="https://sourcelevel.io/engineering-metrics" rel="noopener noreferrer"&gt;Engineering Metrics&lt;/a&gt; for a while, and I am amazed by the significant impacts on engineering teams. Metrics is a topic I genuinely care about. During my days at Plataformatec, we used to discuss a lot about them. At the time, we used to focus on an Agile perspective.&lt;/p&gt;

&lt;p&gt;Our team was not satisfied in measuring Velocity in Story Points, nor we thought that estimating was helpful. So, we dug into Kanban philosophy and learned new statics techniques.&lt;/p&gt;

&lt;p&gt;We found out that measuring the cards’ flow through the board was more accurate and useful and that forecasting using Monte Carlo could give us more realistic estimations.&lt;/p&gt;

&lt;p&gt;Despite having many customers, we discovered that most of them had similar problems: lack of visibility and alignment. Once we introduced our metrics, the product teams had a north star.&lt;/p&gt;

&lt;p&gt;Besides, we also noticed that many CTOs had no metric to show to the board. The CMO could prove they were bringing qualified leads, the CFO had data to show their team reduced costs, but CTOs usually had no concrete metrics.&lt;/p&gt;

&lt;p&gt;Well, in summary, that’s the story behind SourceLevel. Over time, we received lots of valuable feedback, and we’re confident our product is in the right direction. We are helping companies to accelerate their deliveries sustainably and effectively.&lt;/p&gt;

&lt;p&gt;For this article, I separated three signs that you need Engineering Metrics in your teams. Check if you identify with any.&lt;/p&gt;

&lt;h2&gt;
  
  
  #1 — You don’t know in which step of the product delivery bottleneck is.
&lt;/h2&gt;

&lt;p&gt;For a commit to reach production, the code goes through a lot of steps. Many of them rely on human activities, like coding and peer-reviewing. The nature of this kind of work varies in quantity, time spent, and many other intrinsic variables.&lt;/p&gt;

&lt;p&gt;When you analyze the big picture, engineers in all levels of experience collaborate to solve a diverse type of demand, from bugs to refactorings, from typos to new releases, and so on.&lt;/p&gt;

&lt;p&gt;Systems are more complex than the sum of the parts. That’s why measuring individuals make no sense. The outputs produced vary too much in sizes, shapes, and purposes.&lt;/p&gt;

&lt;p&gt;Besides, overseeing everything is very difficult. It increases significantly when the team scales up. So, you need to instrument each step by gathering data from commits, pull requests, and deploys — as a start —, so that you can inspect them to find improvement opportunities.&lt;/p&gt;

&lt;p&gt;If you think there’s no bottleneck in your process or don’t know where it is, I strongly recommend instrumenting your system with Engineering Metrics.&lt;/p&gt;

&lt;h2&gt;
  
  
  #2 — You don’t have any metric to report upwards.
&lt;/h2&gt;

&lt;p&gt;Every area has its standard metrics. You work for many companies, but the CMO or CFO, for instance, will always report pretty much the same metrics. However, the engineering area still doesn’t have a consolidated metric to report upwards.&lt;/p&gt;

&lt;p&gt;I’ve seen many CTO fail because they couldn’t prove the team was making progress or that demand was over the capacity. Many executives still rely on gut feelings and outdated estimating methods.&lt;/p&gt;

&lt;p&gt;By measuring the whole process and then being able to drill down on specific parts of the system, CTOs and managers can understand their initiatives’ impact and create better reports.&lt;/p&gt;

&lt;h2&gt;
  
  
  #3 — You don’t know whether the team is making progress towards desired outcomes.
&lt;/h2&gt;

&lt;p&gt;When you focus on outputs, the results usually don’t go along with the outcomes. If the team’s productivity is measured by how many Pull Requests get merged, smart engineers will close as many Pull Requests as possible. It doesn’t matter whether the team reviewed it properly.&lt;/p&gt;

&lt;p&gt;The organizational culture is abstract and changes frequently. Metrics are a crucial factor. Measuring the outputs, as the number of Merged Pull Requests, isn’t enough. Leaders need to measure the outcomes.&lt;/p&gt;

&lt;p&gt;The engineering outcome is not only “code in production.” As a delivery system, we want engineering to deliver clean, well-tested, and reliable code to production faster in a sustainable — and predictable — way.&lt;/p&gt;

&lt;p&gt;When the leaders spread this message across all teams and give the team autonomy to do whatever change they need, we have the benefits of measuring outcomes: teams are not attached to outputs to experiment and innovate. The chosen set of metrics provides the alignment.&lt;/p&gt;

&lt;p&gt;For example, a way to deliver faster would be moving from a Pull Request approach to a trunk-based one. It can accelerate deliveries, but on the other hand, would the code still be well-tested and reliable? If the team is not mature enough, there are great chances it would not.&lt;/p&gt;

&lt;p&gt;That said, after defining the outcomes for your engineering success, I strongly recommend looking for a set of metrics that reflects the results.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do you want to know more about Engineering Metrics?
&lt;/h2&gt;

&lt;p&gt;If you want to read more about Engineering Metrics, I’ve written a lot about them recently. You can find them under this &lt;a href="https://sourcelevel.io/blog/category/metrics" rel="noopener noreferrer"&gt;category&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Feel free to &lt;a href="https://calendly.com/georgeguimaraes/call-15m" rel="noopener noreferrer"&gt;schedule a 15-min chat&lt;/a&gt; with me to talk about the challenges at your company. Maybe, I can handle more resources for you.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://sourcelevel.io/blog/three-signs-your-team-needs-engineering-metrics-asap" rel="noopener noreferrer"&gt;Three signs your team needs Engineering Metrics ASAP&lt;/a&gt; appeared first on &lt;a href="https://sourcelevel.io" rel="noopener noreferrer"&gt;SourceLevel&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>uncategorized</category>
    </item>
    <item>
      <title>3 Benefits of DevOps Metrics within Engineering Teams</title>
      <dc:creator>George Guimarães</dc:creator>
      <pubDate>Thu, 14 Jan 2021 18:33:44 +0000</pubDate>
      <link>https://dev.to/sourcelevel/3-benefits-of-devops-metrics-within-engineering-teams-ci3</link>
      <guid>https://dev.to/sourcelevel/3-benefits-of-devops-metrics-within-engineering-teams-ci3</guid>
      <description>&lt;p&gt;DevOps metrics is a trending topic among software engineering managers. These metrics became very popular after the publication of &lt;a href="https://itrevolution.com/book/accelerate/" rel="noopener noreferrer"&gt;Accelerate — The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations&lt;/a&gt; and the yearly The State of DevOps reports.&lt;/p&gt;

&lt;p&gt;If you’re not familiar, here’s are the 4 DevOps Metrics proposed by the work:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Delivery Lead Time, which is also known by Lead Time for Change or Cycle Time&lt;/li&gt;
&lt;li&gt;Deployment Frequency, also known as Delivery Throughput&lt;/li&gt;
&lt;li&gt;Time to Restore Service&lt;/li&gt;
&lt;li&gt;Change Fail Rate&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you search for “DevOps metrics,” you’ll quickly find many articles listing much more than four of them. Although I wouldn’t say they’re wrong, that’s something we need to pay attention to. Overseeing too many metrics — or DevOps KPIs, to cite a common term — at once can bring more problems than solutions.&lt;/p&gt;

&lt;p&gt;For this article, I prepared a brief list with three benefits of using those metrics so that you can accelerate engineering deliveries at your place.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefit #1 — They consider only the engineering scope.
&lt;/h2&gt;

&lt;p&gt;In the article &lt;a href="https://leaddev.com/scaling-software-systems/primer-engineering-delivery-metrics" rel="noopener noreferrer"&gt;A primer on engineering delivery metrics — Scaling software &amp;amp; systems&lt;/a&gt;, Buritica states that the product conception and design phase varies too much and then defends measuring what the engineering team is responsible for: from commit to deploy.&lt;/p&gt;

&lt;p&gt;It makes sense. The  &lt;strong&gt;product design phase&lt;/strong&gt;  defines what should be built, and considering it as engineering work distorts its efficiency. On the other hand, focusing on the  &lt;strong&gt;product delivery phase&lt;/strong&gt;  allows managers to understand precisely how shipping code to production works.&lt;/p&gt;

&lt;p&gt;In short, DevOps metrics show the big picture of your whole engineering process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefit #2 — It promotes collaboration and alignment.
&lt;/h2&gt;

&lt;p&gt;I don’t believe in developer or engineer productivity. Metrics such as the number of Lines of Code added, commits, and user story points delivered usually bring anxiety, depression, and burnout — to cite a few of them mentioned in Isaac Lyman’s article &lt;a href="https://stackoverflow.blog/2020/12/07/measuring-developer-productivity/" rel="noopener noreferrer"&gt;Can developer productivity be measured?&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Modern Software Development requires collaboration. More than that, it relies on teamwork. It’s like a complex system that needs a hint of chaos to work appropriately. Because of that, it’s useless to measure individual productivity. If you measure each individual by inputs or outputs, the system will adapt to it, and then you’ll see a local improvement.&lt;/p&gt;

&lt;p&gt;However, what about the other vital aspects of engineering success, such as quality, stability, and maintainability? The team probably won’t take them into account during the daily activities because what matters at the end of the day is to reach a certain number of inputs or outputs done.&lt;/p&gt;

&lt;p&gt;In my opinion, this is a management anti-pattern. If we want engineering teams to collaborate, then we need to see how they work together. Every institutionalized practice, process, or automation changes how the system behaves altogether.&lt;/p&gt;

&lt;p&gt;That’s why you need metrics that fully represent the big picture to understand if they have improved or worsened the team’s dynamic. As a result, teams work with high autonomy guided by the alignment provided by metrics that tell what’s expected from them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefit #3 — Improving the system is more effective.
&lt;/h2&gt;

&lt;p&gt;If you compare two individuals, given they’re humans, it very likely they won’t perform the same. Depending on the type of demand — whether it’s a bug, a new feature, or PoC —, their motivation, how clear the task, the related experiences they had, and many other aspects can cause divergences in the numbers.&lt;/p&gt;

&lt;p&gt;In a Leaderboard, there will always have someone at the bottom. Even if you start a mentorship program to leverage individual productivity, it doesn’t mean all engineers will produce the same.&lt;/p&gt;

&lt;p&gt;However, you can find whether a mentorship program is working by looking at the system. If the system is delivering more, with quality and reliability, it’s working. It doesn’t matter who is at the bottom or the top of the Leaderboard.&lt;/p&gt;

&lt;p&gt;Daniel Markovitz wrote in an article for the Harvard Business Review called &lt;a href="https://hbr.org/amp/2021/01/productivity-is-about-your-systems-not-your-people" rel="noopener noreferrer"&gt;Productivity Is About Your Systems, Not Your People&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;As legendary statistician and management consultant W. Edwards Deming argued in his book Out of the Crisis, 94% of most problems and possibilities for improvement belong to the system, not the individual. I would argue that most productivity improvements belong there as well. Personal solutions can be useful, but the most effective antidote to low productivity and inefficiency must be implemented at the system level, not the individual level.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Understanding the impact of engineering initiatives, projects, and daily activities on the system outcomes makes it much more likely to managers drive their teams to high-performance.&lt;/p&gt;

&lt;h2&gt;
  
  
  You’ll probably need more metrics later.
&lt;/h2&gt;

&lt;p&gt;DevOps metrics are enough for having the big picture. But sometimes, we need to zoom in and see how the system behaves in a specific part of the process. In this case, you’ll need more metrics.&lt;/p&gt;

&lt;p&gt;You may have a better idea of what I’m talking about reading Smruti Patel’s article &lt;a href="https://leaddev.com/productivity-eng-velocity/debugging-engineering-velocity-and-leading-high-performing-teams" rel="noopener noreferrer"&gt;Debugging engineering velocity and leading high-performing teams — Productivity &amp;amp; Eng velocity&lt;/a&gt;. Breaking the process into smaller steps is fundamental to understand where bottlenecks and issues are. Then, managers can complement their view by instrumenting those steps.&lt;/p&gt;

&lt;p&gt;These complementary metrics give managers visibility and allow the teams to detach from inputs and outputs. So, they can elaborate on sophisticated solutions that impact the whole system.&lt;/p&gt;

&lt;p&gt;However, the team should align every action with those 4 DevOps Metrics.&lt;/p&gt;

&lt;h2&gt;
  
  
  In short
&lt;/h2&gt;

&lt;p&gt;The 4 DevOps Metrics are excellent to give managers a big view. However, to debug the process, they need to instrument the system using other metrics. It’s like Observability, but for the process.&lt;/p&gt;

&lt;p&gt;For more ideas of how and what to measure, I strongly recommend our latest e-book, &lt;a href="https://sourcelevel.io/engineering-manager-playbook-high-performance-teams" rel="noopener noreferrer"&gt;The Engineering Manager’s Play for debuggable and observable processes&lt;/a&gt;. It has quality content with examples of what to measure in each delivery phase.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;See Engineering Metrics Live:&lt;/strong&gt; &lt;a href="https://sourcelevel.io/engineering-metrics" rel="noopener noreferrer"&gt;Click here&lt;/a&gt; to get a &lt;strong&gt;full demo&lt;/strong&gt; of SourceLevel Engineering Metrics and how they can help your team.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://sourcelevel.io/blog/3-benefits-of-devops-metrics-within-engineering-teams" rel="noopener noreferrer"&gt;3 Benefits of DevOps Metrics within Engineering Teams&lt;/a&gt; appeared first on &lt;a href="https://sourcelevel.io" rel="noopener noreferrer"&gt;SourceLevel&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>engineeringmanagement</category>
      <category>metrics</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Why you should adopt a community-maintained javascript style guide</title>
      <dc:creator>George Guimarães</dc:creator>
      <pubDate>Tue, 01 Dec 2020 11:35:00 +0000</pubDate>
      <link>https://dev.to/sourcelevel/why-you-should-adopt-a-community-maintained-javascript-style-guide-45ll</link>
      <guid>https://dev.to/sourcelevel/why-you-should-adopt-a-community-maintained-javascript-style-guide-45ll</guid>
      <description>&lt;p&gt;Airbnb’s JavaScript style guide is the most popular set of rules for code standardization available. The repository is open for &lt;a href="https://github.com/airbnb/javascript" rel="noopener noreferrer"&gt;contributions on GitHub&lt;/a&gt;. Yet, other style guides follow the same approach. They’re well maintained and available for free, such as &lt;a href="https://google.github.io/styleguide/jsguide.html" rel="noopener noreferrer"&gt;Google&lt;/a&gt;‘s, &lt;a href="https://github.com/standard/standard" rel="noopener noreferrer"&gt;Standard&lt;/a&gt;‘s, and &lt;a href="https://github.com/rwaldron/idiomatic.js/" rel="noopener noreferrer"&gt;Idiomatic&lt;/a&gt;‘s.&lt;/p&gt;

&lt;p&gt;If you search more deeply, you can find even more style guides used by tech companies or individuals. There’s not a single way to write and format code, and that’s good and healthy.&lt;/p&gt;

&lt;p&gt;However, even with lots of conventions documented out there, many companies prefer to write their version, which usually leads to a waste of time and effectiveness, as gathering the team to discuss aesthetic aspects of the code can be both time-consuming and exhausting.&lt;/p&gt;

&lt;p&gt;In this article, I list reasons to enforce my opinion that choosing a community-maintained javascript style guide is the best thing for everyone — with few exceptions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Maintaining a style guide is time-consuming
&lt;/h2&gt;

&lt;p&gt;Each engineer develops a preference over time. Some people prefer tabs, others space; some prefer single quotes, others double quotes; and so on. Does the preference affect the quality of the code? I don’t think so. Does the preference affect the end-users value perception? I don’t believe it.&lt;/p&gt;

&lt;p&gt;The fact is that quality and value aren’t expressed on coding preferences. They derive from solid processes and tools that support engineering activities. So, instead of focusing on discussing preferences, it’s more productive to focus on designing robust and well-crafted systems.&lt;/p&gt;

&lt;p&gt;It’s fundamental to say that engineering teams and product final users benefit from a standardized codebase. The more a codebase looks like written by a single person, the faster and less buggy the development tends to be.&lt;/p&gt;

&lt;p&gt;In this case, writing a document that states how code should look is not enough. It’s necessary to adopt and institutionalize as a practice, and the best tools available for that are linters. Linters use static code analysis to find mismatches. Examples include &lt;a href="https://sourcelevel.io/blog/how-to-setup-eslint-and-prettier-on-node" rel="noopener noreferrer"&gt;eslint and prettier for JavaScript&lt;/a&gt;, pylint for python, and rubocop for Ruby.&lt;/p&gt;

&lt;p&gt;Community-maintained projects run this discussion with a broad reach, and detach those discussions to engineering daily activities. Maintenance is more frequent and peer-reviewed than in-house solutions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Maintaining the linter’s configuration files is laborious
&lt;/h2&gt;

&lt;p&gt;Keeping a document with the company’s rules requires dedication as new versions of the programming language or framework comes out. What engineering teams always neglect is that style guides get obsolete as people leave and join the company as well.&lt;/p&gt;

&lt;p&gt;In small or mid-sized teams, when you hire opinionated engineers or fire senior developers, there are great chances that old discussions emerge again. As changing documentation is harder, linters’ configuration files differ from the predefined styles.&lt;/p&gt;

&lt;p&gt;The same occurs with code documentation, which always ends up in the question: is it outdated documentation or an implementation bug?&lt;/p&gt;

&lt;p&gt;Taking as an example the Airbnb JavaScript style guide, you can notice the documentation ships with some linters files already configured, which saves time and enforces consistency between the style guide documentation and how it performs the checks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Faster ramp up of new-hires
&lt;/h2&gt;

&lt;p&gt;If your company adopts a specific style guide with lots of custom rules for linters, then the ramp-up of new-hires is slower. The same may apply if different teams adopt different code conventions — which sounds against the idea of standardization of the code. The uniqueness of the settings increases the cognitive demand for new-hires during onboarding.&lt;/p&gt;

&lt;p&gt;It means that adopting a community-maintained style guide helps scaling companies. In fact, I strongly recommend choosing a style guide before growing fast, as the coordination efforts of doing it afterward is significantly higher.&lt;/p&gt;

&lt;p&gt;When you use the Airbnb, Standard, Idiomatic or whatever JavaScript style guide, the adherence to them will probably be higher than understanding and promoting your company’s own. Many of the hired engineers may already know the rules by heart, which accelerates the ramp up.&lt;/p&gt;

&lt;h2&gt;
  
  
  Feedback comes from the community
&lt;/h2&gt;

&lt;p&gt;Prefer a community-based solution over a custom implementation. That’s what I believe is the best for companies I worked for, and what I always foster as part of SourceLevel’s culture.&lt;/p&gt;

&lt;p&gt;Besides all the open-source benefits, the strongest point of adopting an open-source style guide is getting external feedback. Otherwise, the team relies only on their experience. The external view brings more value to the discussion.&lt;/p&gt;

&lt;p&gt;If you the team really has strong arguments on a certain preference, the repository is open-source, and will accept a pull request or issue for discussing the matter. Of course, you can’t take the change as granted. But you definitively can collaborate with the community by sharing your opinions. And this is the kind of environment I want to promote.&lt;/p&gt;

&lt;h2&gt;
  
  
  Few exceptions
&lt;/h2&gt;

&lt;p&gt;I think there are few exceptions to the rule. If your company is big enough, or maybe has created a framework that became very popular, then you might consider creating a public style guide. The community can help in the process, and it is a win-win.&lt;/p&gt;

&lt;p&gt;This rule applies to big open-source projects as well. After establishing the rules for that project, it can be used by other people and companies around the world. However, if you don’t intend to put effort into maintaining it, I’d simply adopt an existing style guide.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://sourcelevel.io/blog/why-you-should-adopt-a-community-maintained-javascript-style-guide" rel="noopener noreferrer"&gt;Why you should adopt a community-maintained javascript style guide&lt;/a&gt; appeared first on &lt;a href="https://sourcelevel.io" rel="noopener noreferrer"&gt;SourceLevel&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>codequality</category>
      <category>developmenttools</category>
    </item>
    <item>
      <title>On the Four Key DevOps Metrics, and why I measure them differently</title>
      <dc:creator>George Guimarães</dc:creator>
      <pubDate>Fri, 06 Nov 2020 18:21:03 +0000</pubDate>
      <link>https://dev.to/sourcelevel/on-the-four-key-devops-metrics-and-why-i-measure-them-differently-4fo6</link>
      <guid>https://dev.to/sourcelevel/on-the-four-key-devops-metrics-and-why-i-measure-them-differently-4fo6</guid>
      <description>&lt;p&gt;The four key DevOps metrics are an exciting set of measurements. They’re getting more and more relevant since the book &lt;a href="https://books.google.com.br/books/about/Accelerate.html?id=85XHAQAACAAJ" rel="noopener noreferrer"&gt;Accelerate&lt;/a&gt; has been published. I firmly believe they’re essential for engineering teams seeking effectiveness and efficiency.&lt;/p&gt;

&lt;p&gt;The Four key DevOps metrics are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lead Time for Change&lt;/li&gt;
&lt;li&gt;Deploy Frequency&lt;/li&gt;
&lt;li&gt;Change Failure Rate&lt;/li&gt;
&lt;li&gt;Median Time to Restore (MTTR)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can learn more about measuring it in &lt;a href="https://stelligent.com/2018/12/21/measuring-devops-success-with-four-key-metrics/" rel="noopener noreferrer"&gt;Paul Duvall’s article&lt;/a&gt; or reading the &lt;a href="https://cloud.google.com/devops/state-of-devops" rel="noopener noreferrer"&gt;2019 Accelerate State of DevOps&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In this article, I want to explore why I like them and why we measure it slightly differently at Source Level. I’ll focus on the Lead Time for Change and Deploy Frequency, as I have more experience working with them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why are the Four Key DevOps Metrics essential for engineering teams?
&lt;/h2&gt;

&lt;p&gt;The main goal of an engineering team is to add value for the customers through technology. Delivering value is abstract, and describing what it means is hard.&lt;/p&gt;

&lt;p&gt;Sometimes value translates into a single line of code or even in a configuration change. But at other times, value translates into three months of 8-sized-team work. It happens because value perception is not attached to the work itself. It’s bound to what end-users extract from the running product.&lt;/p&gt;

&lt;p&gt;That’s why measuring Story Points is useless. The team attributes a numeric value based on how much effort a given User Story or task requires. So, Story Points measures engineering performance based on their effort. And, as stated, it’s not related to the end-user perception of value.&lt;/p&gt;

&lt;p&gt;However, Modern Software Development requires agility, and it doesn’t come from the nature of the work, such as painful features or slippery bugs. Agility comes from a smooth and sustainable process.&lt;/p&gt;

&lt;p&gt;Some years ago, using agility and process in the same sentence would be hilarious. But agile’s core is to respond to change appropriately, and delivering more doing less is a consequence, not the goal.&lt;/p&gt;

&lt;p&gt;That said, the Four Key DevOps metrics become the best allies of &lt;a href="https://sourcelevel.io/how-tech-leads-and-team-leads-can-measure-teams-productivity" rel="noopener noreferrer"&gt;Tech Leads, Engineering Managers, and VPs of Engineering looking for efficiency&lt;/a&gt;. These roles require full attention to the big picture, and DevOps metrics give a perfect overview of how the system responds to daily activities.&lt;/p&gt;

&lt;p&gt;Lead Time for Change and Deploy Frequency summarize the development pipeline, and any change in the process reflects on them. Managers should have them in their dashboards or any other accessible and accurate place.&lt;/p&gt;

&lt;h3&gt;
  
  
  Considerations on Lead Time for Change
&lt;/h3&gt;

&lt;p&gt;Lead Time for Change measures how much time it takes for a code change to reach production. It’s crucial to measure up to production because staging or any other non-official environment won’t provide any value.&lt;/p&gt;

&lt;p&gt;However, it raises an interesting discussion on feature toggles (or feature flags). Deploying a new feature is not the final step of the value chain if your team uses feature toggles or feature flags. Features must be enabled to add value, and so, I’d consider measuring not only Lead Time for Change but also the Lead Time to Value.&lt;/p&gt;

&lt;p&gt;Another aspect I’d like to point is statistics. The recommendation is to calculate the Median Lead Time for Change. It outputs the value at the midpoint of a frequency distribution. In other words, half of the changes are equal or less the median. But how about the other half of the changes? They could take considerably more.&lt;/p&gt;

&lt;p&gt;At SourceLevel, we’ve been more likely to use the 75th percentile as the default metric and keeping track of the 95th percentile as well. The 75th percentile is more comprehensive and realistic. In contrast, the 95th percentile gives us an idea of the small portion of work left out of the count and excludes the top 5% most time-consuming changes, as we consider them outliers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Considerations on Deploy Frequency
&lt;/h3&gt;

&lt;p&gt;Deploy Frequency measures how many times code changes reached production in a period. It can be measure as deploy per hour, per day, per week, per month, and so on.&lt;/p&gt;

&lt;p&gt;It’s crucial to adjust the period properly. Saying a team deploys four times in a month sounds like a team deploys once in a week. But it may not be accurate. If the team deploys four times at the end of a month, it means the team has a different pace than deploying once a week.&lt;/p&gt;

&lt;p&gt;If it’s usual for your team to have one or zero deploys per day, don’t measure it in days. Start measuring in weeks. Once the team starts deploying more than seven times a week, you can switch for days. Switch to shorter timeframes whenever possible, but always respecting the accuracy of the information.&lt;/p&gt;

&lt;h2&gt;
  
  
  In short
&lt;/h2&gt;

&lt;p&gt;The Four Key DevOps Metrics are useful and give an overall idea of how the system responds to daily activities. Lead Time for Change and Deploy Frequency are much more price than Story Points and should be accessible and accurate.&lt;/p&gt;

&lt;p&gt;Tech Leads, Engineering Managers, and VP of Engineering benefit from these &lt;a href="https://sourcelevel.io/engineering-metrics" rel="noopener noreferrer"&gt;metrics&lt;/a&gt;. Although &lt;a href="https://sourcelevel.io/blog/5-responsibilities-of-a-tech-lead-and-17-metrics-to-track-their-performance" rel="noopener noreferrer"&gt;more metrics&lt;/a&gt; are necessary to investigate problems, they are excellent indicators of the engineering process healthiness.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://sourcelevel.io/blog/on-the-four-key-devops-metrics-and-why-i-measure-them-differently" rel="noopener noreferrer"&gt;On the Four Key DevOps Metrics, and why I measure them differently&lt;/a&gt; appeared first on &lt;a href="https://sourcelevel.io" rel="noopener noreferrer"&gt;SourceLevel&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>agilemetrics</category>
      <category>engineeringmanagemen</category>
      <category>engineeringmetrics</category>
      <category>deployfrequency</category>
    </item>
    <item>
      <title>How do you measure engineering performance and process healthiness?</title>
      <dc:creator>George Guimarães</dc:creator>
      <pubDate>Thu, 29 Oct 2020 19:07:59 +0000</pubDate>
      <link>https://dev.to/georgeguimaraes/how-do-you-measure-engineering-performance-and-process-healthiness-l5b</link>
      <guid>https://dev.to/georgeguimaraes/how-do-you-measure-engineering-performance-and-process-healthiness-l5b</guid>
      <description>&lt;p&gt;Hey, folks!&lt;/p&gt;

&lt;p&gt;The State of DevOps lists 2 metrics for Software Development: Deploy Frequency (Throughput), and Lead Time for Change. They are great for measuring the expected outcome of an Engineering Team.&lt;/p&gt;

&lt;p&gt;I've seen managers attaching it to OKRs or used as the area KPIs. They are excellent indicators of performance for companies.&lt;/p&gt;

&lt;p&gt;However, as an Engineering Manager, I don't see they're so useful for daily activities. They provide a high-level overview, but little visibility on what's going on in daily activities.&lt;/p&gt;

&lt;p&gt;Managers usually need a more deep analysis of the process to improve the Lead Time and Deploy Frequency themselves.&lt;/p&gt;

&lt;p&gt;For that task, I would go break Lead Time into smaller steps of the work, such as the Time from Commit to Open a Pull Request (assuming the company is doing code review), Time to Merge (from Opening to merging a Pull Request), and so on.&lt;/p&gt;

&lt;p&gt;How do you track process healthiness and effectiveness in your company?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>metrics</category>
      <category>management</category>
    </item>
    <item>
      <title>OKRs vs. KPIs: explanation with examples for Engineering Teams.</title>
      <dc:creator>George Guimarães</dc:creator>
      <pubDate>Tue, 20 Oct 2020 22:04:32 +0000</pubDate>
      <link>https://dev.to/sourcelevel/okrs-vs-kpis-explanation-with-examples-for-engineering-teams-1phb</link>
      <guid>https://dev.to/sourcelevel/okrs-vs-kpis-explanation-with-examples-for-engineering-teams-1phb</guid>
      <description>&lt;p&gt;&lt;em&gt;OKRs vs. KPIs, what are the differences?&lt;/em&gt; That’s a common question I hear from managers of Engineering Teams. KPIs are more straightforward to explain than &lt;a href="https://en.wikipedia.org/wiki/OKR" rel="noopener noreferrer"&gt;OKRs&lt;/a&gt;, which can be tricky and more complex. They don’t mean the same, although they are connected.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are KPIs?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;KPI stands for Key Performance Indicators.&lt;/strong&gt; In other words, KPIs are a set of metrics that should give you an overview of the area or team’s performance. They need to be measurable and comparable.&lt;/p&gt;

&lt;p&gt;If you look at many KPIs, they’re not fulfilling their purpose. Organizations should select as few as possible so that tracking the progress is possible. Besides, all the significant changes in process and company goals should impact the numbers.&lt;/p&gt;

&lt;p&gt;Then, managing an area or a team becomes more tangible: when the KPIs show poor performance, it’s time to act. The actions taken should reflect better numbers; otherwise, managers need to find another strategy and act differently.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are OKRs?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;OKRs stands for Objective Key Results&lt;/strong&gt;. It’s a managing methodology that is popular in Silicon Valey. It’s been widely adopted by companies and startups at scale. It’s also seen as an alternative or complement for strategic planning.&lt;/p&gt;

&lt;p&gt;OKRs’ primary purpose is to define Objectives that must align with the business and a set of Key Results. Each Key Result needs to have a measurable number as the goal and a limit date. The limit date means that the goal should be achieved within that time frame.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s the difference between KPIs and OKRs?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;KPIs provide an overview of the area or team for managers, whereas OKRs must focus on its future.&lt;/strong&gt; That said, it becomes clear that KPIs are a controlling tool, and OKRs intend to change an organization’s status quo and keep track of its progress by periodic assessment meetings.&lt;/p&gt;

&lt;p&gt;It’s crucial to have that in mind when choosing the KPIs and the OKRs. Otherwise, they become useless and can even play against business goals. Let’s see some examples of them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Examples of OKRs and KPIs for Engineering Teams
&lt;/h2&gt;

&lt;p&gt;Below there is a list of KPIs examples. However, you can find more examples in my article &lt;a href="https://sourcelevel.io/blog/software-engineering-kpis-how-to-choose-the-best-fitting-metrics" rel="noopener noreferrer"&gt;Software Engineering KPIs: how to choose the best fitting metrics&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Deploy Frequency&lt;/strong&gt; : it’s a sum of the &lt;a href="https://thenewstack.io/measuring-engineering-velocity-deploy-frequency-as-a-vital-sign-of-devops-health/" rel="noopener noreferrer"&gt;number of deploys made by day&lt;/a&gt;, week, or month, depending on the organization’s need. &lt;em&gt;It shows how frequently the team — or area — delivers value to the final user&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Time to Merge&lt;/strong&gt; : it measures the number of days a Pull Request remains open or under review. You can find an average or, as I prefer, see the 75th percentile of all pull requests closed in a given period. &lt;em&gt;It shows how performant is the team&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Time to Recover&lt;/strong&gt; : how much time does the application is inaccessible after an error? &lt;em&gt;This metric tells a lot about how engineering teams respond to failures.&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When thinking of OKRs, Engineering Teams may consider Objectives such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Improving the Time to Market of new features&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lessen the Churn rate of the product&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here are some possible Key Results for  &lt;strong&gt;Improving the Time to Market of new features&lt;/strong&gt; :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Increase the Deploy Frequency to 37/week until &lt;/strong&gt;. Assuming you deploy less than 37 times a week currently, increasing the frequency means you’re delivering more. Delivering more is crucial to achieving a more competitive Time to Market.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reduce the 75th percentile of Time to Merge to 3 days until &lt;/strong&gt;. Instead of the Median or Average, I prefer using the 75th percentile for Key Results. In other words, it means that 75% of the Pull Requests must be merged up to 3 days after they were opened. The team can achieve it by opening lighter pull requests or engaging in collaborators’ pull requests instead of working on a new work item.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For the second object,  &lt;strong&gt;Lessen the Churn rate of the product&lt;/strong&gt; , let’s assume you know the primary source of churn comes due to a high number of errors in the application. Then, the Key Results could include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reduce the number of Technical Debts to 15 until &lt;/strong&gt;. Let’s say you have 30 Technical Debts currently. It’s a 50% improvement. There are many chances that improving the codebase will positively affect the churn rate and help in the KR of the previous Objective. The cleaner the code, the better it embraces the changes. It means you can reduce the churn and also achieve better Time to Market by gardening your codebase.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reduce the Mean Time to Recover to Recover (MTTR) to 3 minutes until &lt;/strong&gt;. The team needs to monitor application outages, connectivity problems, 503 errors, and other failures to ensure end-users’ experience is not impacted with more than 3 minutes of instability.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  In short,
&lt;/h2&gt;

&lt;p&gt;KPIs and OKRs are not the same. They have different purposes. KPIs aim to give managers an overview of how the team or area is working, whereas OKRs focus on providing the team a direction and then tracking its progress.&lt;/p&gt;

&lt;p&gt;I presented some examples of KPIs and OKRs for Engineering Teams to illustrate the difference. SourceLevel provides lots of metrics, which may include your KPIs. Check out our &lt;a href="https://sourcelevel.io/engineering-metrics" rel="noopener noreferrer"&gt;Analytics feature&lt;/a&gt;, or &lt;a href="https://sourcelevel.io/schedule-your-demo" rel="noopener noreferrer"&gt;schedule a demo with me&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you need to define KPIs for your team, I am giving away a &lt;a href="https://sourcelevel.io/software-engineering-kpi-consultation" rel="noopener noreferrer"&gt;30-min consultation meeting&lt;/a&gt;. Schedule a demo so that we can discuss your specific needs.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://sourcelevel.io/blog/okrs-vs-kpis-explanation-with-examples-for-engineering-teams" rel="noopener noreferrer"&gt;OKRs vs. KPIs: explanation with examples for Engineering Teams.&lt;/a&gt; appeared first on &lt;a href="https://sourcelevel.io" rel="noopener noreferrer"&gt;SourceLevel&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>engineeringmanagemen</category>
      <category>engineeringmetrics</category>
      <category>deployfrequency</category>
      <category>leadtime</category>
    </item>
    <item>
      <title>Succeeding in a Tech Leadership position — The first 90 days</title>
      <dc:creator>George Guimarães</dc:creator>
      <pubDate>Mon, 21 Sep 2020 17:01:08 +0000</pubDate>
      <link>https://dev.to/sourcelevel/succeeding-in-a-tech-leadership-position-the-first-90-days-3ne3</link>
      <guid>https://dev.to/sourcelevel/succeeding-in-a-tech-leadership-position-the-first-90-days-3ne3</guid>
      <description>&lt;p&gt;Recently, I read a blog post titled &lt;a href="https://sourcelevel2.apms5.com/anywhere/m?s=sourcelevel2&amp;amp;m=s_5afcb0f0-033b-4acf-9d4d-4ee6cd08964d&amp;amp;u=e1jq4wvfdtfk4c9n6rvk0gj55n2m8da15mu46d265mwk8dj55mrm2h1j8cw36h2465248&amp;amp;r2=d1u78w3k78qjyxvqewq6prbjehgq4bkecnu2ychg68r2yc1q5xv70t9dc5q68bb3ehqjux38cmppcubjedu2ue9g5nj62ybk5w&amp;amp;n=1" rel="noopener noreferrer"&gt;VPE and CTO — The first 90 days&lt;/a&gt;. It’s a brief article in which James Turnbull shows a mind map with four areas that “every new technical leader needs to, at least, think about and explore when starting at a new organization.”&lt;/p&gt;

&lt;p&gt;Although the author doesn’t detail how to tackle each of them, the mind map itself is very valuable. It organizes information, and make explicit the many responsibilities of tech leadership positions.&lt;/p&gt;

&lt;p&gt;The areas are Company, Product, Technical, and Humans. For each one of them, he proposes to categorize the subtopics in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No action needed — everything is cool.&lt;/li&gt;
&lt;li&gt;This needs work — let’s work out what we need to do and when.&lt;/li&gt;
&lt;li&gt;There’s nothing here, and should that worry me?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In my experience, many Software Engineers feel unassisted in the process of dealing with a Tech Lead position, or when becoming a CTO. Therefore, the exercise sounded like an excellent idea to me.&lt;/p&gt;

&lt;p&gt;In addition to James’ contribution, I brought some pieces of advice for who is transitioning or starting to a new tech leadership position.&lt;/p&gt;

&lt;p&gt;I condensed a bit of my experience and some useful resources I’ve shared recently. I am sure they will help you somehow to succeed in a tech leadership position, at least in the first 90 days.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Company Area
&lt;/h2&gt;

&lt;p&gt;The company area subdivides into the following items:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What are we committing to?&lt;/li&gt;
&lt;li&gt;Our metrics&lt;/li&gt;
&lt;li&gt;Company metrics&lt;/li&gt;
&lt;li&gt;Mission&lt;/li&gt;
&lt;li&gt;Budget/Runway&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The mission and the answer to “what are we committing to?” are crucial pieces of information. If you have a clear understanding of them, designing an engineering roadmap gets more natural, and less risky.&lt;/p&gt;

&lt;p&gt;The engineering roadmap is an outcome of what I call “establishing a technical vision” for the team. It gives people a north. It must align with the company metrics, and fit in the budget.&lt;/p&gt;

&lt;p&gt;It’s part of your job to define a technical vision, and manage the team to comply with it. It applies to all tech leaders, from experienced Developers to CTO.&lt;/p&gt;

&lt;p&gt;If you’re a Tech Lead, there are chances you don’t have a budget for you to manage on your own. However, it’s as essential as it is for a higher position to understand your limits. I’ve already written &lt;a href="https://sourcelevel2.apms5.com/anywhere/m?s=sourcelevel2&amp;amp;m=s_5afcb0f0-033b-4acf-9d4d-4ee6cd08964d&amp;amp;u=e1jq4wvfdtfk4c9n6rvk0gj55n2m8da15mu46d265mwk8dj55mrm2h1j8cw36h2465248&amp;amp;r2=d1u78w3k78qjywvfent66tbccnv6av1ed5qjyrkcdxkjywvfdnjjurb4etmp6t9dctqq4bb4cnv6av3fe1jq4wtdeht62vkkd5u6jvved5q6ebbmdwpq8tb3d0pprtb1chjq4bbgdxtpjx39dxq0&amp;amp;n=2" rel="noopener noreferrer"&gt;some advice for Software Engineers transitioning to Tech Lead position&lt;/a&gt;. It may complement this article.&lt;/p&gt;

&lt;p&gt;The technical decisions in the engineering roadmap may require external tools, like &lt;a href="https://sourcelevel2.apms5.com/anywhere/m?s=sourcelevel2&amp;amp;m=s_5afcb0f0-033b-4acf-9d4d-4ee6cd08964d&amp;amp;u=e1jq4wvfdtfk4c9n6rvk0gj55n2m8da15mu46d265mwk8dj55mrm2h1j8cw36h2465248&amp;amp;r2=d1u78w3k78qjywvfent66tbccnv6av1ed5qjy&amp;amp;n=3" rel="noopener noreferrer"&gt;SourceLevel&lt;/a&gt;, software licenses, or equipment, to cite a few. They cost money. Even though you’re not passing the credit card, you’re an active participant in the process.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Product Area
&lt;/h2&gt;

&lt;p&gt;Heads of Product are concerned about what engineers develop, whereas Heads of Engineering’s sphere of responsibility is on “how”.&lt;/p&gt;

&lt;p&gt;However, CTOs and Tech Leads need to be aware of what’s coming in the future. Otherwise, they won’t be able to provide an effective infrastructure to achieve the business goals.&lt;/p&gt;

&lt;p&gt;Jame’s chart lists in the Planning, Input, and Output topics some interesting aspects that will lead to a better understanding of the product, and consecutively bringing more results.&lt;/p&gt;

&lt;p&gt;The last three topics can be more challenging for new leaders. They require abilities yet not well developed, like reporting to senior management and dealing with processes.&lt;/p&gt;

&lt;p&gt;If you have no idea what to report to senior management, check out what Lucas Colucci wrote a cunning article on the matter: &lt;a href="https://sourcelevel.io/blog/how-to-report-metrics-to-c-level-executives" rel="noopener noreferrer"&gt;How to report metrics to C-Level executives?&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In addition to Throughput by type of work (bug, feature, chore, etc), you may add the Time from Commit to Deploy, which measures how long a commit takes to reach production.&lt;/p&gt;

&lt;p&gt;You may have other metrics to drill down that numbers. The chart cites &lt;a href="https://sourcelevel.io/blog/why-you-should-use-lead-time-instead-of-cycle-time" rel="noopener noreferrer"&gt;Cycle Time&lt;/a&gt;, although I prefer to measure the Time to Review, Time to First Commit, and many other metrics I explained in an article called &lt;a href="https://sourcelevel.io/blog/50-shades-of-lead-time-measuring-each-part-of-the-development-process" rel="noopener noreferrer"&gt;50 Shades of Lead Time&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Human Area
&lt;/h2&gt;

&lt;p&gt;The human area is probably the most difficult area of the chart to deal with. It’s complex and very comprehensive. As a recent leader, it’s vital to pay attention to the people that make up your team.&lt;/p&gt;

&lt;p&gt;If you look thoroughly, you probably will figure out very simple decisions you can make to add value to their daily activities. Those quick wins help you to build social capital and respectful leadership.&lt;/p&gt;

&lt;p&gt;I consider 1-on-1’s and Mentoring the two main topics that the chart relates to the human area. In the webinar &lt;a href="https://sourcelevel.io/webinar-1-on-1-gestao-equipes-tecnologia" rel="noopener noreferrer"&gt;1:1s e Gestão de Equipes de Tecnologia&lt;/a&gt; (currently only available in Portuguese), I talked with Know Your Team’s CTO Daniel Lopes about both subjects.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Technical Area
&lt;/h2&gt;

&lt;p&gt;Managing the technical aspects of your new job probably is the part you’re most comfortable with, although it doesn’t mean it will be easy.&lt;/p&gt;

&lt;p&gt;Scaling the codebase at a sustainable pace is hard. Sooner or later there will be a pile of technical debts that needs prioritization.&lt;/p&gt;

&lt;p&gt;It’s fundamental to keep the track and tackle using an appropriate strategy. Otherwise, the team may get demotivated, the system gets messy and delivers take more than usual.&lt;/p&gt;

&lt;p&gt;To avoid that kind of problem, you can use static analysis tools, also known as linters. &lt;a href="https://sourcelevel.io/blog/what-is-a-linter-and-why-your-team-should-use-it" rel="noopener noreferrer"&gt;Linters are great&lt;/a&gt;. They can enforce style guides, avoid security issues, and find code smells, among other things.&lt;/p&gt;

&lt;p&gt;SourceLevel offers code review automation and metrics. Check how you can help &lt;a href="https://sourcelevel.io/how-tech-leads-and-team-leads-can-measure-teams-productivity" rel="noopener noreferrer"&gt;tech leads&lt;/a&gt; and &lt;a href="https://sourcelevel.io/how-engineering-managers-can-measure-teams-productivity" rel="noopener noreferrer"&gt;engineer managers / CTOs&lt;/a&gt; to deliver faster with quality.&lt;/p&gt;

&lt;h2&gt;
  
  
  Further Readings
&lt;/h2&gt;

&lt;p&gt;If you’re assuming a Tech Lead position, we have a dedicated page with &lt;a href="https://sourcelevel.io/tech-lead-everything-software-engineers-need-to-know-to-become-a-great-technology-leader" rel="noopener noreferrer"&gt;everything a software engineer needs to know&lt;/a&gt;. In it, we condensed the responsibilities, required soft skills, and how to be successful in the career.&lt;/p&gt;

&lt;p&gt;For CTOs and Engineering Managers, I strongly recommend &lt;a href="https://sourcelevel.io/blog/top-5-books-every-cto-and-engineer-manager-should-read" rel="noopener noreferrer"&gt;these 5 books&lt;/a&gt;, plus the e-book &lt;a href="https://sourcelevel.io/5-strategies-to-boost-software-deliveries-in-any-company" rel="noopener noreferrer"&gt;5 Strategies to Boost Software Deliveries in Any Company&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you enjoy receiving hand-picked articles on software engineering, &lt;a href="https://sourcelevel.io/software-engineering-newsletter" rel="noopener noreferrer"&gt;give our weekly newsletter a try&lt;/a&gt;. It’s full of excellent articles written by widely known professionals.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://sourcelevel.io/blog/succeeding-in-a-tech-leadership-position-the-first-90-days" rel="noopener noreferrer"&gt;Succeeding in a Tech Leadership position — The first 90 days&lt;/a&gt; appeared first on &lt;a href="https://sourcelevel.io" rel="noopener noreferrer"&gt;SourceLevel&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>engineeringmanagemen</category>
      <category>engineeringmetrics</category>
      <category>leadtime</category>
      <category>linters</category>
    </item>
    <item>
      <title>How Metrics Lead to Effective Sprint Retrospectives</title>
      <dc:creator>George Guimarães</dc:creator>
      <pubDate>Fri, 04 Sep 2020 18:12:54 +0000</pubDate>
      <link>https://dev.to/sourcelevel/how-metrics-lead-to-effective-sprint-retrospectives-3aee</link>
      <guid>https://dev.to/sourcelevel/how-metrics-lead-to-effective-sprint-retrospectives-3aee</guid>
      <description>&lt;p&gt;In the &lt;a href="https://www.atlassian.com/team-playbook/plays/retrospective" rel="noopener noreferrer"&gt;Atlassian’s playbook&lt;/a&gt;, it states that Sprint Retrospective’s goal is to &lt;em&gt;identify how to improve teamwork by reflecting on what worked, what didn’t, and why.&lt;/em&gt; Usually, the meeting consists of brainstorming what the team did well and what the team needs to do better.&lt;/p&gt;

&lt;p&gt;During my journey, I’ve been in many of these meetings, sometimes participating, sometimes facilitating. I’ve noticed that writing down post-its is painful for some people. When everybody is speaking, engineers get stuck and can’t think of anything else during the meeting.&lt;/p&gt;

&lt;p&gt;Then, right after the meeting is over, many situations and problems emerge. They would like to discuss those topics. However, they wait a couple of weeks for the next meeting. Rarely they remember the issue. I don’t think the meeting gets as effective as it could.&lt;/p&gt;

&lt;p&gt;To increase effectiveness, I think managers should promote a culture in which people raise their hands when the problems occur. They should discuss as soon and fresh in their mind as possible.&lt;/p&gt;

&lt;p&gt;If the issue needs a more extended discussion, the team can add it to Evernote, Notion, GitHub Gist, or any other shareable document. A couple of sentences telling the problem with a little context would do the job.&lt;/p&gt;

&lt;p&gt;The team can do the same as what did well. More post-its may pop up during the meeting. Then, the Scrum Master or facilitator can read the document.&lt;/p&gt;

&lt;p&gt;When the meeting starts, the team already has a list of essential items to discuss. It saves time and makes it more productive.&lt;/p&gt;

&lt;p&gt;So, how can teams make Sprint Retrospective meetings even more effective?&lt;/p&gt;

&lt;h2&gt;
  
  
  Using Pull Request Lead Time &amp;amp; Throughput in Sprint Retrospectives
&lt;/h2&gt;

&lt;p&gt;I’ve been talking about &lt;a href="https://sourcelevel.io/blog/software-engineering-kpis-how-to-choose-the-best-fitting-metrics" rel="noopener noreferrer"&gt;Pull Request Lead Time and Throughput&lt;/a&gt; for a while. If you’re familiar with the term Cycle Time, I recommend reading my article on why &lt;a href="https://sourcelevel.io/blog/why-you-should-use-lead-time-instead-of-cycle-time" rel="noopener noreferrer"&gt;I rather use Lead Time instead of Cycle Time&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To be explicit, in this article, Pull Request Lead Time measures how many days a Pull Request takes to be merged, and Throughput is the number of merged Pull Requests.&lt;/p&gt;

&lt;p&gt;These two metrics can truly help teams to understand how they are performing. Besides, teams benefit from them when they look for the variability along the weeks. The data bring valuable insights and allow teams to question their decisions.&lt;/p&gt;

&lt;p&gt;Let me explain through an example.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmk0sourcelevel699i08.kinstacdn.com%2Fwp-content%2Fuploads%2FScreen-Shot-2019-12-04-at-16.34.24.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmk0sourcelevel699i08.kinstacdn.com%2Fwp-content%2Fuploads%2FScreen-Shot-2019-12-04-at-16.34.24.png" width="800" height="400"&gt;&lt;/a&gt;Lead Time and Throughput – Chart provided by SourceLevel&lt;/p&gt;

&lt;p&gt;I took this chart as an example. Let’s say we’re back in January 2020. We’ve started the Sprint Retrospective creating post-its for the team’s issues and appraisals during the last weeks of December 2019.&lt;/p&gt;

&lt;p&gt;We’ve discussed a bit, and now someone shares the chart above to analyze the Pull Request Lead Time and Throughput.&lt;/p&gt;

&lt;p&gt;If the sprint is two-weeks long, we could use the metrics to ask ourselves questions like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why did we merge less Pull Requests in the week of Dec 2nd compared to Nov 25th?&lt;/li&gt;
&lt;li&gt;What did we do in the week of Nov 25th that allowed us to merge more Pull Requests than the last few Sprints?&lt;/li&gt;
&lt;li&gt;Why did the Lead Time increase in the week of Dec 2nd?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Asking this kind of question is fundamental. However, nobody should point fingers or blame other people. That’s not healthy nor effective.&lt;/p&gt;

&lt;p&gt;I would expect answers like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We merged less Pull Requests in the last week because we had a massive refactoring going on.&lt;/li&gt;
&lt;li&gt;In the Week of Nov 25th, we fixed several small bug fixes that popped up after deploying a problematic feature in the week before.&lt;/li&gt;
&lt;li&gt;The Lead Time increased because everyone held their reviews, and we made a task force to merge the refactoring.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The numbers themselves don’t matter as much as the story behind them. Now it’s time to ask what are learnings from the last iteration. Here are some alternatives to address those issues:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Should we avoid massive refactorings because they slow down everyone? Should we make it part of the team’s guidelines?&lt;/li&gt;
&lt;li&gt;Deploying complex features may lead to a higher escaped bugs rate. How to minimize the impact? Should we invest more effort into testing? Should we deliver smaller changes? Should we adopt a more incremental approach? Should we consider a gradual rollout?&lt;/li&gt;
&lt;li&gt;Was the task force an effective strategy? Maybe fewer people working on the refactoring at the same time ships it faster.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you can see, the data allow teams to derive relevant aspects for the Retrospective. The discussion is a tremendous source of knowledge and should generate insights for improving the development flow.&lt;/p&gt;

&lt;h2&gt;
  
  
  In short
&lt;/h2&gt;

&lt;p&gt;Sprint Retrospectives can be more effective using metrics. The team can extract valuable knowledge by questioning the Pull Request Lead Time and Throughput. Indeed, other metrics are useful, as well.&lt;/p&gt;

&lt;p&gt;The crucial point is to use the metrics to distill tacit knowledge and formalize it. What went well and what went wrong should promote changes in the process, feed guidelines, and motivate new practices.&lt;/p&gt;

&lt;p&gt;That’s what an effective Sprint Retrospective is about, in my opinion.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://sourcelevel.io/blog/how-metrics-lead-to-effective-sprint-retrospectives" rel="noopener noreferrer"&gt;How Metrics Lead to Effective Sprint Retrospectives&lt;/a&gt; appeared first on &lt;a href="https://sourcelevel.io" rel="noopener noreferrer"&gt;SourceLevel&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>engineeringmetrics</category>
      <category>leadtime</category>
      <category>throughput</category>
    </item>
    <item>
      <title>3 Classic Books for Tech Leads (or those aspiring to be)</title>
      <dc:creator>George Guimarães</dc:creator>
      <pubDate>Wed, 12 Aug 2020 18:04:01 +0000</pubDate>
      <link>https://dev.to/sourcelevel/3-classic-books-for-tech-leads-or-those-aspiring-to-be-59m8</link>
      <guid>https://dev.to/sourcelevel/3-classic-books-for-tech-leads-or-those-aspiring-to-be-59m8</guid>
      <description>&lt;p&gt;Books are the best resource for sharing knowledge in a not-assisted way. They go deep into a topic, or more briefly over a bunch of them. Although, as a Software Engineer, I learned a lot from blog posts, tweets, and conference talks, it was books that prepared me for the &lt;a href="https://sourcelevel.io/tech-lead-everything-software-engineers-need-to-know-to-become-a-great-technology-leader" rel="noopener noreferrer"&gt;Tech Lead role&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For this article, I created a list of 3 classic books I consider essential for whose transitioning — or desires to transition — to a leadership position in technology.&lt;/p&gt;

&lt;p&gt;Books can teach us many things. It’s familiar to us to feel like there’re too many things to learn and too little time to absorb it. We tend to get anxious and overloaded with the content easily. Relax.&lt;/p&gt;

&lt;p&gt;Take your time on reading, and take your time practicing it. Theory and practice converge at some point, and you realize you’ve been a leader for quite some time.&lt;/p&gt;

&lt;p&gt;It’s been quite a while since their publication. So, you may notice some old stories during your reading. However, I think they are classic, and as any other book in this category, they aged very well.&lt;/p&gt;

&lt;p&gt;That said, let’s go to the list.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Peopleware: Productive Projects and Teams
&lt;/h2&gt;

&lt;p&gt;The book was first published in 1987. The authors, Tom DeMarco and Timothy R. Lister talk about managing people through lots of stories. The stories may sound outdated and unlikely to happen nowadays, but their essence is still valid.&lt;/p&gt;

&lt;p&gt;Many things stated by the two authors are kind of obvious, like how expensive the turnover is, that we should include the team in the hiring process and that methodologies are restrictive.&lt;/p&gt;

&lt;p&gt;It’s a fantastic opportunity to recapitulate those topics; some were written more than 30 years ago.&lt;br&gt;
Peopleware was the first book that I recall to mention the need for a sociological view, not only a technical one over projects and teams. As such, Tom and Timothy’s theories are still valid.&lt;/p&gt;

&lt;p&gt;Among the theories, I how they state the importance of peer view (or &lt;a href="https://sourcelevel.io/everything-about-code-review-from-peer-review-to-automated-code-review" rel="noopener noreferrer"&gt;Code Review&lt;/a&gt;, in our case), and that knowledge workers, like software engineers, are continuously working their soft and hard skills.&lt;/p&gt;

&lt;p&gt;The theories go through the traps of &lt;a href="https://sourcelevel.io/how-tech-leads-and-team-leads-can-measure-teams-productivity" rel="noopener noreferrer"&gt;software engineering productivity&lt;/a&gt;, how office influences how we work, the impact of quality in our work, and much more.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Driving technical change: Why People on Your Team Don’t Act on Good Ideas, and How to Convince Them They Should
&lt;/h2&gt;

&lt;p&gt;If you’re new on persuasion and influence, the Driving Technical Change book is an excellent start. It’s full of anecdotes that surface how to gain skeptics buy-in for your ideas. It was published in 2010 and written by Terrence Ryan.&lt;/p&gt;

&lt;p&gt;The content works pretty well for an introductory approach on how to expose your ideas, find allies, and, most importantly, check whether your proposals are plausible.&lt;/p&gt;

&lt;p&gt;The book also lists some categories of skepticism, which was very valuable to me. I could better understand how the team responded to my inclinations and how I responded to others. &lt;br&gt;
This awareness is an excellent start for those wanting to manage large teams.&lt;/p&gt;

&lt;p&gt;I confess the book is not very practical, and that may be a disadvantage against it. However, it was very relevant when I read it for the first time, and I strongly suggest you read this short (~200 pages) book even though it won’t answer all your questions or tell you exactly what to do.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. The Mythical Man-Month: Essays on Software Engineering
&lt;/h2&gt;

&lt;p&gt;If you thought Peopleware was old because it was published in the late 80s, well, my next recommendation is 15 years earlier.&lt;/p&gt;

&lt;p&gt;The Mythical Man-Month by Fred Brooks was first published in 1975 (almost 50 years ago!) and covers &lt;a href="https://sourcelevel.io/software-engineering-newsletter" rel="noopener noreferrer"&gt;software engineering and management topics&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The author creates the concept of man-month. It’s the unit for the amount of work of a person in a month. Then, he defends that adding more people to a late project makes it later. It’s known as &lt;a href="https://en.wikipedia.org/wiki/Brooks%27s_law" rel="noopener noreferrer"&gt;Brook’s law&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It relates to the latest and hottest discussions in the agile world about “coordination costs”: when you increase the number of people in a group, organizing work gets harder. &lt;br&gt;
Thus, it requires more meetings and management efforts to align everybody, which delays the software development even more.&lt;/p&gt;

&lt;p&gt;It’s an inspiring book, a classic one, which, in a certain way, is still modern and worth the reading.&lt;/p&gt;

</description>
      <category>books</category>
      <category>engineeringmanagement</category>
      <category>techlead</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Software Engineering KPIs: how to choose the best fitting metrics</title>
      <dc:creator>George Guimarães</dc:creator>
      <pubDate>Fri, 17 Jul 2020 16:07:15 +0000</pubDate>
      <link>https://dev.to/sourcelevel/software-engineering-kpis-how-to-choose-the-best-fitting-metrics-b3</link>
      <guid>https://dev.to/sourcelevel/software-engineering-kpis-how-to-choose-the-best-fitting-metrics-b3</guid>
      <description>&lt;p&gt;Software Engineering KPIs (Key Performance Indicators) are measurable values that indicate the progress of engineering teams’ performance towards business objectives. Therefore, they need to be consistent, broad enough to consider everyone’s effort, and, most importantly, measurable.&lt;/p&gt;

&lt;p&gt;As they should represent the team’s or area’s work, it’s crucial to pick the right metrics to measure. Otherwise, metrics are useless.&lt;/p&gt;

&lt;p&gt;It’s a common mistake I’ve seen in the industry to measure productivity by the number of lines of code (LOC), the number of commits, or even the number of deploys. Don’t get me wrong, measuring the number of deploys may be a good fit, but it should fulfill a purpose (which may not relate to productivity).&lt;/p&gt;

&lt;p&gt;Usually, blog posts about KPIs concentrate lots of metrics, but few of those correlate the metrics with real objectives. So, in this article, I tried something different. I selected 5 Engineering KPIs metrics and then listed candidate objectives for them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Time from Commit to Deploy
&lt;/h2&gt;

&lt;p&gt;Finding the elapsed time from an engineer’s first commit in a branch to when that very same commit reaches production is the easiest way to measure the whole development flow. It’s easy because it can be automated by looking to git’s commits history.&lt;/p&gt;

&lt;p&gt;Many managers look for User Story Lead Time, which means they look for the time spent from adding a card to the “backlog” to the time the card reached “done.”&lt;/p&gt;

&lt;p&gt;Besides, just because a card is in the “backlog” column of a Kanban board doesn’t mean it’s ready for development. It may miss requirements, layout specifications, and test instructions, for instance.&lt;/p&gt;

&lt;p&gt;That’s why they give you an overview of the product’s flow. But, as engineers, we are usually more concerned about improving the development flow, which starts in “doing” and ends in “done” (deployed in production).&lt;/p&gt;

&lt;p&gt;So, this metric can relate to many objectives, here I name a few:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reduce the time to market of new features&lt;/li&gt;
&lt;li&gt;Reduce waste and rework&lt;/li&gt;
&lt;li&gt;Reduce the Cost of Delay&lt;/li&gt;
&lt;li&gt;Maximize engineering efficiency&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Deploy Frequency
&lt;/h2&gt;

&lt;p&gt;The deployment step is at the end of the value perceived by the customer (be it an internal ). So, it is indeed related to productivity, as each release concludes a job.&lt;/p&gt;

&lt;p&gt;However, the number of delivered features doesn’t relate precisely with business objectives. The goals established for a quarter are usually more abstract, for instance, reducing the time to market for new features.&lt;/p&gt;

&lt;p&gt;That said, instead of using Deploy Frequency for measuring the team’s productivity, it could take part in measuring objectives as such:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reduce the time to market of new features&lt;/li&gt;
&lt;li&gt;Improve the responsiveness to failures and outages due to bugs&lt;/li&gt;
&lt;li&gt;Mitigate security issues&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Code Coverage
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Code_coverage" rel="noopener noreferrer"&gt;Code Coverage&lt;/a&gt; measures the portion of code sustained under automated tests. The higher the coverage, the better.&lt;/p&gt;

&lt;p&gt;It is an excellent tool for indicating the code’s quality. Also, it could report the progress of the following objectives:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Increase the product/platform stability&lt;/li&gt;
&lt;li&gt;Reduce churn (in case there is evidence churn relates to a buggy product)&lt;/li&gt;
&lt;li&gt;Scale the technology area&lt;/li&gt;
&lt;li&gt;Reduce the time to market (as performing manual tests take more time)&lt;/li&gt;
&lt;li&gt;Reduce costs in the long run&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Pull Request metrics
&lt;/h2&gt;

&lt;p&gt;Collaborations review the code of their peer before it gets merged into the main branch. The conversation ignited by this practice is a piece of vital information for measuring collaboration and engagement.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://sourcelevel.io/pull-requests-checklists-metrics-and-best-practices-a-definitive-guide" rel="noopener noreferrer"&gt;Pull Request metrics&lt;/a&gt; are a set of measurements extracted from pull requests. Below I picked a few of them:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Time to Review: how much time do engineers take to open and merge a pull request?&lt;/li&gt;
&lt;li&gt;Time to First Comment: how much time do pull requests take to receive the first comment?&lt;/li&gt;
&lt;li&gt;Number of Comments: how many comments do pull requests receive?&lt;/li&gt;
&lt;li&gt;Cross Team Collaboration: do teams review other team’s pull requests?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And here is a list of objectives pull request metrics can assist in measuring:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Spread knowledge through the team&lt;/li&gt;
&lt;li&gt;Introduce a Code Ownership Culture&lt;/li&gt;
&lt;li&gt;Lessen the ramp-up curve for junior engineers&lt;/li&gt;
&lt;li&gt;Create a harmonious and ever-learning environment&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Focus on urgent bugs
&lt;/h2&gt;

&lt;p&gt;I’ve seen many companies implementing the objective of achieving “zero bugs” for the next quarter. The KPI would be the number of bugs found in production (by the team or by the end-user).&lt;/p&gt;

&lt;p&gt;This approach is flawed, first of all, because it’s near impossible to eliminate all bugs. We’re humans, and bugs happen. Secondly, we can’t compare a cosmetic bug with a bug preventing the user from paying an order. In third place, if you only measure the number of bugs quantitatively, people tend not to register them. No bugs filled means goal achieved.&lt;/p&gt;

&lt;p&gt;Measuring if the focus is on working on critical bugs can prevent such misunderstandings. For that purpose, you can combine metrics, like the number of urgent bugs (that are more severe and impactful than an agreed level), the time the team took to fix, and if the fix was definitive.&lt;/p&gt;

&lt;p&gt;Of course, you can add more metrics. I strongly suggest having complementary metrics to ensure that the team takes no shortcuts to mask metrics values.&lt;/p&gt;

&lt;p&gt;Some objectives focus on bugs benefit:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improve the product value perception by the final-user&lt;/li&gt;
&lt;li&gt;Reduce cost by focusing on adding more features (instead of fixing cosmetic or banal bugs)&lt;/li&gt;
&lt;li&gt;Foster a harmonious and effective culture&lt;/li&gt;
&lt;li&gt;Foster a collaborative culture between engineers and Quality Assurance personnel&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  In short
&lt;/h2&gt;

&lt;p&gt;There are plenty of articles out there that list relevant Engineering KPIs with metrics. However, it’s prevalent to see managers picking the wrong &lt;a href="https://sourcelevel.io/pull-requests-checklists-metrics-and-best-practices-a-definitive-guide" rel="noopener noreferrer"&gt;engineering metrics&lt;/a&gt;, which ends up in an undesired behavior of the team members.&lt;/p&gt;

&lt;p&gt;That’s why Engineering KPIs must align with business goals. It gives direction to the team to game on it. So, managers must wisely choose which of the KPI measurements make sense for the context of their team.&lt;/p&gt;

&lt;p&gt;In practice, managers define KPIs for already-established objectives. In this article, I listed possible objectives for each KPI metric to exercise in the opposite direction.&lt;/p&gt;

&lt;p&gt;The idea behind the article is to help you to check whether a KPI measurement is a good fit or not.&lt;/p&gt;

&lt;p&gt;This practice is particularly useful while reading an article with lots of Engineering KPIs metrics. It helps me a lot, and I hope It can help you as well.&lt;/p&gt;

&lt;p&gt;If you’re looking for &lt;a href="https://sourcelevel.io/automated-code-review" rel="noopener noreferrer"&gt;automated Code Review&lt;/a&gt; or &lt;a href="https://sourcelevel.io/engineering-metrics" rel="noopener noreferrer"&gt;Pull Request Metrics&lt;/a&gt;, check out &lt;a href="https://sourcelevel.io/features" rel="noopener noreferrer"&gt;SourceLevel features&lt;/a&gt; for more information, or &lt;a href="https://sourcelevel.io/pricing" rel="noopener noreferrer"&gt;start the 14-days trial&lt;/a&gt;. Our tool is free for teams up to 5 members.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://sourcelevel.io/blog/software-engineering-kpis-how-to-choose-the-best-fitting-metrics" rel="noopener noreferrer"&gt;Software Engineering KPIs: how to choose the best fitting metrics&lt;/a&gt; appeared first on &lt;a href="https://sourcelevel.io" rel="noopener noreferrer"&gt;SourceLevel&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>engineeringmanagemen</category>
      <category>engineeringmetrics</category>
      <category>deploy</category>
      <category>deployfrequency</category>
    </item>
    <item>
      <title>How to use Engineering Metrics in Daily Stand-up Meetings</title>
      <dc:creator>George Guimarães</dc:creator>
      <pubDate>Wed, 10 Jun 2020 22:07:14 +0000</pubDate>
      <link>https://dev.to/sourcelevel/how-to-use-engineering-metrics-in-daily-stand-up-meetings-5239</link>
      <guid>https://dev.to/sourcelevel/how-to-use-engineering-metrics-in-daily-stand-up-meetings-5239</guid>
      <description>&lt;p&gt;Software engineering metrics help daily stand-up meetings to be more productive for the team. They can become tedious or irrelevant for many developers when they frequently exceed the fifteen minutes time box or even sound like a work report.&lt;/p&gt;

&lt;p&gt;Engineers that work together usually know what each one is working at the moment. There’s no need to go over through details. However, some topics should surface during the meeting.&lt;/p&gt;

&lt;p&gt;After reading the &lt;a href="https://sourcelevel.io/5-practical-strategies-to-boost-software-deliveries-in-any-company" rel="noopener noreferrer"&gt;5 Strategies to Boost Software Deliveries in Any Company&lt;/a&gt;, a free e-book we released this week in a partnership with Wesley Zapellini, I realized I hadn’t shared my thoughts on such an important meeting as the daily stand-up.&lt;/p&gt;

&lt;p&gt;However, it’s been a while since I got myself distant from the &lt;a href="https://www.range.co/" rel="noopener noreferrer"&gt;Scrum’s script for the meeting&lt;/a&gt;. In my experience, I learned that daily stand-ups should are crucial for &lt;strong&gt;tactical coordination for the day&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;To achieve that, when I worked with Plataformatec’s team, I used to organize the meeting in three different moments.&lt;/p&gt;

&lt;p&gt;Firstly, I would share the screen and have everyone looking to the Kanban board and reading it from right to left. The more at right the work items are, the closer they are from bringing value to the business. In other words, I would focus the tactical coordination on moving the cards forward in the board as much as possible, starting by the ones at the end of the pipeline.&lt;/p&gt;

&lt;p&gt;Wesley explores this subject in a more depth way in the e-book. Besides, he brings studies showing how &lt;strong&gt;limiting the work in progress impacts the deploy frequency&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In a second moment, I would ask for blocks or other relevant issues for the day. After some discussion, we’d rearrange the plan if needed.&lt;/p&gt;

&lt;p&gt;Finally, we’d also look at some engineering metrics. It was essential practice for improving the process continuously. As we were aware of the metric’s history, we could take action before raising any considerable problem.&lt;/p&gt;

&lt;p&gt;When measuring the pull request lead time daily, it is easy to see its variation over time. By plotting a control chart, long-living pull requests become visible, and the team should focus on finding alternatives to merge (or even close) it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmk0sourcelevel699i08.kinstacdn.com%2Fwp-content%2Fuploads%2FScreen-Shot-2020-01-20-at-17.44.18.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmk0sourcelevel699i08.kinstacdn.com%2Fwp-content%2Fuploads%2FScreen-Shot-2020-01-20-at-17.44.18.png" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pull Request Control Chart&lt;/p&gt;

&lt;p&gt;The screenshot is from SourceLevel, which integrates with GitHub and GitLab and visually organizes the information. However, you can use any tool that supports plotting a control chart. By looking at the yellow dots, the team can spot pull requests that are taking more time than desired. If this particular pull request is taking more time than desired, the engineers can discuss how to handle it.&lt;/p&gt;

&lt;p&gt;Here are examples of actions that can emerge from discussions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;close the pull request because the change is not relevant anymore&lt;/li&gt;
&lt;li&gt;ask for a review for the team because there was none so far&lt;/li&gt;
&lt;li&gt;merge done but neglected pull requests&lt;/li&gt;
&lt;li&gt;schedule a meeting with someone from another team to discuss technical details that are holding the pull request&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the team needs further investigation of a specific pull request, it would be nice to have a single table with work in progress from all repositories.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmk0sourcelevel699i08.kinstacdn.com%2Fwp-content%2Fuploads%2FScreen-Shot-2020-01-20-at-17.00.45.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmk0sourcelevel699i08.kinstacdn.com%2Fwp-content%2Fuploads%2FScreen-Shot-2020-01-20-at-17.00.45.png" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;List of Pull Requests needing attention&lt;/p&gt;

&lt;p&gt;In SourceLevel, you can quickly find Pull Requests needing attention from all monitored repositories. It provides a digested version of the chart. The list prioritizes by the pull request lead time, idleness, and size/impact of the changes. It’s useful for technical and non-technical people to find what needs to be done.&lt;/p&gt;

&lt;p&gt;The benefits include a &lt;strong&gt;decrease in Lead Time and an increase of Throughput&lt;/strong&gt;. Besides, it may increase the deploy frequency, although it depends on other variables, like how automated is the CI/CD, or internal policies.&lt;/p&gt;

&lt;p&gt;My main point is that engineering metrics can &lt;strong&gt;benefit the whole team, not only the manager&lt;/strong&gt;. And it’s crucial to keep an eye on the charts regularly. Otherwise, it doesn’t help.&lt;/p&gt;

&lt;p&gt;Looking for the Lead Time (or Time to Review) of each Pull Request is the most critical practice for daily stand-ups. The quantitative, easy to understand, and actionable. Many healthy discussions emerge, and at the same time, all derivated tasks are very straightforward.&lt;/p&gt;

&lt;p&gt;Have you tried to use engineering metrics in stand-up meetings? Share your ideas in the comments below!&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://sourcelevel.io/blog/how-to-use-engineering-metrics-in-daily-stand-up-meetings" rel="noopener noreferrer"&gt;How to use Engineering Metrics in Daily Stand-up Meetings&lt;/a&gt; appeared first on &lt;a href="https://sourcelevel.io" rel="noopener noreferrer"&gt;SourceLevel&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>codereview</category>
      <category>engineeringmetrics</category>
      <category>leadtime</category>
      <category>throughput</category>
    </item>
  </channel>
</rss>
