<?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: Parth Makawana</title>
    <description>The latest articles on DEV Community by Parth Makawana (@parthmakawana).</description>
    <link>https://dev.to/parthmakawana</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%2F388383%2Fe2e84579-7642-4f54-9028-cf004a71afcc.jpeg</url>
      <title>DEV Community: Parth Makawana</title>
      <link>https://dev.to/parthmakawana</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/parthmakawana"/>
    <language>en</language>
    <item>
      <title>What happened to “Javascript Killer” WebAssembly? Is it already dead?</title>
      <dc:creator>Parth Makawana</dc:creator>
      <pubDate>Fri, 27 May 2022 08:53:02 +0000</pubDate>
      <link>https://dev.to/parthmakawana/what-happened-to-javascript-killer-webassembly-is-it-already-dead-3817</link>
      <guid>https://dev.to/parthmakawana/what-happened-to-javascript-killer-webassembly-is-it-already-dead-3817</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EzeCFVdZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2400/1%2AFirnk_otGUnu2S-jj7XaRQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EzeCFVdZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2400/1%2AFirnk_otGUnu2S-jj7XaRQ.jpeg" alt="" width="880" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Looking at the current technology market situation, the hype around Web3.0, Metaverse, Blockchain, AI, ML etc., reminds us of how rapidly the technology market changes. It is so rapidly evolving that technologies that we thought would be the future of the industry today, would disappear entirely from the industry a day after tomorrow.&lt;/p&gt;

&lt;p&gt;We have so many examples of tech that were hyped for doom, many of them are either extinct or on the verge of extinction. Just a few of them are surviving. and merely a handful of them could thrive.&lt;/p&gt;

&lt;p&gt;We’ll look back at one such hyped tech “Web Assembly” by answering What, Why and When:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is WebAssembly?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why do we call it Hyped for doom?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When will it be dead?&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1C9TrOtJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/15904/0%2Azg5wsYLJFxaGrHq3" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1C9TrOtJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/15904/0%2Azg5wsYLJFxaGrHq3" alt="Photo by [Claudio Schwarz](https://unsplash.com/@purzlbaum?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)" width="880" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;First, let us understand what is WebAssembly or WASM for short? Why did everyone think it would become a “Javascript Killer”?&lt;/p&gt;

&lt;p&gt;Now, What is WebAssembly? If we go by the definition from its official &lt;a href="https://webassembly.org/"&gt;website&lt;/a&gt;, It states:&lt;/p&gt;

&lt;blockquote&gt;
&lt;h1&gt;
  
  
  WebAssembly (abbreviated &lt;em&gt;Wasm&lt;/em&gt;) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable compilation target for programming languages, enabling deployment on the web for client and server applications.
&lt;/h1&gt;
&lt;/blockquote&gt;

&lt;p&gt;Basically, It is a low-level, assembly-like language which gets stored in compact binary format so that it can give a near-native performance.&lt;/p&gt;

&lt;p&gt;As mentioned in the definition, WASM was designed as a compilation target for other languages, allowing server-side code (such as C or C++ code) to be compiled into it and executed inside the browser.&lt;/p&gt;

&lt;p&gt;It can let you code in any low-level programming language thus removing the barrier of understanding a particular programming language. It has native browser support so it is accepted across the browsers.&lt;/p&gt;

&lt;p&gt;Imagine a non-web developer writing a piece of code in a non-web-compatible language using WASM and still being able to create amazing web apps that can run on browsers with near-native speed. That is the power of WASM and that was what’s promised.&lt;/p&gt;

&lt;blockquote&gt;
&lt;h1&gt;
  
  
  Now, It was never intended to crush out javascript in the first place, but to work alongside it and overcome its issues and boost its advantages.
&lt;/h1&gt;
&lt;/blockquote&gt;

&lt;p&gt;However, as I mentioned it was hyped to a general audience as a replacement for javascript, which is totally incorrect. People across the world started comparing it with javascript as if WASM was a rival to JS but in reality, WASM is a companion of JS and that’s where the tag “Javascript Killer” came into being.&lt;/p&gt;

&lt;p&gt;The reason why people started comparing WASM with JS is that WASM promised to solve several issues that JS has like Security issues, Cross-platform support, Improved speed, Improved Debugging, and Garbage collection to name a few.&lt;/p&gt;

&lt;p&gt;But did it deliver on that promise? Let’s find out in my next section.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lq_NKjdu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/7872/0%2A8-mPhui8H9NeHdXr" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lq_NKjdu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/7872/0%2A8-mPhui8H9NeHdXr" alt="Photo by [The 77 Human Needs System](https://unsplash.com/@77hn?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)" width="880" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, Why did we call WASM, hyped for doom? Is it because it did not deliver on its promises? Well, partially, YES!!!&lt;/p&gt;

&lt;p&gt;The promises it delivered are Faster and easy coding, cross-platform development, and biggest of all, Improved performance.&lt;/p&gt;

&lt;p&gt;It does deliver faster and easy coding as it allows developers to write the code in their native programming language so little or no training and exercise are required.&lt;/p&gt;

&lt;p&gt;The biggest marketed feature of WASM was its improved performance over JS. And It does deliver on that promise. The obvious reason for it is that it translates into a binary instruction which is of course lite weight than JS text files. There have been many articles around the internet which did benchmark tests across different browsers and devices.&lt;/p&gt;

&lt;blockquote&gt;
&lt;h1&gt;
  
  
  And usually, WASM was 30–60% faster than JS depending upon the browser and devices.
&lt;/h1&gt;
&lt;/blockquote&gt;

&lt;p&gt;So what went wrong, you might ask?&lt;/p&gt;

&lt;p&gt;Though it exceeded the benchmark tests, Manier times, users and developers have found that real-world performance does not match that of benchmarks. It does exceed JS performance but not as much as the benchmarks suggested. Which basically disappointed many people.&lt;/p&gt;

&lt;blockquote&gt;
&lt;h1&gt;
  
  
  But one of the most prominent failures for WASM was its promise of improved security over JS.
&lt;/h1&gt;
&lt;/blockquote&gt;

&lt;p&gt;We all know JS has several security issues on its own, and WASM promised to resolve them, however, in real-world applications, it failed to deliver on that promise. If you look at statistics &lt;a href="https://www.zdnet.com/article/half-of-the-websites-using-webassembly-use-it-for-malicious-purposes/"&gt;here&lt;/a&gt;, It states that Half of the websites using WebAssembly use it for malicious purposes.&lt;/p&gt;

&lt;p&gt;So the very tool that was designed to improve security is being used for malicious purposes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--urwFXHjt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2AM-CP9VPdyZqU2kYMl6C_1w.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--urwFXHjt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2AM-CP9VPdyZqU2kYMl6C_1w.gif" alt="" width="640" height="524"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That’s why is said it partially did not deliver on its promise.&lt;/p&gt;

&lt;p&gt;But that’s not all.&lt;/p&gt;

&lt;blockquote&gt;
&lt;h1&gt;
  
  
  We, the developers and people of the tech community understand that new technology can not be perfect at first. It takes many iterations to be in shape and start delivering. So we really want WASM to gradually improve and start to deliver over iterations.
&lt;/h1&gt;
&lt;/blockquote&gt;

&lt;p&gt;But the problem WASM faced apart from its security issues and some performance mismatch between the benchmark and real-time is the marketing and getting the attention of developers and people of the tech community.&lt;/p&gt;

&lt;p&gt;Though it was released with a bang in 2017 and later many products like Blazor made headlines with WASM, Many people do not know what WASM is capable of doing or have never got their hand on it to experience how it is different from other front-end/client-side frameworks. It’s been too long to get its well-deserved attention and widespread adaptation in real-world applications.&lt;/p&gt;

&lt;p&gt;So, combining poor after-launch marketing along with security issues, It became the hyped for doom tech.&lt;/p&gt;

&lt;p&gt;So the question we now raise is how long will it be able to continue this way? Will it survive any further or if not when it will be dead eventually? Let’s find that out in the next segment.&lt;/p&gt;

&lt;h2&gt;
  
  
  When?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JjhmH61D--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/12000/0%2A_5gmDGeWktN7oCWH" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JjhmH61D--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/12000/0%2A_5gmDGeWktN7oCWH" alt="Photo by [Aron Visuals](https://unsplash.com/@aronvisuals?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)" width="880" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It’s been 5 years since WASM was released and its potential is still fully not explored and adapted for the obvious reasons we mentioned above.&lt;/p&gt;

&lt;p&gt;So will it be able to continue this way and survive, or will it be dead? and when it will be dead?&lt;/p&gt;

&lt;p&gt;Well, I truly wish it to succeed as it's an exciting piece of tech with lots of potentials. So I really do not wish it to go into dust this soon. But unless it resolves the issues I mentioned above, It won't be long before WASM may get forgotten.&lt;/p&gt;

&lt;p&gt;It has the potential to co-operate with the current technology trends like Gaming, metaverse and crypto/blockchain applications as it can do the huge computation in real-time with high performance. So If adopted well, it can become the prominent force driving client-side development provided it starts delivering on its promises.&lt;/p&gt;

&lt;p&gt;Until then, Happy Learning!!!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
      <category>webassembly</category>
    </item>
    <item>
      <title>Are you using Agile or Lipstick Agile?</title>
      <dc:creator>Parth Makawana</dc:creator>
      <pubDate>Tue, 10 May 2022 08:56:30 +0000</pubDate>
      <link>https://dev.to/parthmakawana/are-you-using-agile-or-lipstick-agile-96f</link>
      <guid>https://dev.to/parthmakawana/are-you-using-agile-or-lipstick-agile-96f</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1b1LkqSm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2AhJR6TcA5sLQZaTE7A1CjFQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1b1LkqSm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2AhJR6TcA5sLQZaTE7A1CjFQ.jpeg" alt="" width="880" height="402"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agile Methodology was founded in the early 2000, but it picked up pace in the early 2010s.&lt;/p&gt;

&lt;p&gt;Since then, more and more organisations try to be agile in their core values and practices (People call it “Living Agile”), but others following them just boast about being agile and call it a day, without solving core issues and following its principles. (Call it “Lipstick Agile”)&lt;/p&gt;

&lt;p&gt;In this article, We’ll revolve around Lipstick Agile and answer the following questions:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why do we call it “Lipstick Agile”?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are its traits?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When should you be alarmed? and&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How can you overcome it?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let’s get started then!!!&lt;/p&gt;

&lt;h2&gt;
  
  
  Why?
&lt;/h2&gt;

&lt;p&gt;First, Let’s go through the term “Lipstick Agile”.&lt;/p&gt;

&lt;p&gt;I apologise for borrowing the term from &lt;a href="https://medium.com/@stefanw?source=post_page-----2cce052b9bda--------------------------------"&gt;Stefan Wolpers&lt;/a&gt;, But the term is surprisingly simple and complex at the same time.&lt;/p&gt;

&lt;p&gt;A basic explanation of why it’s called “Lipstick Agile” is the simple illustration of the first image in this story where a pig is forced to apply the lipsticks and makeup to make it look good. It’s obvious that even though we apply as many lipsticks, a pig at its core is still a pig and it will do as good as a pig even if we expected it to be better after applying lipstick.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Likewise, If you try to enforce the Agile manifesto under individual’s throats without addressing the organisation’s and individual’s static and rigid mindset, you are falling in the trap of Lipstick Agile.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4EE2APK7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2604/1%2A8wCy3KtJRs6dyxq0Vc0A9Q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4EE2APK7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2604/1%2A8wCy3KtJRs6dyxq0Vc0A9Q.png" alt="" width="880" height="285"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Though it’s a very simple explanation of the term, the complexity of this term lies in finding out if you are using Lipstick Agile or not?&lt;/p&gt;

&lt;p&gt;So I’ll try to address and declutter that complexity in the next segment.&lt;/p&gt;

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

&lt;p&gt;Now, What are the traits of Lipstick Agile? How can you identify if you are falling into Lipstick agile or not?&lt;/p&gt;

&lt;p&gt;For that, as an individual/leader, you would need to ask yourself these questions by being true to yourself. Don’t give answers by your theoretical knowledge but by answering it from what you practice.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0hVe1h4r--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/7608/0%2A9ky02TYDU4IDbLqU" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0hVe1h4r--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/7608/0%2A9ky02TYDU4IDbLqU" alt="Photo by [Matt Walsh](https://unsplash.com/@two_tees?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)" width="880" height="1320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ready?&lt;/p&gt;

&lt;p&gt;Here they are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Is your team’s or individual’s mindset rigid? Do they or you welcome changes as they come than resist them?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Is your appetite for numbers like revenue, contracts and customer retention strong? or can you be flexible for negative numbers?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Do you stick to the processes and tools set by your organisation/team? or do you empower or motivate individuals to explore various processes and tools?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Is working software important to you over the history of tickets and documentation?&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If the answers given by your heart are on a scale of No to neutral, then you are definitely using Lipstick Agile. Even if you said yes to most of it, I would burst that bubble in just a moment. But before that, you might be wondering, these questions seem familiar. And you’re right!!! These are taken straight from the &lt;a href="https://agilemanifesto.org/"&gt;Agile Manifesto&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;So even if you said yes to the above questions, let’s break those further down.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Do you stick to the agile ceremonies even if they are not fruitful? Do you keep doing the standup meetings even if it’s just status updates? Do you even work on good, bad or improvement points from retrospectives?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Do you believe that increasing revenue or new contracts or customer retention ratio are the primary metrics to measure success? Do you put numbers like those, preference over customer satisfaction?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Is Burndown chart, Velocity, CFD, Throughput, Time logs, Bug counts, Jira reports and sticking to processes set by the organisation/team more important to you than the business value of features and an individual?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Do you prefer everything should be documented, be it in Docs, Jira Ticket or Commits? Do you rigidly maintain the history of work done by individuals than worry about the impact of work done?&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now I assume, your answers might have changed because that’s what most of the “Self Trained Agile Organisations” do.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Now, don’t get me wrong, I do not say that numbers like revenue, contracts, retention ratio etc and metrics like burndown, velocity, reports etc doesn't matter. It most certainly does. But it does only when team &amp;amp; individuals have matuared enough in Agile Transformation.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Following them rigorously and making decisions based on that while your team or individuals still don't have an Agile mindset or are not trained for it, is of no use. In fact, It may adversely affect your team/organisation.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--w8_ZbyAZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2ApmS_rpOaxNpi1ng0QuVg7g.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--w8_ZbyAZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2ApmS_rpOaxNpi1ng0QuVg7g.gif" alt="" width="880" height="277"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lipstick Agile works fine for most of the teams &amp;amp; organisations who take pride in being Agile even if it’s false agile. It only starts to get painful when things start to go sideways. That’s when you should be alarmed. We’ll discuss those alarms in the next section.&lt;/p&gt;

&lt;h2&gt;
  
  
  When?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0wwCzI5n--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/6528/0%2AtPK_DL35GuzsQ9p1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0wwCzI5n--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/6528/0%2AtPK_DL35GuzsQ9p1" alt="Photo by [Eilis Garvey](https://unsplash.com/@eilisgarvey?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)" width="880" height="1324"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you should wake up from false pride in using Agile while you are actually using Lipstick Agile? What are the signs of that wake-up call?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Well, for starters, the first and major indication would be your customers. If they are not happy with what you deliver or they don't find business value of the features you have delivered, then you should be alarmed.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NjiMCP31--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2AoRUtxu8Ey1ekR_bX3nV39A.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NjiMCP31--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2AoRUtxu8Ey1ekR_bX3nV39A.gif" alt="" width="880" height="274"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The second would be the satisfaction of individuals. If the individuals feel that the work they are doing is not making any sense, or they feel the meetings or several agile ceremonies are wasting their time without giving any fruitful results, or they feel that the processes and tools they are using are rather an overkill than facilities, then you should be alarmed.&lt;/p&gt;

&lt;p&gt;Third would be your feeling about the deliveries and performance of your team. If you think that burndown, throughput, bug count, bug severities etc.(Yes, I admit here, metrics are relevant) and most importantly, the business values of deliveries are going sideways, or the teams or individuals are not in sync with themselves or with stakeholders and they are still working in silos, then you should be alarmed.&lt;/p&gt;

&lt;p&gt;Now that we know what are the indications of a wake-up call, how can one overcome that? That’s what we’ll discuss in the next section.&lt;/p&gt;

&lt;h2&gt;
  
  
  How?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eYaNmnzY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/6064/0%2AVhCNMBgPr2XqhVVl" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eYaNmnzY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/6064/0%2AVhCNMBgPr2XqhVVl" alt="Photo by [Nick Fewings](https://unsplash.com/@jannerboy62?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)" width="880" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, Let’s circle back to the first question I asked in the breakdown questions in the “What?” section. Because the best solution to overcome the trap of Lipstick Agile lies there.&lt;/p&gt;

&lt;p&gt;The question I asked was: Do you even work on good, bad or improvement points from retrospectives?&lt;/p&gt;

&lt;p&gt;The retrospective is a very important ceremony which allows the team to focus on what went well, what didn’t go well and what we need to improve.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Most of the organisations/teams that are using Lipstick Agile either get away from this important ceremony totally or perform it just for the sake of … well, performing it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The prime reason the retrospective is being done for name’s sake is that individuals and stakeholders lose their interest in performing it over time, as the points like what went well, what didn’t go well and what needs to be improved etc. stay in retrospect board only. It doesn’t translate into action items for future sprints.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;To overcome the trap of Lipstick Agile, one should empower and trust their teams, individuals, stakeholders and end-users to provide actual feedback rather than imposing fear or letting them have disinterest in that ceremony by not making it fruitful.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bjLzexY---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2Ab9MpT9HsVtpnP3gOe767gA.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bjLzexY---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2Ab9MpT9HsVtpnP3gOe767gA.gif" alt="" width="880" height="274"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another way to overcome it is to envision and tackle real-world business values. Measure the work done by the team on a business value scale. Empower the individuals to raise red flags when they feel the work they are doing isn’t adding any value.&lt;/p&gt;

&lt;p&gt;Ask individuals to remember to raise red flags by asking them to remember: &lt;br&gt;
&lt;strong&gt;“If it doesn’t make any sense to you, it shouldn’t be there”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once you fix those 2, the third alarm goes off automatically.&lt;/p&gt;

&lt;p&gt;Hope you found it useful and practical.&lt;/p&gt;

&lt;p&gt;Happy Learning!!!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>career</category>
      <category>agile</category>
    </item>
    <item>
      <title>The end of Mediocre Software Developer is near?</title>
      <dc:creator>Parth Makawana</dc:creator>
      <pubDate>Tue, 10 May 2022 08:55:24 +0000</pubDate>
      <link>https://dev.to/parthmakawana/the-end-of-mediocre-software-developer-is-near-1jg3</link>
      <guid>https://dev.to/parthmakawana/the-end-of-mediocre-software-developer-is-near-1jg3</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GF7SQfZr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/5896/0%2AJ57QkAD6S9eNO1hE" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GF7SQfZr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/5896/0%2AJ57QkAD6S9eNO1hE" alt="Photo by [Wicliff Thadeu](https://unsplash.com/@wcfthdu?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)" width="880" height="1320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As we all know, Software development is a challenging and continuously evolving field. Not just today, It has been this way always. But in recent times, it has been accelerated at such a pace that many developers find it difficult to keep up.&lt;/p&gt;

&lt;p&gt;So the question we are asking is: Will the fast-paced and rapidly evolving nature kill the jobs of mediocre programmers?&lt;/p&gt;

&lt;p&gt;Again as per my previous articles, I’ll go by answering What, Why, When and How.&lt;/p&gt;

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

&lt;p&gt;What do I mean by Mediocre developers and the end of them?&lt;/p&gt;

&lt;p&gt;Let’s first go with a Mediocre developer. I believe there are several traits of a Mediocre developer. Like:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Little or no interest in programming&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Procrastinate to cope with the latest trends&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Does not deep dive into the solutions he/she is working on&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now, What do I mean by end of mediocre developers? I do not mean that they would disappear from the industry. but realistically, they would keep doing mediocre jobs and maintain the legacy systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why?
&lt;/h2&gt;

&lt;p&gt;First, we need to understand why this question arose?&lt;/p&gt;

&lt;p&gt;We’ve all been saying and seeing the fact that AI and robotics would eventually take over many jobs. But we all thought that Software Development is a field that is the brain behind AI, so developers would never be obsolete. However, in recent years, the increasing use of no-code and CMS based websites pushes us to think otherwise.&lt;/p&gt;

&lt;p&gt;We think that no-code and CMS based websites can’t create complex and logical web apps. and that’s correct too. But then came GPT-3 and people created some amazing apps over it. And in October 2021, GitHub launched Copilot which allows a user (even non-technical users) to code by just providing comments or requirements in plain English language.&lt;/p&gt;

&lt;p&gt;I know copilot is more like a fun playground right now, but it’s impressive to see how it can even provide solutions to moderate to some highly complex leetcode problems.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We still think it’s in an early stage, and it can never be as perfect and understanding as a human being, but it’s a start.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And then came GitHub Copilot Labs. and it blew my mind.&lt;/p&gt;

&lt;p&gt;It explains code, answers some specific questions, and even translates the code from one programming language to another.&lt;/p&gt;

&lt;p&gt;It can also let users understand the existing code so a developer would not always be required even if there need some changes in existing code.&lt;/p&gt;

&lt;p&gt;Both extensions combined make us think, are the tech giants trying to get rid of expensive and slow human intelligence with cheap and fast artificial intelligence?&lt;/p&gt;

&lt;p&gt;Apart from that, the rise of Web3.0 and decentralized applications would also push the mediocre developers out of mainstream development. It’s still too early to say whether web3.0 will become a driving force of this decade or not, but it would certainly make some impact.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;When?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;So when is this going to happen? When will the Mediocre developers become obsolete?&lt;/p&gt;

&lt;p&gt;There’s no definite timeline one can think of. But with advancements in AI, It seems pretty closer than we think. My best guess would be that within the next 5 years, all the new developments would gradually shift to methods like no-code and may also use a non-technical person with GitHub co-pilot as a pair programmer.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It doesn't mean developers will be out of jobs. The projects which require heavy business logic or heavy configurations or personalisation or heavy database structure that a human brain can do better and faster than an AI which provide false results in that case, would always require a developer.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;How?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;How a developer can save him/herself? Well, There’s only one way. He/she will have to stop procrastinating and start learning new technologies.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It would be either AI or Web3.0 that would cause the end of Mediocre developers.&lt;br&gt;
 So It should be the primary goal to get on either of the trains to save him/herself from getting thrown out of the station before the trains left.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Happy Learning!!!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>career</category>
      <category>news</category>
    </item>
    <item>
      <title>Tangled with front-end state management? Use the store!!!</title>
      <dc:creator>Parth Makawana</dc:creator>
      <pubDate>Tue, 10 May 2022 08:54:29 +0000</pubDate>
      <link>https://dev.to/parthmakawana/tangled-with-front-end-state-management-use-the-store-4974</link>
      <guid>https://dev.to/parthmakawana/tangled-with-front-end-state-management-use-the-store-4974</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IIWt-g_C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/18000/0%2AVMZS9voaQkB48gKV" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IIWt-g_C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/18000/0%2AVMZS9voaQkB48gKV" alt="Photo by [Tim Mossholder](https://unsplash.com/@timmossholder?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let’s be honest, State management on front-end applications is a tedious job.&lt;br&gt;
Even from the days of Vanilla JavaScript to the date with many advanced JS Frameworks and libraries.&lt;/p&gt;

&lt;p&gt;State management can be done in all three tiers of the application, be it backend, database or front-end. However, we will specifically talk about state management in the front-end side of it in this article.&lt;/p&gt;

&lt;p&gt;Let’s get started in my much-appreciated style of WWWH aka What, Why, When and How.&lt;/p&gt;

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

&lt;p&gt;First up, we need to understand what is the state?&lt;/p&gt;

&lt;p&gt;The state is just a snapshot or representation of the system from the client-side at a given point in time. It can be manipulated and represented in a seamless manner especially in single-page applications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FGxq7-yH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2560/1%2AmD6hH2jyPWoyKeE-r-ptxw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FGxq7-yH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2560/1%2AmD6hH2jyPWoyKeE-r-ptxw.png" alt="State Management Pattern in a nutshell" width="880" height="595"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The state is basically a store of data take it Application related data, User Data, Navigation information, Communication-related data etc. And with any kind of data, we deal with, It can be either manipulated or consumed.&lt;/p&gt;

&lt;p&gt;As for State Management, We can manipulate the state by various actions. It can be user actions, API response, navigation changes etc. On the other hand, we can consume that store to display the latest state of the application by querying the store. As simple as that.&lt;/p&gt;

&lt;p&gt;As one can figure out from the above diagram, It’s a circular pattern that is continuous. But basically, if we start with the store, the store has the initial state of the application which is used to render the view, from which, the user performs any actions which in turn triggers a mutation to state and it continues.&lt;/p&gt;

&lt;p&gt;There are multiple libraries that provide state management for different javascript frameworks like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;NgRx for Angular&lt;br&gt;
Redux for React&lt;br&gt;
Vuex for Vue&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why?
&lt;/h2&gt;

&lt;p&gt;Now that we understood what is state and state management, let’s see why we need it?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Hz2m0PFx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/8000/0%2A6JzeC4ihd7oCnOaj" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Hz2m0PFx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/8000/0%2A6JzeC4ihd7oCnOaj" alt="Photo by [Nirmal Rajendharkumar](https://unsplash.com/@neotronimz?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)" width="880" height="1320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Remember the time when we used to store a bunch of things into localstorage that can be manipulated and consumed throughout the application? then you would certainly remember the pain of getting all those key values organised.&lt;/p&gt;

&lt;p&gt;State management takes care of the main pain point of organising the state for your application without you constantly worrying about it.&lt;/p&gt;

&lt;p&gt;State management helps us to set, manipulate, organise and synchronise the current state of application throughout all the components in your application.&lt;/p&gt;

&lt;p&gt;It also helps us to make API interaction and data flow through the APIs smoother and consistent. It can help us cache(not in the literal sense) the responses so that we can retrieve them as and when required quickly.&lt;/p&gt;

&lt;p&gt;It also helps us to ease the communication between multiple components as the centralised store helps all the components to interact with it to change or access the data centrally.&lt;/p&gt;

&lt;h2&gt;
  
  
  When?
&lt;/h2&gt;

&lt;p&gt;So, When we can think of using the store? What are the use cases in which using the store will benefit us?&lt;/p&gt;

&lt;p&gt;There are mainly 2 scenarios in which one can think of using the store:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The application contains so many components that need to interact with each other frequently or&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The application consumes redundant data frequently.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;However, If you are developing a simple application with component silos, you are better off not using it as it would rather be complex and slow to implement the State management.&lt;/p&gt;

&lt;p&gt;How do we decide when to use State management? I would like to borrow the below paragraph from ngrx website:&lt;/p&gt;

&lt;p&gt;A good guideline that might help answer the question, “Do I need NgRx Store?” is the SHARI principle:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Shared&lt;/strong&gt;: state that is accessed by many components and services&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hydrated&lt;/strong&gt;: state that is persisted and rehydrated from external storage.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Available&lt;/strong&gt;: state that needs to be available when re-entering routes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Retrieved&lt;/strong&gt;: state that must be retrieved with a side-effect.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Impacted&lt;/strong&gt;: state that is impacted by actions from other sources.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How?
&lt;/h2&gt;

&lt;p&gt;We can use state management by simply using libraries that help us implement state management. and it varies for javascript frameworks.&lt;/p&gt;

&lt;p&gt;However, The basic concept of implementing a store is the same for all.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oUdT0-pQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2AKIoNyRO6s_52W68Y-0usJw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oUdT0-pQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2AKIoNyRO6s_52W68Y-0usJw.png" alt="Workflow for Vuex" width="701" height="551"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are 4 actors which need to be remembered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;State&lt;/strong&gt;: It’s the source of truth/data that stores the state of the application&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;View&lt;/strong&gt;: Which consumes the state to present it to the user&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Actions&lt;/strong&gt;: Which are the cause of change in state&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Mutations&lt;/strong&gt;: Which gets triggered on the specific action and eventually change the state.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Rather than adding the snippet for all the JS frameworks, I would like to redirect you to the documentations of well known and well established libraries from various JS frameworks.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Angular: &lt;a href="https://ngrx.io/guide/store"&gt;NgRx&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;React: &lt;a href="https://redux.js.org/introduction/getting-started"&gt;Redux&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Vue: &lt;a href="https://vuex.vuejs.org/guide/#the-simplest-store"&gt;Vuex&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Happy Learning!!!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
      <category>vue</category>
    </item>
    <item>
      <title>Mediator Pattern: A Capable Underdog?</title>
      <dc:creator>Parth Makawana</dc:creator>
      <pubDate>Tue, 10 May 2022 08:53:27 +0000</pubDate>
      <link>https://dev.to/parthmakawana/mediator-pattern-a-capable-underdog-l12</link>
      <guid>https://dev.to/parthmakawana/mediator-pattern-a-capable-underdog-l12</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vFoAtZc1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2ANEzTLQNy6vDTuW7B6b48ew.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vFoAtZc1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2ANEzTLQNy6vDTuW7B6b48ew.jpeg" alt="" width="880" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Aghh, One more design pattern blog on my feed? I bet you are thinking the same. But let me assure you, you would be gaining at least some idea of why I called it Capable and Underdog at the same time.&lt;/p&gt;

&lt;p&gt;I would be answering basically 4 questions here which everyone would ask when learning about a new pattern: &lt;strong&gt;What, Why, When and How&lt;/strong&gt;?&lt;/p&gt;

&lt;p&gt;So let’s get started:&lt;/p&gt;

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

&lt;p&gt;First and foremost, the question that arises hearing about a new pattern is why?&lt;br&gt;
Why do you need some new patterns in your project when you already have more than 20 well-known design patterns floating around and in a stable state for most of the project.&lt;/p&gt;

&lt;p&gt;Well, to understand that first we need to understand what is mediator pattern?&lt;/p&gt;

&lt;p&gt;If we go by the definition from Wikipedia, it says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“the mediator pattern defines an object that encapsulates how a set of objects interact.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Over the head huh? Don’t worry.&lt;/p&gt;

&lt;p&gt;As the name implies, the Mediator plays an intermediatory role to mediate. But mediate between whom? You guessed it right. Between classes. In other words, it provides a unified and single entity to communicate between classes. Let’s make it simple for now, it mediates between the core API Actions and the respective business logic they communicate to. So, it’s a behavioural pattern.&lt;/p&gt;

&lt;p&gt;You would immediately ask, why do we need a mediator when we can already communicate between classes very easily by using plenty of other design patterns, to answer that, let’s move on to the next topic.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GsJ1A5LP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/8192/0%2A47yVS6oabVDepiv4" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GsJ1A5LP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/8192/0%2A47yVS6oabVDepiv4" alt="Photo by [Beckett P](https://unsplash.com/@bdp028?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)" width="880" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Imagine the Airport to be your application and you need to manage the air traffic.&lt;/p&gt;

&lt;p&gt;Imagine if there was no Air Traffic Controller on the ground and planes needed to manage the altitudes and speeds by themselves, by interacting with dozens of other aeroplanes nearby?&lt;/p&gt;

&lt;p&gt;It would create a mess, wouldn’t it?&lt;/p&gt;

&lt;p&gt;Most of the traditional design patterns work on dependencies. Let’s say there are 3 classes that depend on 3 different classes to execute their business logic. What we do traditionally is resolve dependencies of the classes it consumes. Which makes the interaction many to many in a way. Which creates a spaghetti of dependencies.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EclWbMOw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2AuRzcER9AJHpNTheKDPSyKw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EclWbMOw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2AuRzcER9AJHpNTheKDPSyKw.jpeg" alt="The Traditional way" width="351" height="321"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now imagine you need to decouple or change the interaction of some of the classes?&lt;/p&gt;

&lt;p&gt;That’s where the mediator comes into the picture.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What it does is, basically take care of interactions.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Which solves several issues:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Direct/Tight communication between classes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Handles complex dependency management.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Allows us to easily modify any interactions between the classes.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The scenario from above will now look like this in mediator pattern:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iaAhJN61--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2A8AfVfxkn0W0_NBBPtzlw4A.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iaAhJN61--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/2000/1%2A8AfVfxkn0W0_NBBPtzlw4A.jpeg" alt="The Mediator way" width="391" height="321"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's easily observable that it not just looks clean but also provides a unified interface to manage the interactions.&lt;/p&gt;

&lt;p&gt;Ok, so now that we know what it is and why it was introduced, let's check some use cases on when to use it and when not to use it.&lt;/p&gt;

&lt;h2&gt;
  
  
  When?
&lt;/h2&gt;

&lt;p&gt;Simply put, we can use a mediator pattern when you need to get out of dependency entanglement. When you have so many classes which are dependent on one another, managing dependencies create a headache.&lt;/p&gt;

&lt;p&gt;We can use it when we need to easily change the behaviour of how classes interact between themselves, when we need to have an ATC kind of single entity to manage the interactions and when we need to encapsulate the objects being communicated such that only a single entity knows the dependencies between classes.&lt;/p&gt;

&lt;p&gt;Of course, it’s not perfect. It comes with a price.&lt;/p&gt;

&lt;p&gt;As with all other single entities, it’s prone to fail. A complex mediator with too many dependencies on it may become a single point of failure. So better not complicate it.&lt;/p&gt;

&lt;p&gt;Now let's jump on to How we can use it?&lt;/p&gt;

&lt;h2&gt;
  
  
  How?
&lt;/h2&gt;

&lt;p&gt;Don't worry, I won't be pasting the whole solution here. You can check out multiple examples of such projects on GitHub like this one &lt;a href="https://github.com/evgomes/cqrs-mediatr-asp-net-core"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;But to put it in basic context, you can install and configure MediatR Nuget Package, Create models and handlers pertaining to actions/workflows, and then use it in actions by sending the request to the mediator.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mediator with CQRS
&lt;/h2&gt;

&lt;p&gt;If you have visited the GitHub repo from above, you would have seen the term CQRS-Mediator Pattern. CQRS and Mediator are often used interchangeably which is somewhat incorrect.&lt;/p&gt;

&lt;p&gt;Both have different use cases and problems to solve, but combining both is where magic is. The Nuget MediatR facilitates the use of both patterns, which is one of the reasons why these terms are used interchangeably. Learn more on CQRS &lt;a href="https://docs.microsoft.com/en-us/azure/architecture/patterns/cqrs"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Capable Underdog?
&lt;/h2&gt;

&lt;p&gt;Till now, we know why it's capable, but why it's still an underdog?&lt;/p&gt;

&lt;p&gt;Unfortunately, there is no certain answer to the question, but in my opinion and observation, the reason would be that many existing projects use widely acceptable design patterns like singleton and factory patterns. But It’s evident that the use of the Mediator Pattern is accepted and growing especially in new solutions industry-wide.&lt;/p&gt;

&lt;p&gt;Happy Learning!!!&lt;/p&gt;

</description>
      <category>softwaredevelopment</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Things you will realize about the corporate IT world, Eventually</title>
      <dc:creator>Parth Makawana</dc:creator>
      <pubDate>Tue, 10 May 2022 08:51:38 +0000</pubDate>
      <link>https://dev.to/parthmakawana/things-you-will-realize-about-the-corporate-it-world-eventually-1p18</link>
      <guid>https://dev.to/parthmakawana/things-you-will-realize-about-the-corporate-it-world-eventually-1p18</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DltXBWlS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/7536/0%2ALSHlmDfYI0_efli5" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DltXBWlS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/7536/0%2ALSHlmDfYI0_efli5" alt="Photo by [Luis Villasmil](https://unsplash.com/@villxsmil?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)" width="880" height="1100"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Internet is full of articles with similar titles, some written by well-known authors. So, why bother reading this? Well, These points are my observations being in the corporate IT world for about 5 years now. Some of them may be generic for the corporate world in general. You may agree or disagree with a few or many of them. But every individual may have their viewpoint based on the degree of the circle of their experience they are standing on. And I would love to hear your thoughts on it.&lt;/p&gt;

&lt;p&gt;So let's get started:&lt;/p&gt;

&lt;h2&gt;
  
  
  1. The Foundation of your career is very crucial
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BL1NVsTt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/10368/0%2AtVLQul3Av9i2mQco" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BL1NVsTt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/10368/0%2AtVLQul3Av9i2mQco" alt="Photo by [Brett Jordan](https://unsplash.com/@brett_jordan?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Colleges and universities form your academic foundation, but their importance gradually decreases when you step into the corporate world. It just becomes the first stepping stone in starting your career. Nothing more. Your academic excellence doesn’t necessarily convert to an excellent career. It depends on how excellent your career foundations are. I’ve seen many people who were not able to convert their academic excellence into an excellent career.&lt;/p&gt;

&lt;p&gt;But what builds an excellent career foundation? You ask.&lt;/p&gt;

&lt;p&gt;Well, It depends on the work, environment, and co-workers you get at the beginning of your career.&lt;br&gt;
As a graduate, your obvious aim remains to build your experience, knowledge, and professional etiquette. You work as hard as a child who wants to reach up to his/her toy up in the attic. While getting knowledge is in your hands partially, these things still depend on the people you interact with every day.&lt;/p&gt;

&lt;blockquote&gt;
&lt;h1&gt;
  
  
  A graduate is like a seed. It takes some great people and minds to nurture them into fruitful plants.
&lt;/h1&gt;
&lt;/blockquote&gt;

&lt;p&gt;Having a mentor who can nurture that seed, is very crucial for an excellent foundation of a career.&lt;/p&gt;

&lt;p&gt;But a mentor can only write something on a slate if it's empty. It's important for a graduate to wipe off all unnecessary experience, knowledge, and arrogance he/she has gained while in academics, and become a student once again. For a successful foundation, you need to surround yourself with people who not only improve your knowledge and encourage learning but motivate you to achieve excellence selflessly in the early stages. And even scold you for your misdirection and wrong behaviour.&lt;/p&gt;

&lt;p&gt;On the other side, If you are surrounded by negative people at the start of your career, please know that you are doomed. Because, it only increases the unnecessary experience, knowledge, and arrogance you’ve gained till now. It diverts your attention from improving yourself to blaming others and increases your ignorance over time.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Processes Matters
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gA-wvHwX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/10184/0%2AtrKUAcbJgB8aBoXs" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gA-wvHwX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/10184/0%2AtrKUAcbJgB8aBoXs" alt="Photo by [Eden Constantino](https://unsplash.com/@edenconstantin0?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)" width="880" height="691"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As a developer, I’ve hated some of the software development processes and methodologies. I mean why do we need so many meetings, checkpoints, and processes to complete a small piece of work. Right? Well, they are there for a reason.&lt;/p&gt;

&lt;blockquote&gt;
&lt;h1&gt;
  
  
  I’ve seen the chaos where there’s no established process, misunderstanding when there’s no meetings and conflicts when there are no checkpoints.
&lt;/h1&gt;
&lt;/blockquote&gt;

&lt;p&gt;Yes, the processes should not be rigid, It should be agile enough to modification depending on situations. And Meetings should always be time-bound and to the point.&lt;/p&gt;

&lt;p&gt;I’ve been first introduced to the Iterative model and then to Agile. I’ve personally liked the iterative model for the fact that it has the best of both worlds: Waterfall and Agile. Or for the fact that requirements are quite stable and easy for modification. But either way, Any established process is required for the team to perform consistently.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Building a network is important
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LirXSTzz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/7760/0%2AeNkqlnjmSQDlVJC1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LirXSTzz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/7760/0%2AeNkqlnjmSQDlVJC1" alt="Photo by [Omar Flores](https://unsplash.com/@omarg247?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Well, I for one, am not the right person to write about this as I am terrible at building a network. But I’ve included this because I realize that not having a good network of people damages your chances of getting good opportunities in the future. I have always behaved self-respectfully in getting in touch with former colleagues. Some may even consider that arrogance.&lt;/p&gt;

&lt;blockquote&gt;
&lt;h1&gt;
  
  
  But I feel you should connect with people who wants to be connected with you. You should pull that string if you don’t get any response from other end. And focus on those who do. It might reduce your network, but it will be of the right people.
&lt;/h1&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  4. Comfort Zone kills your skills
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tKKPxwa9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/12032/0%2AE87ZYTw-h5kdcN-t" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tKKPxwa9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/12032/0%2AE87ZYTw-h5kdcN-t" alt="Photo by [Coen Staal](https://unsplash.com/@coena?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)" width="880" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In everyone’s life, there comes a time when they have achieved many of the things they’ve wanted, and now they sit back and relax. Everyone deserves to relax if the achievement is huge, but It should not convert into Comfort Zone. If you’ve achieved something excellent, relax, and regain your strength to set up new goals.&lt;br&gt;
How do you find if you’re in your comfort zone or not? It's easy.&lt;/p&gt;

&lt;blockquote&gt;
&lt;h1&gt;
  
  
  If you’re happy (or rather not stressed out) with whatever you do, please know, you are in comfort zone.
&lt;/h1&gt;
&lt;/blockquote&gt;

&lt;p&gt;I know this is not a popular opinion and it's debatable. People always says that take pride in what you do, be happy in what you do, blah blah, but in ideal corporate world, If you’re always happy (or rather not stressed out) with even the wrong situation you are in, you are in the comfort zone.&lt;/p&gt;

&lt;p&gt;You’re getting good pay, praises from everyone. That feels sweet. And who wouldn’t like sweet things?&lt;/p&gt;

&lt;blockquote&gt;
&lt;h1&gt;
  
  
  But remember, sweetness causes diabetes, just the way comfort zone kills your skills.
&lt;/h1&gt;
&lt;/blockquote&gt;

&lt;p&gt;And how can we get out of our comfort zone? Well that depends, is your comfort zone created by people around you? Then connect with new people. Or is it created by day to day work? Then change the work, thrive for doing better.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Learn to face conflicts and failure
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9SO5pF2i--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/11072/0%2Aq9UQObRvIzYQMJBb" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9SO5pF2i--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/11072/0%2Aq9UQObRvIzYQMJBb" alt="Photo by [Tamara Gak](https://unsplash.com/@tamara_photography?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)" width="880" height="570"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This perhaps is the most common and crucial point in all, because we all face that almost daily.&lt;/p&gt;

&lt;p&gt;Let’s start with conflicts.&lt;/p&gt;

&lt;blockquote&gt;
&lt;h1&gt;
  
  
  It’s of-course fine to have difference of opinion on any point.
&lt;/h1&gt;
&lt;/blockquote&gt;

&lt;p&gt;Having multiple minds working on a common thing may bring multiple views to the table and that’s actually beneficial. But the problem arises when these difference of opinion turns into conflicts.&lt;/p&gt;

&lt;p&gt;And about failure, many successful people have already talked about failure, so I might not be the right person to comment on that. But certainly, there would be times when you won’t be at your best. Just keep breathing and focus your attention.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Respect/Adjust with your colleagues
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cBN046iJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/12000/0%2Apkk3fph_oxZA-Pl4" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cBN046iJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/12000/0%2Apkk3fph_oxZA-Pl4" alt="Photo by [Antonio Janeski](https://unsplash.com/@janesky?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)" width="880" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Your colleagues and superiors play a crucial part in what you become in your professional career. You might be fortunate to have great colleagues that support, understand and motivate you. But many may not be that fortunate.&lt;/p&gt;

&lt;p&gt;For those, there are few ways to deal with the situation.&lt;/p&gt;

&lt;blockquote&gt;
&lt;h1&gt;
  
  
  Respect other’s opinions that may not adversely affect you, and Adjust with and understand other’s opinion that may.
&lt;/h1&gt;
&lt;/blockquote&gt;

&lt;p&gt;There will be scenarios every day where you think, a piece of work can be done easily or better your way, but that may not be accepted. So rather than being heartbroken or hurt, try to find out why your opinion is discarded, compare it with what’s been accepted and improve upon it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;h1&gt;
  
  
  That doesn’t mean you should not voice out your opinions. You should always put your opinion on the table. If it’s accepted, be happy, if it’s not, adjust and understand why it’s not accepted.
&lt;/h1&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  7. Never mix up work, family, and friends
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tcHCWmC---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/12672/0%2AMMWDFInnRNNwvX75" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tcHCWmC---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/12672/0%2AMMWDFInnRNNwvX75" alt="Photo by [krakenimages](https://unsplash.com/@krakenimages?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)" width="880" height="1320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This one rule will be more than enough for peaceful work and life. That doesn’t mean you don’t share your good and bad things from work to family and friends and vice-versa, but define a line between what to share and what not.&lt;/p&gt;

&lt;blockquote&gt;
&lt;h1&gt;
  
  
  That also doesn’t mean you don’t make friends at work, but identify the nature of that friendship.
&lt;/h1&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you cross that thin line of separating work, family, and friends, it will create a mess you wouldn’t be able to settle easily.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Be careful whom you consider as friends at work
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zcjoiKkp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/12000/0%2A9gCSPmBgsD0xpGBg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zcjoiKkp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/12000/0%2A9gCSPmBgsD0xpGBg" alt="Photo by [GR Stocks](https://unsplash.com/@grstocks?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)" width="880" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Speaking of friends at work, it's very important, who you consider friends at work. Because let's be honest, in the corporate world, not everyone is your well-wisher and not everybody is your enemy.&lt;/p&gt;

&lt;p&gt;How can you find such friends? You ask. Well, it's difficult.&lt;/p&gt;

&lt;blockquote&gt;
&lt;h1&gt;
  
  
  Because you will get to know who your real friends at work are after you stop working with them.
&lt;/h1&gt;
&lt;/blockquote&gt;

&lt;p&gt;That sounds crazy, but it's true to nature. True friends at work will always be happy to connect with you, improve one another, share knowledge and have fun even after you are no longer important to them.&lt;/p&gt;

&lt;blockquote&gt;
&lt;h1&gt;
  
  
  They admire and connect with your nature, not your position and power.
&lt;/h1&gt;
&lt;/blockquote&gt;

&lt;p&gt;But during your ongoing tenure, just consider them as your colleague. As you will eventually find out if they are friends or not.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Respect is a two-way street
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cu58fovM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/10368/0%2AimGwgF6VADxRvX8Z" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cu58fovM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/10368/0%2AimGwgF6VADxRvX8Z" alt="Photo by [Tiago Felipe Ferreira](https://unsplash.com/@felippetiago?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)" width="880" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The statement is self-explanatory. If you don’t give respect to others, you won’t get it from that person and others. There are several aspects to it, however,&lt;/p&gt;

&lt;blockquote&gt;
&lt;h1&gt;
  
  
  Most of the people co-relate respect with position and power. That way, one just becomes an opportunist.
&lt;/h1&gt;
&lt;/blockquote&gt;

&lt;p&gt;Getting respect is the right of every human being, whether they are powerful or not and knowledgeable or not. People tend to ignore especially those who either do not hold any power or have less knowledge than others. We know the power and position aspect easily, but let me tell you about the knowledge aspect. Those who are less knowledgeable than others, make mistakes while working, requires help by keeping their dignity intact. If you hurt their dignity by unnecessarily scolding them, they might approach you in the same way.&lt;/p&gt;

&lt;blockquote&gt;
&lt;h1&gt;
  
  
  I’ve seen the magic of being a selfless helping hand to those in need, and the beauty of getting their respect back when they approach you.
&lt;/h1&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  10. Learning is the real earning
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2hUWXGla--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/7906/0%2Aa8izZDjEGaG1JBZ2" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2hUWXGla--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/7906/0%2Aa8izZDjEGaG1JBZ2" alt="Photo by [Element5 Digital](https://unsplash.com/@element5digital?utm_source=medium&amp;amp;utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral)" width="880" height="621"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;h1&gt;
  
  
  Learn, Earn, Adjust, Respect and Relax. Peace out. ✌
&lt;/h1&gt;
&lt;/blockquote&gt;

</description>
      <category>corporate</category>
      <category>software</category>
      <category>softwareengineering</category>
    </item>
  </channel>
</rss>
