<?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: Vaibhav Arora</title>
    <description>The latest articles on DEV Community by Vaibhav Arora (@vaibhav_arora__).</description>
    <link>https://dev.to/vaibhav_arora__</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%2F202700%2F3ad2d8a7-dd20-4220-a499-2ceef1c74e57.jpg</url>
      <title>DEV Community: Vaibhav Arora</title>
      <link>https://dev.to/vaibhav_arora__</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vaibhav_arora__"/>
    <language>en</language>
    <item>
      <title>How to grow faster in career? (For Beginners)</title>
      <dc:creator>Vaibhav Arora</dc:creator>
      <pubDate>Thu, 01 Apr 2021 17:17:32 +0000</pubDate>
      <link>https://dev.to/vaibhav_arora__/how-to-grow-faster-in-career-for-beginners-16o5</link>
      <guid>https://dev.to/vaibhav_arora__/how-to-grow-faster-in-career-for-beginners-16o5</guid>
      <description>&lt;p&gt;I am engineer who has spent 5 years already in software development industry. And I want to tell you some career hacks which have helped me in beginning or in middle of my career.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZC_kKLJW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jv1d6vcfaiode2hovnad.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZC_kKLJW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jv1d6vcfaiode2hovnad.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Hacks Hacks Hacks
&lt;/h2&gt;

&lt;p&gt;There are always hacks to grow faster than someone else, or just yourself as well&lt;/p&gt;




&lt;h4&gt;
  
  
  Compete with others
&lt;/h4&gt;

&lt;p&gt;Have a healthy competition with others, not only at your level but levels above you as well.&lt;br&gt;
By Healthy competition, I meant -&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;to learn from them and try to get better than them or at least equivalent to them&lt;/li&gt;
&lt;li&gt;to be good to them and not get bitchy. Healthy competition should not bring relation any effect, but on other hand relation should not come between competition always and you loosing out to get better&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Why we do this?&lt;br&gt;
Because you want to be valuable, and you are learning how others are valuable more than you in same industry. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It's not always about years, there's more to it.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h4&gt;
  
  
  Have good connections and many connections
&lt;/h4&gt;

&lt;p&gt;Apart from getting skills, your connections building ability can you take very far.&lt;br&gt;
Remember that world is not fair, all of us don't have same currency value, all of us not living same life or getting same opportunities.&lt;br&gt;
Humans trust connections more than strangers, so why not have connections for future jobs, opportunities, knowledge, experiences?&lt;/p&gt;




&lt;h4&gt;
  
  
  Put more efforts in objectives
&lt;/h4&gt;

&lt;p&gt;Objectives/Goals are what we/others look for. Teams get insane targets, people get insane long targets/goals.&lt;br&gt;
But you got to keep tracking them, complete them, and celebrate once they are done.&lt;/p&gt;

&lt;p&gt;Put extra efforts in completing objective you set. Keep setting harder goals, and learn on how to accomplish things in less time.&lt;/p&gt;

&lt;p&gt;This will help you in management of time, efforts. This will give you realization that you can work on 1 feature for 1 week, 1 month, and even 1 year. You can do everything from scratch or use 10 libraries and customize it on the top.&lt;br&gt;
In the end, it's your call and results of same you have to carry.&lt;/p&gt;

&lt;p&gt;Over a long period of time, achievements matter, efforts are just push to cover distance till achievements&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>codenewbie</category>
      <category>career</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>TDD - Learn from experience of Microsoft and IBM</title>
      <dc:creator>Vaibhav Arora</dc:creator>
      <pubDate>Tue, 24 Mar 2020 18:20:45 +0000</pubDate>
      <link>https://dev.to/vaibhav_arora__/tdd-learn-from-experience-of-microsoft-and-ibm-25o6</link>
      <guid>https://dev.to/vaibhav_arora__/tdd-learn-from-experience-of-microsoft-and-ibm-25o6</guid>
      <description>&lt;p&gt;TDD (Test Driven Development) is good or bad for you?&lt;br&gt;
Answers to this depend on various factors. Maybe you need my opinion instantly, but it's really hard to give you a true answer.&lt;br&gt;
This article is written to help you understand a case study which has collected experience of 4 different teams that have adopted TDD. Those teams are from Microsoft and IBM.&lt;/p&gt;

&lt;p&gt;All four teams have different contexts in their working.&lt;br&gt;
You might have similar context like them, or can have different as well.&lt;br&gt;
But if you believe TDD is better for specific tech-stacks, or specific type of project. Then you my friend you definitely should see what these teams were working on.&lt;/p&gt;

&lt;h2&gt;
  
  
  The project and the teams
&lt;/h2&gt;

&lt;h3&gt;
  
  
  IBM
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Z3iD_JQ5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/1%2Am0yMLLOSPhoUlAOJN-ro0Q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Z3iD_JQ5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/1%2Am0yMLLOSPhoUlAOJN-ro0Q.png" alt="IBM team details"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Their legacy product of device drivers has gone through several releases since 1998, and in 2002 they chose a new platform and moved to a completely new architecture and adopted TDD as well.&lt;br&gt;
Their legacy system and new system had similar output, but with different approaches and tech stacks. Comparing both releases is not as balanced as you might be looking for, but still it's valuable to see what difference they had.&lt;/p&gt;

&lt;h3&gt;
  
  
  Microsoft
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--v-w_cQeO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/1%2A4O_Pl8SQggNmbARsi1Pf9w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--v-w_cQeO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/1%2A4O_Pl8SQggNmbARsi1Pf9w.png" alt="Microsoft team details"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The TDD and non-TDD projects under above mentioned areas are developed by teams led by project managers with similar levels of responsibilities and reporting to the same high-level manager.&lt;br&gt;
And here we will get a great balance to compare project values and find what TDD experience has been for teams.&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary of Team Factors
&lt;/h2&gt;

&lt;p&gt;Varying Contexts in case of these 4 teams&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GP-JY9f7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/1%2AQFpjJAjl3eZW_2XtNZD8Hg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GP-JY9f7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/1%2AQFpjJAjl3eZW_2XtNZD8Hg.png" alt="Different working contexts of all teams discussed"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Still, results of case study indicate that pre-release defect density decreased between 40–90% relative to similar projects that did not use the TDD practice. Subjectively, the teams experienced a 15–35% increase in initial development time after adopting TDD.&lt;br&gt;
I am still neither with TDD nor against it, but further in the article you will see some points with which you might be able to relate and understand these teams' experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  TDD Implementation
&lt;/h2&gt;

&lt;p&gt;The IBM team ….&lt;br&gt;
who was responsible for device drivers parts made a pretty clear process for them in my views.&lt;br&gt;
They got detailed specifications in-hand, they most of the time work on test case first to reduce ambiguity and to validate requirements.&lt;/p&gt;

&lt;p&gt;They had set up a build system, which daily extracts the code, runs the test cases, and fires email to all people involved with a report of success and failure.&lt;/p&gt;

&lt;p&gt;This daily integration setup came handy for them as part of validation and pushed them to keep things green and get a better report than last day. They target to keep 80% minimum all the time, it can't go below.&lt;/p&gt;

&lt;p&gt;And there were legacy teams as well doing similar work with TDD but not that much dedication with TDD as the above team was. It missed quite a few steps.&lt;/p&gt;

&lt;p&gt;And then comes, Microsoft teams&lt;br&gt;
They had this Hybrid-TDD approach, where they followed TDD, but didn't adopt agile methodologies completely and also had design meetings and review sessions.&lt;br&gt;
Their testing process had a variety of tools in addition to TDD, such as static analysis, dependency analysis as well as fault injection tools.&lt;br&gt;
As there were 3 different teams here, some were aligned to running TDD in the command line, some had a step of triggering email for analysis purpose. But the teams were lacking any particular coverage measures goal like the IBM one had.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's the outcome of TDD in quality and productivity for teams?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--93IS-mrl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/1%2ABgUX1hTR5vIJnZh12Y0y8A.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--93IS-mrl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/960/1%2ABgUX1hTR5vIJnZh12Y0y8A.png" alt="Outcomes of teams in release"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Increase in development time ranging from 15% to 35% if offset by the reduced maintenance costs due to improvement in quality, an observation that was backed up by the product teams at Microsoft and IBM.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusions of case-study by researchers from this experience
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;TDD can be applicable in various domains. If you never heard of TDD in your type of project, how about you experience it?&lt;/li&gt;
&lt;li&gt;It's team belief that TDD is able to significantly reduce the defect density without significant productivity reduction. There is a balance which people experience and decide which way is better for them and for their work.&lt;/li&gt;
&lt;li&gt;Additionally future releases will also experience low defect densities due to use of test assets. Assets like unit, functional, integration.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What to remember if you choose to experience TDD?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Go with facts of other people's experience, and then choose to start or not to start. Don't overwhelm yourself with so many opinions on the internet.&lt;/li&gt;
&lt;li&gt;Start TDD from the beginning of projects, because it seems to have advantage if done incrementally and continuously.&lt;/li&gt;
&lt;li&gt;Convince the team to add a test case every time a problem is found.&lt;/li&gt;
&lt;li&gt;Share unit tests with each other, collaboration is good for betterment of tests.&lt;/li&gt;
&lt;li&gt;Track count of bugs found and fixed, source code count, test code count, code coverage, trend across time to always look back if TDD implementation you chose is working for you or not.&lt;/li&gt;
&lt;li&gt;Check the morale of team members in the beginning and end of the project. If it's not providing value to them, something definitely needs a change.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;p&gt;Paper case study on which this article is based upon - &lt;a href="https://people.engr.ncsu.edu/gjin2/Classes/591/Spring2017/case-tdd-b.pdf"&gt;Link to case study paper&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
